@extends('layouts.admin.theme')
@section('title', env('APP_NAME') . ' :: ' . __('Alerta SEI'))
@section('content')

    @include('errors.messageFlash')

    <div class="card shadow-sm mb-4">
        <div class="card-header bg-primary text-white d-flex flex-wrap align-items-center justify-content-between gap-2">
            <h5 class="mb-0">
                <i class="fa-solid fa-triangle-exclamation me-1"></i>{{ __('Alerta SEI') }}
            </h5>
            <div class="d-flex align-items-center gap-3 flex-wrap">
                <a href="{{ route('sei.index') }}" target="_blank" rel="noopener" class="btn btn-sm btn-outline-light">
                    <i class="fa-solid fa-eye me-1"></i>{{ __('Ver no site') }}
                </a>
                @if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_ALERTA_SEI')['editar'] ?? false)
                    @if ($alerta->situacaoExibicao() === 'programado')
                        <span class="badge bg-warning text-dark fs-6">
                            <i class="fa-solid fa-clock me-1"></i>{{ __('Programado') }}
                        </span>
                        <span class="small text-white-50">
                            {{ __('Publicação em') }} {{ $alerta->publicado_em_formatado }}
                        </span>
                    @else
                        <form id="form-sei-alerta-status" action="{{ route('admin.seiAlertas.status') }}" method="post" class="d-flex align-items-center gap-2 mb-0">
                            @csrf
                            @if ($historicos->currentPage() > 1)
                                <input type="hidden" name="page" value="{{ $historicos->currentPage() }}">
                            @endif
                            @if ($alerta->situacaoExibicao() === 'exibindo')
                                <span class="badge bg-success">{{ __('Exibindo') }}</span>
                            @elseif ($alerta->situacaoExibicao() === 'expirado')
                                <span class="badge bg-secondary">{{ __('Expirado') }}</span>
                            @endif
                            <span class="small text-white-50">{{ __('Exibir aviso') }}</span>
                            <div class="form-check form-switch mb-0">
                                <input class="form-check-input" type="checkbox" role="switch"
                                    id="sei-alerta-ativo-switch"
                                    aria-label="{{ __('Ativar ou desativar aviso SEI') }}"
                                    @checked($alerta->ativo)>
                            </div>
                        </form>
                    @endif
                @else
                    @php
                        $badgeClass = match ($alerta->situacaoExibicao()) {
                            'programado' => 'bg-warning text-dark',
                            'exibindo' => 'bg-success',
                            'expirado' => 'bg-secondary',
                            default => 'bg-secondary',
                        };
                    @endphp
                    <span class="badge {{ $badgeClass }}">
                        {{ $alerta->situacao_exibicao_label }}
                    </span>
                @endif
            </div>
        </div>

        <div class="card-body">
            @if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_ALERTA_SEI')['editar'] ?? false)
                <form id="form-sei-alerta" method="post" action="{{ route('admin.seiAlertas.update') }}"
                    data-publicado-em="{{ old('publicado_em', $alerta->publicado_em?->format('Y-m-d\TH:i')) }}"
                    data-exibir-ate="{{ old('exibir_ate', $alerta->exibir_ate?->format('Y-m-d\TH:i')) }}"
                    data-duracao-exibicao="{{ old('duracao_exibicao', $duracaoExibicao) }}"
                    data-has-validation-errors="{{ $errors->any() ? '1' : '0' }}">
                    @csrf
                    @method('put')
                    @if ($historicos->currentPage() > 1)
                        <input type="hidden" name="page" value="{{ $historicos->currentPage() }}">
                    @endif

                    <div class="mb-3">
                        <label for="sei_alerta_conteudo" class="form-label fw-semibold">{{ __('Conteúdo do aviso') }}</label>
                        <textarea name="conteudo" id="sei_alerta_conteudo" rows="8" maxlength="10000"
                            class="form-control @error('conteudo') is-invalid @enderror"
                            required
                            placeholder="{{ __('Ex.: Manutenção SEI-RJ - Informamos que o SEI-RJ passará por manutenção...') }}">{{ old('conteudo', $alerta->conteudo) }}</textarea>
                        <div class="form-text">
                            {{ __('Use HTML básico quando necessário (ex.: &lt;br&gt;, &lt;small&gt;). O conteúdo é sanitizado antes da publicação.') }}
                        </div>
                        @error('conteudo')
                            <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="row g-3">
                        <div class="col-md-6">
                            <label for="sei_alerta_publicado_em" class="form-label fw-semibold">{{ __('Publicar em') }}</label>
                            <input type="datetime-local" name="publicado_em" id="sei_alerta_publicado_em"
                                class="form-control @error('publicado_em') is-invalid @enderror"
                                value="{{ old('publicado_em', $alerta->publicado_em?->format('Y-m-d\TH:i') ?? now()->format('Y-m-d\TH:i')) }}"
                                required>
                            <div class="form-text">{{ __('Data e hora em que o aviso ficará visível no portal.') }}</div>
                            @error('publicado_em')
                                <div class="invalid-feedback">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="col-md-6">
                            <label for="sei_alerta_exibir_duracao" class="form-label fw-semibold">{{ __('Tempo de exibição') }}</label>
                            <select name="duracao_exibicao" id="sei_alerta_exibir_duracao"
                                class="form-select @error('duracao_exibicao') is-invalid @enderror" required>
                                <optgroup label="{{ __('Minutos e horas') }}">
                                    <option value="15m" @selected(old('duracao_exibicao', $duracaoExibicao) === '15m')>{{ __('15 minutos') }}</option>
                                    <option value="30m" @selected(old('duracao_exibicao', $duracaoExibicao) === '30m')>{{ __('30 minutos') }}</option>
                                    <option value="1h" @selected(old('duracao_exibicao', $duracaoExibicao) === '1h')>{{ __('1 hora') }}</option>
                                    <option value="2h" @selected(old('duracao_exibicao', $duracaoExibicao) === '2h')>{{ __('2 horas') }}</option>
                                    <option value="4h" @selected(old('duracao_exibicao', $duracaoExibicao) === '4h')>{{ __('4 horas') }}</option>
                                    <option value="6h" @selected(old('duracao_exibicao', $duracaoExibicao) === '6h')>{{ __('6 horas') }}</option>
                                    <option value="12h" @selected(old('duracao_exibicao', $duracaoExibicao) === '12h')>{{ __('12 horas') }}</option>
                                </optgroup>
                                <optgroup label="{{ __('Dias') }}">
                                    <option value="1" @selected(old('duracao_exibicao', $duracaoExibicao) === '1')>{{ __('1 dia') }}</option>
                                    <option value="3" @selected(old('duracao_exibicao', $duracaoExibicao) === '3')>{{ __('3 dias') }}</option>
                                    <option value="7" @selected(old('duracao_exibicao', $duracaoExibicao) === '7')>{{ __('7 dias') }}</option>
                                    <option value="15" @selected(old('duracao_exibicao', $duracaoExibicao) === '15')>{{ __('15 dias') }}</option>
                                    <option value="30" @selected(old('duracao_exibicao', $duracaoExibicao) === '30')>{{ __('30 dias') }}</option>
                                </optgroup>
                                <optgroup label="{{ __('Outros') }}">
                                    <option value="none" @selected(old('duracao_exibicao', $duracaoExibicao) === 'none')>{{ __('Sem prazo definido') }}</option>
                                    <option value="custom" @selected(old('duracao_exibicao', $duracaoExibicao) === 'custom')>{{ __('Personalizado') }}</option>
                                </optgroup>
                            </select>
                            <div class="form-text">{{ __('Por quanto tempo o aviso permanecerá visível após a publicação.') }}</div>
                            @error('duracao_exibicao')
                                <div class="invalid-feedback d-block">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="col-12 d-none" id="sei_alerta_exibir_ate_wrap">
                            <label for="sei_alerta_exibir_ate" class="form-label fw-semibold">{{ __('Exibir até (data e hora personalizadas)') }}</label>
                            <input type="datetime-local" name="exibir_ate" id="sei_alerta_exibir_ate"
                                class="form-control @error('exibir_ate') is-invalid @enderror"
                                value="{{ old('exibir_ate', $alerta->exibir_ate?->format('Y-m-d\TH:i')) }}">
                            <div class="form-text">{{ __('Informe a data e hora exatas em que o aviso deixará de ser exibido no portal.') }}</div>
                            @error('exibir_ate')
                                <div class="invalid-feedback d-block">{{ $message }}</div>
                            @enderror
                        </div>
                    </div>

                    <div class="form-check mt-3">
                        <input type="hidden" name="ativo" value="0">
                        <input type="checkbox" name="ativo" value="1" id="sei_alerta_ativo"
                            class="form-check-input @error('ativo') is-invalid @enderror"
                            @checked(old('ativo', $alerta->ativo ? '1' : '0') == '1' || old('ativo') === true)>
                        <label for="sei_alerta_ativo" class="form-check-label">{{ __('Publicar no site') }}</label>
                        <div class="form-text">{{ __('Quando marcado, o aviso ficará visível no portal dentro do período programado abaixo.') }}</div>
                        @error('ativo')
                            <div class="invalid-feedback">{{ $message }}</div>
                        @enderror
                    </div>

                    <div class="mt-4">
                        <button type="submit" class="btn btn-primary">
                            <i class="fa-solid fa-floppy-disk me-1"></i>{{ __('Salvar aviso') }}
                        </button>
                    </div>
                </form>
            @else
                <div class="alert alert-info mb-0">
                    <i class="fa-solid fa-circle-info me-1"></i>
                    {{ __('Você possui permissão apenas para visualizar este módulo.') }}
                </div>
                @if ($alerta->conteudo)
                    <div class="mt-3 p-3 border rounded bg-light">
                        {!! $conteudoPreview !!}
                    </div>
                @endif
            @endif
        </div>
    </div>

    <div class="card shadow-sm">
        <div class="card-header bg-light">
            <h5 class="mb-0">
                <i class="fa-solid fa-clock-rotate-left me-1"></i>{{ __('Histórico de alterações') }}
                <span class="badge bg-secondary ms-1">{{ $historicos->total() }}</span>
            </h5>
        </div>
        <div class="card-body p-0">
            @if ($historicos->isNotEmpty())
                <div class="table-responsive">
                    <table class="table table-hover align-middle mb-0">
                        <thead class="table-light">
                            <tr>
                                <th scope="col" style="width:150px">{{ __('Data') }}</th>
                                <th scope="col" style="width:180px">{{ __('Usuário') }}</th>
                                <th scope="col">{{ __('Conteúdo') }}</th>
                                <th scope="col" style="width:150px">{{ __('Publicar em') }}</th>
                                <th scope="col" style="width:150px">{{ __('Exibir até') }}</th>
                                <th scope="col" class="text-center" style="width:100px">{{ __('Status') }}</th>
                                <th scope="col" style="width:110px">{{ __('Ação') }}</th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach ($historicos as $historico)
                                <tr>
                                    <td class="text-nowrap">{{ $historico->data_formatada }}</td>
                                    <td>{{ $historico->usuario->name ?? __('Sistema') }}</td>
                                    <td>
                                        @if ($historico->conteudo)
                                            <span title="{{ e(strip_tags($historico->conteudo)) }}">{{ $historico->conteudo_resumido }}</span>
                                        @else
                                            <span class="text-muted">-</span>
                                        @endif
                                    </td>
                                    <td class="text-nowrap">
                                        @if ($historico->publicado_em)
                                            {{ $historico->publicado_em_formatado }}
                                        @else
                                            <span class="text-muted">-</span>
                                        @endif
                                    </td>
                                    <td class="text-nowrap">
                                        @if ($historico->exibir_ate)
                                            {{ $historico->exibir_ate_formatado }}
                                        @else
                                            <span class="text-muted">{{ __('Sem prazo') }}</span>
                                        @endif
                                    </td>
                                    <td class="text-center">
                                        <span class="badge {{ $historico->status_exibicao_badge_class }}">
                                            {{ $historico->status_exibicao_label }}
                                        </span>
                                    </td>
                                    <td>
                                        @if ($historico->acao === \App\Models\Sei\SeiAlertaHistorico::ACAO_STATUS)
                                            <span class="badge bg-light text-dark border">{{ __('Status') }}</span>
                                        @else
                                            <span class="badge bg-light text-dark border">{{ __('Conteúdo') }}</span>
                                        @endif
                                    </td>
                                </tr>
                            @endforeach
                        </tbody>
                    </table>
                </div>
                <div class="p-3">
                    {{ $historicos->links() }}
                </div>
            @else
                <div class="p-4">
                    <div class="alert alert-info mb-0">
                        <i class="fa-solid fa-circle-info me-1"></i>
                        {{ __('Nenhuma alteração registrada ainda.') }}
                    </div>
                </div>
            @endif
        </div>
    </div>

@endsection

@push('scripts')
<script src="{{ asset('pmar/js/admin/sei/admin-alerta.js') }}?v={{ time() }}"></script>
@endpush
