@php
    use App\Enums\MobiangraAlertaCategoria;
@endphp

<div class="tab-pane fade {{ $tabAtual === 'alertas' ? 'show active' : '' }}"
     id="tab-alertas" role="tabpanel" aria-labelledby="tab-alertas-btn">

    <div class="d-flex flex-wrap align-items-center justify-content-between gap-2 mb-3">
        <h5 class="mb-0">
            <i class="fa-solid fa-bell me-1"></i>{{ __('Alertas e avisos') }}
            @if ($alertasAdmin)
                <span class="badge bg-secondary ms-1">{{ $alertasAdmin->total() }}</span>
            @endif
        </h5>
        <div class="d-flex gap-2 flex-wrap">
            <a href="{{ route('mobiangra.alertas') }}" target="_blank" class="btn btn-sm btn-outline-primary">
                <i class="fa-solid fa-eye me-1"></i>{{ __('Ver no site') }}
            </a>
            @if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_MOBIANGRA')['adicionar'] ?? false)
                <button type="button" class="btn btn-sm btn-success" data-bs-toggle="modal"
                    data-bs-target="#modal-alerta-form" data-alerta-mode="create">
                    <i class="fa-solid fa-plus me-1"></i>{{ __('Novo alerta') }}
                </button>
            @endif
        </div>
    </div>

    @if ($alertasAdmin && $alertasAdmin->isNotEmpty())
        <div class="table-responsive">
            <table class="table table-hover align-middle mb-0">
                <thead class="table-light">
                    <tr>
                        <th scope="col" style="width:120px">{{ __('Categoria') }}</th>
                        <th scope="col">{{ __('Título') }}</th>
                        <th scope="col" style="width:170px">{{ __('Publicar em') }}</th>
                        <th scope="col" style="width:170px">{{ __('Exibir até') }}</th>
                        <th scope="col" class="text-center" style="width:100px">{{ __('Status') }}</th>
                        <th scope="col" class="text-center" style="width:130px">{{ __('Ações') }}</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach ($alertasAdmin as $alerta)
                        <tr>
                            <td>
                                <span class="badge bg-light text-dark border">
                                    {{ $alerta->categoria->label() }}
                                </span>
                            </td>
                            <td>
                                <span class="d-block fw-semibold">{{ $alerta->titulo }}</span>
                                @if ($alerta->mensagem)
                                    <small class="d-block text-muted mt-1" style="white-space: pre-line;">{{ $alerta->mensagem }}</small>
                                @endif
                            </td>
                            <td class="text-nowrap">{{ $alerta->data_formatada }}</td>
                            <td class="text-nowrap">
                                @if ($alerta->exibir_ate)
                                    {{ $alerta->exibir_ate_formatada }}
                                @else
                                    <span class="text-muted">{{ __('Sem prazo') }}</span>
                                @endif
                            </td>
                            <td class="text-center">
                                @if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_MOBIANGRA')['editar'] ?? false)
                                    <form action="{{ route('admin.mobiangra.alertas.status', $alerta) }}" method="post" class="d-inline">
                                        @csrf
                                        <input type="hidden" name="tab" value="alertas">
                                        @if ($alertasAdmin->currentPage() > 1)
                                            <input type="hidden" name="page" value="{{ $alertasAdmin->currentPage() }}">
                                        @endif
                                        <button type="submit"
                                            class="btn btn-sm {{ $alerta->publicado ? 'btn-success' : 'btn-outline-secondary' }}"
                                            title="{{ $alerta->publicado ? __('Publicado') : __('Rascunho') }}">
                                            <i class="fa-solid {{ $alerta->publicado ? 'fa-eye' : 'fa-eye-slash' }}"></i>
                                        </button>
                                    </form>
                                @else
                                    <span class="badge {{ $alerta->publicado ? 'bg-success' : 'bg-secondary' }}">
                                        {{ $alerta->publicado ? __('Publicado') : __('Rascunho') }}
                                    </span>
                                @endif
                            </td>
                            <td class="text-center text-nowrap">
                                @if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_MOBIANGRA')['editar'] ?? false)
                                    <button type="button" class="btn btn-sm btn-outline-primary"
                                        data-bs-toggle="modal" data-bs-target="#modal-alerta-form"
                                        data-alerta-mode="edit"
                                        data-alerta-id="{{ $alerta->id }}"
                                        data-alerta-categoria="{{ $alerta->categoria->value }}"
                                        data-alerta-titulo="{{ $alerta->titulo }}"
                                        data-alerta-mensagem-b64="{{ base64_encode($alerta->mensagem ?? '') }}"
                                        data-alerta-publicado-em="{{ $alerta->publicado_em?->format('Y-m-d\TH:i') }}"
                                        data-alerta-exibir-ate="{{ $alerta->exibir_ate?->format('Y-m-d\TH:i') }}"
                                        data-alerta-publicado="{{ $alerta->publicado ? '1' : '0' }}"
                                        title="{{ __('Editar') }}">
                                        <i class="fa-solid fa-pen"></i>
                                    </button>
                                @endif
                                @if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_MOBIANGRA')['excluir'] ?? false)
                                    <form action="{{ route('admin.mobiangra.alertas.destroy', $alerta) }}" method="post"
                                        class="d-inline"
                                        onsubmit="return confirm(@json(__('Este alerta será excluído permanentemente. Deseja continuar?')))">
                                        @csrf
                                        @method('delete')
                                        <input type="hidden" name="tab" value="alertas">
                                        @if ($alertasAdmin->currentPage() > 1)
                                            <input type="hidden" name="page" value="{{ $alertasAdmin->currentPage() }}">
                                        @endif
                                        <button type="submit" class="btn btn-sm btn-outline-danger" title="{{ __('Excluir') }}">
                                            <i class="fa-solid fa-trash"></i>
                                        </button>
                                    </form>
                                @endif
                            </td>
                        </tr>
                    @endforeach
                </tbody>
            </table>
        </div>

        <div class="mt-3">
            {{ $alertasAdmin->appends(['tab' => 'alertas'])->links() }}
        </div>
    @else
        <div class="alert alert-info mb-0">
            <i class="fa-solid fa-circle-info me-1"></i>
            {{ __('Nenhum alerta cadastrado. Clique em "Novo alerta" para publicar o primeiro aviso.') }}
        </div>
    @endif
