@php
    $title = 'Панель управления — Hotel Pineta';
    $heading = 'Панель управления';
    $subheading = 'Центр управления бронированиями';
@endphp

@extends('layouts.admin')

@section('content')
    <div class="grid stats">
        <div class="card">
            <div class="stat-label">Номера</div>
            <div class="stat-value">{{ $stats['rooms_total'] }}</div>
        </div>
        <div class="card">
            <div class="stat-label">Бронирования</div>
            <div class="stat-value">{{ $stats['bookings_total'] }}</div>
        </div>
        <div class="card">
            <div class="stat-label">Ожидают предоплату</div>
            <div class="stat-value">{{ $stats['awaiting_total'] }}</div>
        </div>
        <div class="card">
            <div class="stat-label">Подтверждены</div>
            <div class="stat-value">{{ $stats['confirmed_total'] }}</div>
        </div>
        <div class="card">
            <div class="stat-label">Гости</div>
            <div class="stat-value">{{ $stats['guests_total'] }}</div>
        </div>
        <div class="card">
            <div class="stat-label">Администраторы</div>
            <div class="stat-value">{{ $stats['admins_total'] }}</div>
        </div>
    </div>

    {{-- Блок управления доступом гостей --}}
    <div class="card" style="margin-top:18px;">
        <div style="display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;">
            <div>
                <h3 style="margin:0;">Доступ гостей к сайту</h3>
                <div class="muted" style="margin-top:6px;">
                    @if(config('hotel.guest_access_enabled', true))
                        ✅ <strong>Включён</strong> — гости могут входить, регистрироваться и бронировать.
                    @else
                        🔒 <strong>Выключен</strong> — гости видят страницу обслуживания. Администратор может войти через гостевую форму.
                    @endif
                </div>
            </div>
            <form action="{{ route('admin.guest_access.toggle') }}" method="post">
                @csrf
                <button type="submit"
                    style="border:0; border-radius:10px; padding:10px 20px; font-size:14px; cursor:pointer;
                    @if(config('hotel.guest_access_enabled', true)) background:#fee2e2; color:#991b1b;
                    @else background:#dcfce7; color:#166534; @endif">
                    @if(config('hotel.guest_access_enabled', true))
                        🔒 Закрыть доступ гостей
                    @else
                        ✅ Открыть доступ гостей
                    @endif
                </button>
            </form>
        </div>
        @if(session('guest_access_message'))
            <div style="margin-top:12px; padding:10px 14px; background:#f0fdf4; border-radius:10px; color:#166534; font-size:14px;">
                {{ session('guest_access_message') }}
            </div>
        @endif
    </div>


    <div class="card" style="margin-top:18px;">
        <div class="actions-row" style="justify-content: space-between; margin-bottom: 12px; align-items:flex-start;">
            <div>
                <h3 style="margin:0;">Правила срока предоплаты</h3>
                <div class="muted" style="margin-top:6px;">Эти правила являются единым источником срока предоплаты для гостевой и админской ветки. Отдельные настройки срока из формы админ-бронирования убраны, чтобы не было конфликта.</div>
            </div>
        </div>

        <form action="{{ route('admin.deadline_rules.store') }}" method="post" class="grid" style="margin-bottom:16px;">
            @csrf
            <div class="col-6">
                <label>Дата заезда с</label>
                <input type="date" name="date_from" id="deadlineDateFrom" required>
            </div>
            <div class="col-6">
                <label>Дата заезда по</label>
                <input type="date" name="date_to" id="deadlineDateTo" required disabled>
                <div class="note-line">Сначала заполните поле «Дата заезда с». Дата «по» должна быть равна или больше даты «с».</div>
            </div>
            <div class="col-6">
                <label>Режим срока</label>
                <label class="toggle-line" style="margin-top:8px;"><input type="checkbox" name="fixed_days" value="1" id="deadlineFixedDays"><span>Фиксированное количество дней</span></label>
                <div class="note-line">Если чекбокс выключен — работает Авто. Если включен — используется количество дней ниже с ограничением по дате заезда.</div>
            </div>
            <div class="col-6">
                <label>Количество дней до предоплаты</label>
                <input type="number" name="days_to_payment" min="1" max="30" value="3" required>
                <div class="note-line">Например: 4 = если до заезда 4 или больше дней, пишем 4 дня; если осталось 3 дня — пишем 3 дня; если меньше 3 дней — пишем 1 день.</div>
            </div>
            <div class="col-12">
                <label>Комнаты</label>
                <div style="display:grid; grid-template-columns: repeat(auto-fill, minmax(82px, 1fr)); gap:8px; border:1px solid #d6d0bf; border-radius:12px; padding:10px; max-height:180px; overflow:auto; background:#fff;">
                    @foreach($rooms as $room)
                        <label class="toggle-line" style="margin:0;"><input type="checkbox" name="room_ids[]" value="{{ $room->id }}"><span>№ {{ $room->code }}</span></label>
                    @endforeach
                </div>
                <div class="note-line">Если ничего не выбрать — правило действует на все комнаты.</div>
            </div>
            <div class="col-12">
                <button type="submit" class="button">Сохранить правило срока предоплаты</button>
            </div>
        </form>
        <script>
            document.addEventListener('DOMContentLoaded', function () {
                const from = document.getElementById('deadlineDateFrom');
                const to = document.getElementById('deadlineDateTo');
                if (!from || !to) return;
                function syncToDate() {
                    if (!from.value) {
                        to.value = '';
                        to.disabled = true;
                        to.removeAttribute('min');
                        return;
                    }
                    to.disabled = false;
                    to.min = from.value;
                    if (to.value && to.value < from.value) to.value = from.value;
                }
                from.addEventListener('change', syncToDate);
                syncToDate();
            });
        </script>

        @if($deadlineRules->isEmpty())
            <div class="empty">Пока правил нет. Используется режим по умолчанию: +3 дня, если заезд через 1–2 дня — сегодня.</div>
        @else
            <div class="table-wrap">
                <table>
                    <thead>
                    <tr>
                        <th>Режим</th>
                        <th>Дата заезда</th>
                        <th>Комнаты</th>
                        <th>Дней</th>
                        <th>Действие</th>
                    </tr>
                    </thead>
                    <tbody>
                    @foreach($deadlineRules as $rule)
                        <tr>
                            <td>{{ $rule->mode === 'auto' ? 'Авто' : 'Фикс. дни' }}</td>
                            <td>{{ $rule->date_from?->format('d.m.Y') ?: '—' }} — {{ $rule->date_to?->format('d.m.Y') ?: '—' }}</td>
                            <td>{{ $rule->roomNames() }}</td>
                            <td>{{ $rule->days_to_payment }}</td>
                            <td>
                                <form action="{{ route('admin.deadline_rules.destroy', $rule) }}" method="post" onsubmit="return confirm('Удалить это правило срока предоплаты?')" style="display:inline;">
                                    @csrf
                                    @method('DELETE')
                                    <button type="submit" class="secondary danger">Удалить правило</button>
                                </form>
                            </td>
                        </tr>
                    @endforeach
                    </tbody>
                </table>
            </div>
        @endif
    </div>


    <div class="grid" style="margin-top: 18px;">
        <div class="card">
            <div class="actions-row" style="justify-content: space-between; margin-bottom: 12px;">
                <h3 style="margin:0;">Последние бронирования</h3>
                <div class="actions-row">
                    <a href="{{ route('admin.booking_blocks.index') }}" class="secondary">Закрыть для Booking</a>
                    <a href="{{ route('admin.bookings.create') }}" class="primary">Создать бронь</a>
                </div>
            </div>

            @if ($latestBookings->isEmpty())
                <div class="empty">
                    Пока записей нет. Создайте первую бронь через админскую форму.
                </div>
            @else
                <div class="table-wrap">
                    <table>
                        <thead>
                        <tr>
                            <th>Номер брони</th>
                            <th>Гость</th>
                            <th>Комната</th>
                            <th>Статус</th>
                            <th>Сумма</th>
                        </tr>
                        </thead>
                        <tbody>
                        @foreach ($latestBookings as $booking)
                            <tr>
                                <td><a href="{{ route('admin.bookings.show', $booking) }}">{{ $booking->booking_number }}</a></td>
                                <td>{{ $booking->guest_name }}</td>
                                <td>№ {{ $booking->room?->code }}</td>
                                <td><span class="badge {{ $booking->status }}">{{ \App\Models\Booking::statusOptions()[$booking->status] ?? $booking->status }}</span></td>
                                <td>{{ number_format((float) $booking->full_amount, 2, '.', ' ') }} €</td>
                            </tr>
                        @endforeach
                        </tbody>
                    </table>
                </div>
            @endif
        </div>
    </div>
@endsection
