/home2/mshostin/farms.ms-hostingladz.com/resources/views/dashboard/users/edit.blade.php
@extends('dashboard.includes.partial.base')

@section('title', 'Edit User')

@section('content')
    <style>
        /* scrollable dropdown */
        .select2-dropdown.bigdrop {
            max-height: 300px;
            overflow-y: auto;
        }
    </style>
    <div class="card">
        <div class="card-header bg-light">
            <h6>Edit User</h6>
        </div>

        <div class="card-body">
            <form action="{{ route('dashboard.users.update', $user->id) }}" method="POST" enctype="multipart/form-data">
                @csrf
                @method('PUT')

                {{-- ================= USERS TABLE (core) ================= --}}
                <h5 class="mt-1 mb-3">Account</h5>
                <div class="row">
                    <div class="col-md-4 mb-3">
                        <label class="form-label">Name *</label>
                        <input type="text" name="name" class="form-control" value="{{ old('name', $user->name) }}">
                        @error('name')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div>
                    <div class="col-md-4 mb-3">
                        <label class="form-label">Email *</label>
                        <input type="email" name="email" class="form-control" value="{{ old('email', $user->email) }}">
                        @error('email')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div>
                    <div class="col-md-4 mb-3">
                        <label class="form-label">Password</label>
                        <input type="password" name="password" class="form-control"
                            placeholder="Leave blank to keep current">
                        @error('password')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div>
                </div>
                <div class="row">
                    <div class="col-md-4 mb-3">
                        <label class="form-label">Confirm Password</label>
                        <input type="password" name="password_confirmation" class="form-control">
                    </div>

                    <div class="col-md-4 mb-3">
                        <label class="form-label d-block">Active?</label>
                        <div class="form-check form-switch mt-2">
                            <input class="form-check-input" type="checkbox" name="is_active" value="1"
                                {{ old('is_active', $user->is_active) ? 'checked' : '' }}>
                            <label class="form-check-label">User is active</label>
                        </div>
                    </div>

                    <div class="col-md-4 mb-3">
                        <label class="form-label">Force Logout (flag)</label>
                        <div class="form-check form-switch mt-2">
                            <input class="form-check-input" type="checkbox" name="force_logout" value="1"
                                {{ old('force_logout', $user->force_logout) ? 'checked' : '' }}>
                            <label class="form-check-label">Mark to force logout</label>
                        </div>
                    </div>
                </div>

                {{-- Roles / Direct Permissions --}}
                <div class="row">
                    <div class="col-md-4 mb-3">
                        <label class="form-label">Roles *</label>
                        <select name="roles[]" class="form-control select2-checkbox" multiple="multiple">
                            @foreach ($roles->where('slug', '!=', 'admin') as $role)
                                <option value="{{ $role->id }}"
                                    {{ in_array($role->id, old('roles', $user->roles->pluck('id')->toArray())) ? 'selected' : '' }}>
                                    {{ $role->name }}
                                </option>
                            @endforeach
                        </select>
                        @error('roles')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div>

                    {{-- <div class="col-md-4 mb-3">
                        <label class="form-label">Roles *</label>
                        <select name="roles[]" class="select2 form-control" multiple data-placeholder="Select roles">
                            @foreach ($roles->where('slug', '!=', 'admin') as $role)
                                <option value="{{ $role->id }}"
                                    {{ in_array($role->id, old('roles', $user->roles->pluck('id')->toArray())) ? 'selected' : '' }}>
                                    {{ $role->name }}</option>
                            @endforeach
                        </select>
                        @error('roles')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div> --}}

                    <div class="col-md-4 mb-3">
                        <label class="form-label">Direct User Permissions</label>
                        <select name="permissions[]" class="form-control select2-checkbox" multiple="multiple">
                            @foreach ($permissions as $permission)
                                <option value="{{ $permission->id }}"
                                    {{ in_array($permission->id, old('permissions', $user->directPermissions->pluck('id')->toArray())) ? 'selected' : '' }}>
                                    {{ $permission->name }}
                                </option>
                            @endforeach
                        </select>
                        @error('permissions')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div>

                    {{-- <div class="col-md-4 mb-3">
                        <label class="form-label">Direct User Permissions</label>
                        <select name="permissions[]" class="select2 form-control" multiple
                            data-placeholder="Select permissions">
                            @foreach ($permissions as $permission)
                                <option value="{{ $permission->id }}"
                                    {{ in_array($permission->id, old('permissions', $user->directPermissions->pluck('id')->toArray())) ? 'selected' : '' }}>
                                    {{ $permission->name }}</option>
                            @endforeach
                        </select>
                    </div> --}}
                </div>

                {{-- ================= USER_DETAILS (contact) ================= --}}
                @php $detail = $user->detail ?? null;@endphp
                <hr>
                <h5 class="mt-3 mb-3">Contact</h5>
                <div class="row">
                    <div class="col-md-6 mb-3"><label class="form-label">Phone 1</label><input type="text" name="phone_1"
                            class="form-control" value="{{ old('phone_1', $detail->phone_1 ?? '') }}"></div>
                    <div class="col-md-6 mb-3"><label class="form-label">Phone 2</label><input type="text" name="phone_2"
                            class="form-control" value="{{ old('phone_2', $detail->phone_2 ?? '') }}"></div>
                </div>
                <div class="row">
                    <div class="col-md-6 mb-3"><label class="form-label">Address 1</label><input type="text"
                            name="address_1" class="form-control" value="{{ old('address_1', $detail->address_1 ?? '') }}">
                    </div>
                    <div class="col-md-6 mb-3"><label class="form-label">Address 2</label><input type="text"
                            name="address_2" class="form-control" value="{{ old('address_2', $detail->address_2 ?? '') }}">
                    </div>
                </div>
                <div class="row">
                    <div class="col-md-3 mb-3"><label class="form-label">Country</label><input type="text" name="country"
                            class="form-control" value="{{ old('country', $detail->country ?? 'Pakistan') }}" readonly></div>
                    <div class="col-md-3 mb-3">
                        <label class="form-label">State</label>
                        <select name="state" id="state" class="form-control select2">
                            <option value="">Select State</option>
                            @foreach ($states->sortBy('name') as $state)
                                <option value="{{ $state->id }}"
                                    {{ old('state', $detail->state ?? '') == $state->id ? 'selected' : '' }}>
                                    {{ $state->name }}
                                </option>
                            @endforeach
                        </select>
                        @error('state')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div>

                    <div class="col-md-3 mb-3">
                        <label class="form-label">City</label>
                        <select name="city" id="city" class="form-control select2">
                            <option value="">Select City</option>
                            @foreach ($cities->sortBy('name') as $city)
                                @if (old('state', $detail->state ?? '') == $city->state_id)
                                    <option value="{{ $city->id }}"
                                        {{ old('city', $detail->city ?? '') == $city->id ? 'selected' : '' }}>
                                        {{ $city->name }}
                                    </option>
                                @endif
                            @endforeach
                        </select>
                        @error('city')
                            <small class="text-danger">{{ $message }}</small>
                        @enderror
                    </div>
                </div>
                <div class="col-md-3 mb-3"><label class="form-label">Postal Code</label><input type="text"
                        name="postal_code" class="form-control"
                        value="{{ old('postal_code', $detail->postal_code ?? '') }}"></div>
        </div>
        <div class="row">
            <div class="col-md-4 mb-3"><label class="form-label">Emergency Contact Name</label><input type="text"
                    name="emergency_contact_name" class="form-control"
                    value="{{ old('emergency_contact_name', $detail->emergency_contact_name ?? '') }}"></div>
            <div class="col-md-4 mb-3"><label class="form-label">Emergency Contact Phone</label><input type="text"
                    name="emergency_contact_phone" class="form-control"
                    value="{{ old('emergency_contact_phone', $detail->emergency_contact_phone ?? '') }}"></div>
            <div class="col-md-4 mb-3"><label class="form-label">Relation</label><input type="text"
                    name="emergency_contact_relation" class="form-control"
                    value="{{ old('emergency_contact_relation', $detail->emergency_contact_relation ?? '') }}">
            </div>
        </div>

        {{-- ================= USER_DETAILS (personal) ================= --}}
        <hr>
        <h5 class="mt-3 mb-3">Personal</h5>
        <div class="row">
            <div class="col-md-4 mb-3"><label class="form-label">Father Name</label><input type="text"
                    name="father_name" class="form-control"
                    value="{{ old('father_name', $detail->father_name ?? '') }}"></div>
            <div class="col-md-4 mb-3"><label class="form-label">Mother Name</label><input type="text"
                    name="mother_name" class="form-control"
                    value="{{ old('mother_name', $detail->mother_name ?? '') }}"></div>
            <div class="col-md-4 mb-3"><label class="form-label">Spouse Name</label><input type="text"
                    name="spouse_name" class="form-control"
                    value="{{ old('spouse_name', $detail->spouse_name ?? '') }}"></div>
        </div>
        <div class="row">
            <div class="col-md-3 mb-3"><label class="form-label">Gender</label><input type="text" name="gender"
                    class="form-control" value="{{ old('gender', $detail->gender ?? '') }}">
            </div>
            <div class="col-md-3 mb-3"><label class="form-label">Date of Birth</label><input type="date"
                    name="date_of_birth" class="form-control"
                    value="{{ old('date_of_birth', optional($detail)->date_of_birth?->format('Y-m-d')) }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Marital Status</label><input type="text"
                    name="marital_status" class="form-control"
                    value="{{ old('marital_status', $detail->marital_status ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Religion</label><input type="text" name="religion"
                    class="form-control" value="{{ old('religion', $detail->religion ?? '') }}">
            </div>
        </div>
        <div class="row">
            <div class="col-md-6 mb-3"><label class="form-label">CNIC</label><input type="text" name="cnic"
                    class="form-control" value="{{ old('cnic', $detail->cnic ?? '') }}"></div>
            <div class="col-md-6 mb-3"><label class="form-label">Nationality</label><input type="text"
                    name="nationality" class="form-control"
                    value="{{ old('nationality', $detail->nationality ?? '') }}"></div>
        </div>

        {{-- ================= USER_DETAILS (education & skills) ================= --}}
        <hr>
        <h5 class="mt-3 mb-3">Education & Skills</h5>
        <div class="row">
            <div class="col-md-4 mb-3"><label class="form-label">Highest Qualification</label><input type="text"
                    name="highest_qualification" class="form-control"
                    value="{{ old('highest_qualification', $detail->highest_qualification ?? '') }}"></div>
            <div class="col-md-4 mb-3"><label class="form-label">Previous Company</label><input type="text"
                    name="previous_company" class="form-control"
                    value="{{ old('previous_company', $detail->previous_company ?? '') }}"></div>
            <div class="col-md-4 mb-3"><label class="form-label">Previous Designation</label><input type="text"
                    name="previous_designation" class="form-control"
                    value="{{ old('previous_designation', $detail->previous_designation ?? '') }}"></div>
        </div>
        <div class="row">
            <div class="col-md-4 mb-3"><label class="form-label">Experience (years)</label><input type="number"
                    name="experience_years" class="form-control"
                    value="{{ old('experience_years', $detail->experience_years ?? '') }}"></div>
            <div class="col-md-8 mb-3"><label class="form-label">Skills (comma/line separated)</label>
                <textarea name="skills" rows="2" class="form-control">{{ old('skills', $detail->skills ?? '') }}</textarea>
            </div>
        </div>

        {{-- ================= USER_DETAILS (employment) ================= --}}
        <hr>
        <h5 class="mt-3 mb-3">Employment</h5>
        <div class="row">
            <div class="col-md-3 mb-3"><label class="form-label">Employee Code</label><input type="text"
                    name="employee_code" class="form-control"
                    value="{{ old('employee_code', $detail->employee_code ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Department</label><input type="text"
                    name="department" class="form-control" value="{{ old('department', $detail->department ?? '') }}">
            </div>
            <div class="col-md-3 mb-3"><label class="form-label">Designation</label><input type="text"
                    name="designation" class="form-control"
                    value="{{ old('designation', $detail->designation ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Joining Date</label><input type="date"
                    name="date_of_joining" class="form-control"
                    value="{{ old('date_of_joining', optional($detail)->date_of_joining?->format('Y-m-d')) }}">
            </div>
        </div>
        <div class="row">
            <div class="col-md-3 mb-3"><label class="form-label">Resignation Date</label><input type="date"
                    name="date_of_resignation" class="form-control"
                    value="{{ old('date_of_resignation', optional($detail)->date_of_resignation?->format('Y-m-d')) }}">
            </div>
            <div class="col-md-3 mb-3">
                <label class="form-label">Employment Status</label>
                @php $es = old('employment_status', $detail->employment_status ?? 'Active'); @endphp
                <select name="employment_status" class="form-select">
                    <option value="Active" {{ $es == 'Active' ? 'selected' : '' }}>Active</option>
                    <option value="Inactive" {{ $es == 'Inactive' ? 'selected' : '' }}>Inactive</option>
                    <option value="Leave" {{ $es == 'Leave' ? 'selected' : '' }}>On Leave</option>
                    <option value="Terminated" {{ $es == 'Terminated' ? 'selected' : '' }}>Terminated</option>
                    <option value="Probation" {{ $es == 'Probation' ? 'selected' : '' }}>Probation</option>
                </select>
            </div>
        </div>

        {{-- ================= USER_DETAILS (financial) ================= --}}
        <hr>
        <h5 class="mt-3 mb-3">Financial</h5>
        <div class="row">
            <div class="col-md-3 mb-3"><label class="form-label">Basic Salary</label><input type="number"
                    step="0.01" name="basic_salary" class="form-control"
                    value="{{ old('basic_salary', $detail->basic_salary ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Allowance</label><input type="number" step="0.01"
                    name="allowance" class="form-control" value="{{ old('allowance', $detail->allowance ?? '') }}">
            </div>
            <div class="col-md-3 mb-3"><label class="form-label">Bonus</label><input type="number" step="0.01"
                    name="bonus" class="form-control" value="{{ old('bonus', $detail->bonus ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Commission</label><input type="number" step="0.01"
                    name="commission" class="form-control" value="{{ old('commission', $detail->commission ?? '') }}">
            </div>
        </div>
        <div class="row">
            <div class="col-md-3 mb-3"><label class="form-label">Margin</label><input type="number" step="0.01"
                    name="margin" class="form-control" value="{{ old('margin', $detail->margin ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Discount</label><input type="number" step="0.01"
                    name="discount" class="form-control" value="{{ old('discount', $detail->discount ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Bank Name</label><input type="text" name="bank_name"
                    class="form-control" value="{{ old('bank_name', $detail->bank_name ?? '') }}"></div>
            <div class="col-md-3 mb-3"><label class="form-label">Bank Account Number</label><input type="text"
                    name="bank_account_number" class="form-control"
                    value="{{ old('bank_account_number', $detail->bank_account_number ?? '') }}"></div>
        </div>
        <div class="row">
            <div class="col-md-6 mb-3"><label class="form-label">IBAN</label><input type="text" name="iban"
                    class="form-control" value="{{ old('iban', $detail->iban ?? '') }}"></div>
            <div class="col-md-6 mb-3"><label class="form-label">Tax Number</label><input type="text"
                    name="tax_number" class="form-control" value="{{ old('tax_number', $detail->tax_number ?? '') }}">
            </div>
        </div>

        {{-- ================= USER_DETAILS (referral & bonus) ================= --}}
        {{-- <hr>
                <h5 class="mt-3 mb-3">Referral & Bonus</h5>
                <div class="row">
                    <div class="col-md-4 mb-3"><label class="form-label">Referral Code</label><input type="text"
                            name="referral_code" class="form-control"
                            value="{{ old('referral_code', $detail->referral_code ?? '') }}"></div>
                    <div class="col-md-4 mb-3"><label class="form-label">Referred By (User ID)</label><input
                            type="number" name="referred_by" class="form-control"
                            value="{{ old('referred_by', $detail->referred_by ?? '') }}"></div>
                    <div class="col-md-4 mb-3"><label class="form-label">Referral Bonus</label><input type="number"
                            step="0.01" name="referral_bonus" class="form-control"
                            value="{{ old('referral_bonus', $detail->referral_bonus ?? '') }}"></div>
                </div> --}}

        {{-- ================= USER_DETAILS (documents) ================= --}}
        <hr>
        <h5 class="mt-3 mb-3">Documents</h5>
        <div class="row">
            <div class="col-md-3 mb-3">
                <label class="form-label">Profile Image</label>
                <input type="file" name="profile_image" class="form-control">
                @if ($detail && $detail->profile_image)
                    <img src="{{ asset($detail->profile_image) }}" width="50">
                @endif
            </div>
            <div class="col-md-3 mb-3">
                <label class="form-label">Resume</label>
                <input type="file" name="resume_path" class="form-control">
                @if ($detail && $detail->resume_path)
                    <a href="{{ asset($detail->resume_path) }}" target="_blank">View</a>
                @endif
            </div>
            <div class="col-md-3 mb-3">
                <label class="form-label">CNIC Front</label>
                <input type="file" name="cnic_front_path" class="form-control">
                @if ($detail && $detail->cnic_front_path)
                    <a href="{{ asset($detail->cnic_front_path) }}" target="_blank">View</a>
                @endif
            </div>
            <div class="col-md-3 mb-3">
                <label class="form-label">CNIC Back</label>
                <input type="file" name="cnic_back_path" class="form-control">
                @if ($detail && $detail->cnic_back_path)
                    <a href="{{ asset($detail->cnic_back_path) }}" target="_blank">View</a>
                @endif
            </div>
        </div>

        {{-- ================= USER_DETAILS (misc) ================= --}}
        <hr>
        <h5 class="mt-3 mb-3">Miscellaneous</h5>
        <div class="row">
            <div class="col-md-3 mb-3"><label class="form-label">Blood Group</label><input type="text"
                    name="blood_group" class="form-control"
                    value="{{ old('blood_group', $detail->blood_group ?? '') }}"></div>
            <div class="col-md-3 mb-3">
                <label class="form-label">Remote?</label>
                <div class="form-check form-switch mt-2">
                    <input class="form-check-input" type="checkbox" name="is_remote" value="1"
                        {{ old('is_remote', $detail->is_remote ?? false) ? 'checked' : '' }}>
                </div>
            </div>
            <div class="col-md-3 mb-3">
                <label class="form-label">Shift Timings</label>
                <select name="shift_timings" class="form-control">
                    <option value="" disabled
                        {{ empty(old('shift_timings', $detail->shift_timings ?? '')) ? 'selected' : '' }}>Select
                        Shift</option>
                    <option value="9am-6pm"
                        {{ old('shift_timings', $detail->shift_timings ?? '') == '9am-6pm' ? 'selected' : '' }}>
                        9am – 6pm</option>
                    <option value="10am-7pm"
                        {{ old('shift_timings', $detail->shift_timings ?? '') == '10am-7pm' ? 'selected' : '' }}>
                        10am – 7pm</option>
                    <option value="8am-5pm"
                        {{ old('shift_timings', $detail->shift_timings ?? '') == '8am-5pm' ? 'selected' : '' }}>
                        8am – 5pm</option>
                </select>
            </div>
            <div class="col-md-3 mb-3"><label class="form-label">Working Hours/Week</label><input type="number"
                    name="working_hours_per_week" class="form-control"
                    value="{{ old('working_hours_per_week', $detail->working_hours_per_week ?? '') }}"></div>
        </div>
        <div class="row">
            <div class="col-md-3 mb-3"><label class="form-label">Leave Balance</label><input type="number"
                    name="leave_balance" class="form-control"
                    value="{{ old('leave_balance', $detail->leave_balance ?? '') }}"></div>
            <div class="col-md-9 mb-3"><label class="form-label">Notes</label>
                <textarea name="notes" class="form-control">{{ old('notes', $detail->notes ?? '') }}</textarea>
            </div>
        </div>
        {{-- <div class="row">
                    <div class="col-md-3 mb-3">
                        <label class="form-label">Can Login?</label>
                        <div class="form-check form-switch mt-2">
                            <input class="form-check-input" type="checkbox" name="can_login" value="1"
                                {{ old('can_login', $detail->can_login ?? false) ? 'checked' : '' }}>
                        </div>
                    </div>
                    <div class="col-md-3 mb-3">
                        <label class="form-label">Two Factor Enabled?</label>
                        <div class="form-check form-switch mt-2">
                            <input class="form-check-input" type="checkbox" name="two_factor_enabled" value="1"
                                {{ old('two_factor_enabled', $detail->two_factor_enabled ?? false) ? 'checked' : '' }}>
                        </div>
                    </div>
                </div> --}}

        {{-- ================= SUBMIT ================= --}}
        <hr>
        <button type="submit" class="btn btn-primary">Update User</button>
        </form>
    </div>
    </div>
@endsection

@section('extra_js')
    <script>
        $(document).ready(function() {
            $('.select2').select2({
                theme: 'bootstrap-5',
                width: '100%',
                allowClear: true,
            });

            $('.select2-checkbox').select2({
                theme: 'bootstrap-5',
                width: '100%',
                placeholder: "Select options",
                allowClear: true,
                closeOnSelect: false, // keep dropdown open for multiple selection
                maximumSelectionLength: 50, // optional limit
                dropdownCssClass: "bigdrop", // add custom height via CSS
            });
        });

        // Group cities by state
        const citiesByState = @json($cities->groupBy('state_id'));

        $('#state').on('change', function() {
            const stateId = $(this).val();
            const $citySelect = $('#city');

            $citySelect.empty().append('<option value="">Select City</option>');

            if (citiesByState[stateId]) {
                citiesByState[stateId]
                    .sort((a, b) => a.name.localeCompare(b.name))
                    .forEach(city => {
                        $citySelect.append(new Option(city.name, city.id));
                    });
            }

            $citySelect.trigger('change'); // refresh select2
        });
    </script>
@endsection