@extends('layouts.admin')

@section('title', 'Edit Attribute')

@section('content')
<x-admin.form-page
    title="Edit Attribute"
    :crumbs="[['label' => 'Catalogue', 'url' => null], ['label' => 'Attributes', 'url' => route('admin.attributes.index')], 'Edit']"
    :back-url="route('admin.attributes.index')"
    :action="route('admin.attributes.update', $attribute->id)"
    method="PUT"
    form-id="attributeForm"
    submit-label="Update Attribute"
    :wide="true"
>
    <section class="pp-card">
        <div class="pp-card__head">
            <span class="pp-card__icon"><i class="bi bi-sliders"></i></span>
            <div>
                <h2 class="pp-card__title">Attribute Details</h2>
                <p class="pp-card__sub">Name and availability for this attribute</p>
            </div>
        </div>
        <div class="pp-card__body">
            <div class="pp-grid pp-grid--2">
                <div class="pp-field">
                    <label for="name">Attribute Name <span class="pp-req">*</span></label>
                    <input type="text"
                           name="name"
                           id="name"
                           class="form-control @error('name') is-invalid @enderror"
                           value="{{ old('name', $attribute->name) }}"
                           placeholder="e.g., Size, Color, Material"
                           required
                           maxlength="255">
                    @error('name')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                    @enderror
                </div>
                <div class="pp-field">
                    <label for="status">Status <span class="pp-req">*</span></label>
                    <select name="status"
                            id="status"
                            class="form-select @error('status') is-invalid @enderror"
                            required>
                        <option value="active" {{ old('status', $attribute->status) === 'active' ? 'selected' : '' }}>Active</option>
                        <option value="inactive" {{ old('status', $attribute->status) === 'inactive' ? 'selected' : '' }}>Inactive</option>
                    </select>
                    @error('status')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                    @enderror
                </div>
            </div>
        </div>
    </section>
</x-admin.form-page>

<section class="pp-card mt-3">
        <div class="pp-card__head">
            <span class="pp-card__icon"><i class="bi bi-list-ul"></i></span>
            <div class="flex-grow-1">
                <h2 class="pp-card__title">Attribute Values</h2>
                <p class="pp-card__sub">Options customers can choose for this attribute</p>
            </div>
            <button type="button" class="pp-btn pp-btn--primary" data-bs-toggle="modal" data-bs-target="#addValueModal">
                <i class="bi bi-plus"></i> Add Value
            </button>
        </div>
        <div class="pp-card__body">
            @if($attribute->values->count() > 0)
                <div class="table-responsive">
                    <table class="table table-sm">
                        <thead>
                            <tr>
                                <th>Value</th>
                                <th>Sort Order</th>
                                <th>Status</th>
                                <th>Actions</th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach($attribute->values->sortBy('sort_order') as $value)
                                <tr>
                                    <td>{{ $value->value }}</td>
                                    <td>{{ $value->sort_order ?? '-' }}</td>
                                    <td>
                                        @if($value->status === 'active')
                                            <span class="badge bg-success">Active</span>
                                        @else
                                            <span class="badge bg-secondary">Inactive</span>
                                        @endif
                                    </td>
                                    <td>
                                        <div class="d-flex gap-1">
                                            <button type="button"
                                                    class="btn btn-sm btn-primary"
                                                    data-bs-toggle="modal"
                                                    data-bs-target="#editValueModal{{ $value->id }}">
                                                <i class="bi bi-pencil"></i>
                                            </button>
                                            <form action="{{ route('admin.attributes.values.destroy', $value->id) }}"
                                                  method="POST"
                                                  class="d-inline"
                                                  onsubmit="return confirm('Are you sure you want to delete this value?')">
                                                @csrf
                                                @method('DELETE')
                                                <button type="submit" class="btn btn-danger">
                                                    <i class="bi bi-trash"></i>
                                                </button>
                                            </form>
                                        </div>
                                    </td>
                                </tr>
                            @endforeach
                        </tbody>
                    </table>
                </div>
            @else
                <div class="alert alert-info text-center mb-0">
                    <i class="bi bi-info-circle"></i> No values added yet. Click "Add Value" to create one.
                </div>
            @endif
        </div>
</section>

@foreach($attribute->values->sortBy('sort_order') as $value)
    <div class="modal fade mt-5" id="editValueModal{{ $value->id }}" tabindex="-1">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">Edit Value</h5>
                    <button type="button" class="btn p-0 text-white" data-bs-dismiss="modal"><i class="bi-x-lg"></i></button>
                </div>
                <form action="{{ route('admin.attributes.values.update', $value->id) }}" method="POST">
                    @csrf
                    @method('PUT')
                    <div class="modal-body">
                        <div class="mb-3">
                            <label class="form-label">Value *</label>
                            <input type="text"
                                   name="value"
                                   class="form-control"
                                   value="{{ $value->value }}"
                                   required>
                        </div>
                        <div class="mb-3">
                            <label class="form-label">Sort Order</label>
                            <input type="number"
                                   name="sort_order"
                                   class="form-control"
                                   value="{{ $value->sort_order }}"
                                   min="0">
                        </div>
                        <div class="mb-3">
                            <label class="form-label">Status *</label>
                            <select name="status" class="form-select" required>
                                <option value="active" {{ $value->status === 'active' ? 'selected' : '' }}>Active</option>
                                <option value="inactive" {{ $value->status === 'inactive' ? 'selected' : '' }}>Inactive</option>
                            </select>
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
                        <button type="submit" class="btn btn-primary">Update Value</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
@endforeach

<div class="modal fade mt-5" id="addValueModal" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Add Value</h5>
                <button type="button" class="btn p-0 text-white" data-bs-dismiss="modal"><i class="bi-x-lg"></i></button>
            </div>
            <form action="{{ route('admin.attributes.values.store', $attribute->id) }}" method="POST">
                @csrf
                <div class="modal-body">
                    <div class="mb-3">
                        <label class="form-label">Value *</label>
                        <input type="text"
                               name="value"
                               class="form-control @error('value') is-invalid @enderror"
                               value="{{ old('value') }}"
                               required>
                        @error('value')
                            <div class="invalid-feedback">{{ $message }}</div>
                        @enderror
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Sort Order</label>
                        <input type="number"
                               name="sort_order"
                               class="form-control @error('sort_order') is-invalid @enderror"
                               value="{{ old('sort_order') }}"
                               min="0">
                        @error('sort_order')
                            <div class="invalid-feedback">{{ $message }}</div>
                        @enderror
                        <small class="form-text text-muted">Leave empty to add at the end</small>
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Status *</label>
                        <select name="status"
                                class="form-select @error('status') is-invalid @enderror"
                                required>
                            <option value="active" {{ old('status', 'active') === 'active' ? 'selected' : '' }}>Active</option>
                            <option value="inactive" {{ old('status') === 'inactive' ? 'selected' : '' }}>Inactive</option>
                        </select>
                        @error('status')
                            <div class="invalid-feedback">{{ $message }}</div>
                        @enderror
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
                    <button type="submit" class="btn btn-primary">Add Value</button>
                </div>
            </form>
        </div>
    </div>
</div>
@endsection
