@extends('layouts.app')

@section('content')
<div class="card">
    <div class="card-header">
        <h5>Edit Dynamic Attribute</h5>
    </div>

    <div class="card-body">
        <form id="editForm">
            @csrf
            @method('PUT')

            <div class="mb-3">
                <label class="form-label">Branch <span class="text-danger">*</span></label>
                <select name="branch_id" class="form-control">
                    @foreach($branches as $branch)
                        <option value="{{ $branch->id }}"
                            {{ $dynamicAttribute->branch_id == $branch->id ? 'selected' : '' }}>
                            {{ $branch->name }}
                        </option>
                    @endforeach
                </select>
            </div>

            <div class="mb-3">
                <label class="form-label">Entity Type <span class="text-danger">*</span></label>
                <input type="text" name="entity_type"
                       value="{{ $dynamicAttribute->entity_type }}"
                       class="form-control" maxlength="50" required>
            </div>

            <div class="mb-3">
                <label class="form-label">Attribute Name <span class="text-danger">*</span></label>
                <input type="text" name="name"
                       value="{{ $dynamicAttribute->name }}"
                       class="form-control" maxlength="150" required>
            </div>

            <div class="mb-3">
                <label class="form-label">Data Type <span class="text-danger">*</span></label>
                <select name="data_type" class="form-control" required>
                    @foreach(['text','number','date','boolean','dropdown'] as $type)
                        <option value="{{ $type }}"
                            {{ $dynamicAttribute->data_type === $type ? 'selected' : '' }}>
                            {{ ucfirst($type) }}
                        </option>
                    @endforeach
                </select>
            </div>

            <div class="mb-3">
                <label class="form-label">Validation Rule</label>
                <input type="text" name="validation_rule"
                       value="{{ $dynamicAttribute->validation_rule }}"
                       class="form-control">
            </div>

            <div class="form-check mb-2">
                <input type="checkbox" name="mandatory" class="form-check-input"
                    {{ $dynamicAttribute->mandatory ? 'checked' : '' }}>
                <label class="form-check-label">Mandatory</label>
            </div>

            <div class="form-check mb-3">
                <input type="checkbox" name="status" class="form-check-input"
                    {{ $dynamicAttribute->status ? 'checked' : '' }}>
                <label class="form-check-label">Active</label>
            </div>

            <button type="submit" class="btn btn-primary">Update</button>
            <a href="{{ route('core.dynamic-attributes.index') }}" class="btn btn-secondary">Back</a>
        </form>
    </div>
</div>
@endsection

@section('scripts')
<script>
$('#editForm').on('submit', function (e) {
    e.preventDefault();

    let btn = $(this).find('button[type=submit]');
    btn.prop('disabled', true);

    $.ajax({
        url: "{{ route('core.dynamic-attributes.update', $dynamicAttribute->id) }}",
        type: "POST",
        data: $(this).serialize(),
        success: function (res) {
            Swal.fire('Success', res.message, 'success')
                .then(() => window.location.href = "{{ route('core.dynamic-attributes.index') }}");
        },
        error: function (xhr) {
            btn.prop('disabled', false);
            if (xhr.status === 422) {
                let errors = xhr.responseJSON.errors;
                let errorList = '<ul style="text-align: left;">';
                $.each(errors, function(field, messages) {
                    $.each(messages, function(index, message) {
                        errorList += '<li>' + message + '</li>';
                    });
                });
                errorList += '</ul>';
                Swal.fire({
                    title: 'Validation Error',
                    html: errorList,
                    icon: 'error'
                });
            } else {
                Swal.fire('Error', 'An error occurred. Please try again.', 'error');
            }
        }
    });
});
</script>
@endsection
