@php
    use App\Models\LicitacoesProcedimentos\Processo;

    $tipoProcessoSelecionado = old('tipo_processo', $registro->tipo_processo ?? '');
    $cdTipoSelecionado = (string) old('cd_tipo', $registro->cd_tipo ?? '');
    $tiposLicitacaoJson = json_encode(
        collect(Processo::TIPOS_LICITACAO)->mapWithKeys(fn (string $label, int $codigo) => [$codigo => __($label)])->all(),
        JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT | JSON_UNESCAPED_UNICODE
    );
    $tiposProcedimentoJson = json_encode(
        collect(Processo::TIPOS_PROCEDIMENTO)->mapWithKeys(fn (string $label, int $codigo) => [$codigo => __($label)])->all(),
        JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT | JSON_UNESCAPED_UNICODE
    );
@endphp

@csrf

@if(isset($registro))
    @method('put')
@endif

@foreach(['ano', 'tipo_processo', 'tipo', 'status', 'nr_processo', 'page'] as $filterKey)
    @if(request()->filled($filterKey))
        <input type="hidden" name="{{ $filterKey }}" value="{{ request($filterKey) }}">
    @endif
@endforeach

<div class="card border-0 shadow rounded-4">
    <div class="card-body p-4">

        <h5 class="mb-4 fw-semibold">
            <i class="fa-solid fa-file-lines me-2"></i>
            {{ __('Dados do Processo') }}
        </h5>

        <div class="row g-4">

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary" for="lp-tipo-processo">{{ __('Tipo de processo:') }}</label>
                <select class="form-select shadow-sm" name="tipo_processo" id="lp-tipo-processo" required>
                    <option value="">{{ __('Selecione') }}</option>
                    <option value="licitacao" @selected($tipoProcessoSelecionado === 'licitacao')>{{ __('Licitação') }}</option>
                    <option value="procedimento" @selected($tipoProcessoSelecionado === 'procedimento')>{{ __('Procedimento') }}</option>
                </select>
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary" for="lp-cd-tipo">{{ __('Tipo:') }}</label>
                <select class="form-select shadow-sm" name="cd_tipo" id="lp-cd-tipo" required
                    data-tipos-licitacao="{{ $tiposLicitacaoJson }}"
                    data-tipos-procedimento="{{ $tiposProcedimentoJson }}"
                    data-cd-tipo-selecionado="{{ $cdTipoSelecionado }}"
                    data-selecione-label="{{ __('Selecione') }}">
                    <option value="">{{ __('Selecione') }}</option>
                    @php
                        $tiposAtuais = $tipoProcessoSelecionado === 'procedimento'
                            ? Processo::TIPOS_PROCEDIMENTO
                            : ($tipoProcessoSelecionado === 'licitacao' ? Processo::TIPOS_LICITACAO : []);
                    @endphp
                    @foreach($tiposAtuais as $codigo => $label)
                        <option value="{{ $codigo }}" @selected($cdTipoSelecionado === (string) $codigo)>{{ __($label) }}</option>
                    @endforeach
                </select>
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary">{{ __('Número da Licitação:') }}</label>
                <input type="text" maxlength="30" name="nr_licitacao" class="form-control shadow-sm" value="{{ old('nr_licitacao', $registro->nr_licitacao ?? '') }}" required>
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary">{{ __('Nº do processo:') }}</label>
                <input type="text" maxlength="30" name="nr_processo" class="form-control shadow-sm" value="{{ old('nr_processo', $registro->nr_processo ?? '') }}">
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary">{{ __('Nº do Memorando:') }}</label>
                <input type="text" maxlength="30" name="nr_memorando" class="form-control shadow-sm" value="{{ old('nr_memorando', $registro->nr_memorando ?? '') }}">
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary" for="lp-id-setor">
                    {{ __('Setor:') }}
                </label>
                @php
                    $idSetorSelecionado = (string) old('id_setor', $registro->id_setor ?? '');
                    $setoresLista = collect($secretarias ?? []);
                    $setoresPorTipo = [
                        'SECRETARIA' => $setoresLista->where('type', 'SECRETARIA'),
                        'SECRETARIA_EXECUTIVA' => $setoresLista->where('type', 'SECRETARIA_EXECUTIVA'),
                        'AUTARQUIA_FUNDACAO' => $setoresLista->whereIn('type', ['AUTARQUIA', 'FUNDACAO']),
                    ];
                    $labelsGrupo = [
                        'SECRETARIA' => __('Secretarias'),
                        'SECRETARIA_EXECUTIVA' => __('Secretarias Executivas'),
                        'AUTARQUIA_FUNDACAO' => __('Autarquias e Fundações'),
                    ];
                    $idsDisponiveis = $setoresLista->pluck('id')->map(fn ($id) => (string) $id);
                    $opcaoLegada = ($idSetorSelecionado !== '' && !$idsDisponiveis->contains($idSetorSelecionado))
                        ? Processo::getSetorOptionById($idSetorSelecionado)
                        : null;
                @endphp
                <select class="form-select shadow-sm" name="id_setor" id="lp-id-setor" required>
                    <option value="">{{ __('Selecione') }}</option>
                    @if($opcaoLegada)
                        <option value="{{ $opcaoLegada['value'] }}" @selected($idSetorSelecionado === (string) $opcaoLegada['value'])>
                            {{ __($opcaoLegada['label']) }}
                        </option>
                    @endif
                    @foreach($labelsGrupo as $grupoKey => $grupoLabel)
                        @php $itensGrupo = $setoresPorTipo[$grupoKey] ?? collect(); @endphp
                        @if($itensGrupo->isNotEmpty())
                            <optgroup label="{{ $grupoLabel }}">
                                @foreach($itensGrupo as $setor)
                                    @php
                                        $setorLabel = $setor->name;
                                        if ($setor->abbreviation) {
                                            $setorLabel .= ' (' . $setor->abbreviation . ')';
                                        }
                                        if (($setor->status ?? '') !== 'ATIVADO') {
                                            $setorLabel .= ' — ' . __('Inativo');
                                        }
                                    @endphp
                                    <option value="{{ $setor->id }}" @selected($idSetorSelecionado === (string) $setor->id)>
                                        {{ $setorLabel }}
                                    </option>
                                @endforeach
                            </optgroup>
                        @endif
                    @endforeach
                </select>
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary">{{ __('Data:') }}</label>
                <input type="date" name="dt_data" class="form-control shadow-sm" value="{{ old('dt_data', isset($registro->dt_data) ? $registro->dt_data->format('Y-m-d') : '') }}" required>
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary">{{ __('Hora:') }}</label>
                <input type="time" name="dt_hora" class="form-control shadow-sm rounded-3" value="{{ old('dt_hora', $registro->dt_hora ?? '') }}">
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary">{{ __('Data de encerramento:') }}</label>
                <input type="date" name="dt_encerramento" class="form-control shadow-sm" value="{{ old('dt_encerramento', isset($registro->dt_encerramento) ? $registro->dt_encerramento->format('Y-m-d') : '') }}">
            </div>

            <div class="col-md-3">
                <label class="form-label fw-semibold text-secondary">{{ __('Status:') }}</label>
                <select class="form-select shadow-sm" name="cd_status" required>
                    <option value="">{{ __('Selecione') }}</option>

                    <option value="1" @selected((string) old('cd_status', $registro->cd_status ?? '') === '1')>{{ __('Em Andamento / Licitado') }}</option>
                    <option value="2" @selected((string) old('cd_status', $registro->cd_status ?? '') === '2')>{{ __('Cancelado') }}</option>
                    <option value="3" @selected((string) old('cd_status', $registro->cd_status ?? '') === '3')>{{ __('Suspenso') }}</option>
                    <option value="4" @selected((string) old('cd_status', $registro->cd_status ?? '') === '4')>{{ __('Aguardando') }}</option>
                    <option value="5" @selected((string) old('cd_status', $registro->cd_status ?? '') === '5')>{{ __('Não Homologado(a)') }}</option>
                    <option value="6" @selected((string) old('cd_status', $registro->cd_status ?? '') === '6')>{{ __('Homologado(a)') }}</option>
                    <option value="7" @selected((string) old('cd_status', $registro->cd_status ?? '') === '7')>{{ __('Fracassado') }}</option>
                </select>
            </div>

            <div class="col-12">
                <label class="form-label fw-semibold text-secondary">{{ __('Objeto:') }}</label>
                <textarea name="ds_objeto" rows="4" class="form-control shadow-sm" required>{{ old('ds_objeto', $registro->ds_objeto ?? '') }}</textarea>
            </div>

        </div>

        <div class="d-flex justify-content-end mt-4">
            <button class="btn btn-success px-4 py-2 shadow-sm">
                <i class="fa-solid fa-check me-2"></i>
                {{ __('Salvar') }}
            </button>
        </div>

    </div>
</div>