</div>

@if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_MOBIANGRA')['adicionar'] ?? false
    || auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_MOBIANGRA')['editar'] ?? false)
    <div class="modal fade" id="modal-alerta-form" tabindex="-1" aria-labelledby="modal-alerta-form-label" aria-hidden="true">
        <div class="modal-dialog modal-lg">
            <div class="modal-content">
                <form id="form-alerta" method="post" action="{{ route('admin.mobiangra.alertas.store') }}">
                    @csrf
                    <input type="hidden" name="_method" id="alerta-form-method" value="POST">
                    <input type="hidden" name="tab" value="alertas">
                    @if ($alertasAdmin && $alertasAdmin->currentPage() > 1)
                        <input type="hidden" name="page" value="{{ $alertasAdmin->currentPage() }}">
                    @endif

                    <div class="modal-header">
                        <h5 class="modal-title" id="modal-alerta-form-label">{{ __('Novo alerta') }}</h5>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ __('Fechar') }}"></button>
                    </div>
                    <div class="modal-body">
                        <div class="mb-3">
                            <label for="alerta_categoria" class="form-label fw-semibold">{{ __('Categoria') }}</label>
                            <select name="categoria" id="alerta_categoria" class="form-select @error('categoria') is-invalid @enderror" required>
                                <option value="">{{ __('Selecione…') }}</option>
                                @foreach (MobiangraAlertaCategoria::cases() as $categoria)
                                    <option value="{{ $categoria->value }}" @selected(old('categoria') === $categoria->value)>
                                        {{ $categoria->label() }}
                                    </option>
                                @endforeach
                            </select>
                            @error('categoria')
                                <div class="invalid-feedback">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="mb-3">
                            <label for="alerta_titulo" class="form-label fw-semibold">{{ __('Título') }}</label>
                            <input type="text" name="titulo" id="alerta_titulo" maxlength="150"
                                class="form-control @error('titulo') is-invalid @enderror"
                                value="{{ old('titulo') }}" required
                                placeholder="{{ __('Resumo curto do alerta (ex.: Alteração na Linha 020)') }}">
                            <div class="form-text">{{ __('Máximo de 150 caracteres. Use o campo Mensagem para o texto completo.') }}</div>
                            @error('titulo')
                                <div class="invalid-feedback">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="mb-3">
                            <label for="alerta_mensagem" class="form-label fw-semibold">{{ __('Mensagem') }}</label>
                            <textarea name="mensagem" id="alerta_mensagem" rows="5" maxlength="5000"
                                class="form-control @error('mensagem') is-invalid @enderror"
                                required placeholder="{{ __('Descreva o alerta com todos os detalhes para o cidadão.') }}">{{ old('mensagem') }}</textarea>
                            @error('mensagem')
                                <div class="invalid-feedback">{{ $message }}</div>
                            @enderror
                        </div>

                        <hr class="my-3">

                        <h6 class="fw-semibold mb-3">{{ __('Programação de exibição') }}</h6>

                        <div class="mb-3">
                            <label for="alerta_publicado_em" class="form-label fw-semibold">{{ __('Publicar em') }}</label>
                            <input type="datetime-local" name="publicado_em" id="alerta_publicado_em"
                                class="form-control @error('publicado_em') is-invalid @enderror"
                                value="{{ old('publicado_em', now()->format('Y-m-d\TH:i')) }}" required>
                            <div class="form-text">{{ __('Data e hora em que o alerta ficará visível no portal.') }}</div>
                            @error('publicado_em')
                                <div class="invalid-feedback">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="mb-3">
                            <label for="alerta_exibir_duracao" class="form-label fw-semibold">{{ __('Tempo de exibição') }}</label>
                            <select id="alerta_exibir_duracao" class="form-select">
                                <option value="1">{{ __('1 dia') }}</option>
                                <option value="3">{{ __('3 dias') }}</option>
                                <option value="7" selected>{{ __('7 dias') }}</option>
                                <option value="15">{{ __('15 dias') }}</option>
                                <option value="30">{{ __('30 dias') }}</option>
                                <option value="none">{{ __('Sem prazo definido') }}</option>
                                <option value="custom">{{ __('Personalizado') }}</option>
                            </select>
                            <div class="form-text">{{ __('Por quanto tempo o alerta permanecerá visível após a publicação.') }}</div>
                        </div>

                        <div class="mb-3 d-none" id="alerta_exibir_ate_wrap">
                            <label for="alerta_exibir_ate" class="form-label fw-semibold">{{ __('Exibir até') }}</label>
                            <input type="datetime-local" name="exibir_ate" id="alerta_exibir_ate"
                                class="form-control @error('exibir_ate') is-invalid @enderror"
                                value="{{ old('exibir_ate') }}">
                            @error('exibir_ate')
                                <div class="invalid-feedback">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="form-check">
                            <input type="hidden" name="publicado" value="0">
                            <input type="checkbox" name="publicado" value="1" id="alerta_publicado"
                                class="form-check-input" @checked(old('publicado', '1') == '1' || old('publicado') === true)>
                            <label for="alerta_publicado" class="form-check-label">{{ __('Publicar no site') }}</label>
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{ __('Cancelar') }}</button>
                        <button type="submit" class="btn btn-primary">
                            <i class="fa-solid fa-floppy-disk me-1"></i>{{ __('Salvar') }}
                        </button>
                    </div>
                </form>
            </div>
        </div>
    </div>
@endif
