@use('Illuminate\Support\Number')

@php
    // A mesma tela serve ao painel da empresa e ao master. Sem vínculo com
    // empresa as rotas do painel redirecionam, então os links seguem o contexto.
    $noMaster = auth()->user()->isMaster() && ! auth()->user()->company_id;
    $rotaLista = $noMaster ? 'master.notas' : 'painel.notas';
    $rotaXml = $noMaster ? 'master.notas.download' : 'painel.notas.download';
    $rotaDanfe = $noMaster ? 'master.notas.danfe' : 'painel.notas.danfe';
@endphp

<x-layouts.app title="{{ 'NF-e '.$nota->numero.'/'.$nota->serie }}" :subtitle="$nota->emit_nome">
    <x-slot:actions>
        <a href="{{ route($rotaLista) }}" class="btn-secondary btn-sm">Voltar</a>
        @if ($nota->tem_xml_completo)
            <a href="{{ route($rotaDanfe, $nota) }}" target="_blank" rel="noopener" class="btn-secondary btn-sm">Imprimir PDF</a>
            <a href="{{ route($rotaXml, $nota) }}" class="btn-primary btn-sm">Baixar XML</a>
        @endif
    </x-slot:actions>

    <div class="grid gap-6 lg:grid-cols-3">
        <div class="space-y-6 lg:col-span-2">

            {{-- Identificação --}}
            <div class="card card-pad">
                <div class="flex flex-wrap items-center gap-2">
                    <x-situacao-badge :situacao="$nota->situacao" />
                    @if ($nota->tem_xml_completo)
                        <span class="badge bg-brand-50 text-brand-700 ring-1 ring-brand-200">XML completo</span>
                    @else
                        <span class="badge bg-slate-100 text-slate-600">Somente resumo</span>
                    @endif
                    <span class="badge bg-slate-100 text-slate-600">{{ $nota->manifestacaoLabel() }}</span>
                </div>

                <dl class="mt-6 grid gap-x-8 gap-y-5 sm:grid-cols-2">
                    @foreach ([
                        ['Fornecedor', $nota->emit_nome ?: '—'],
                        ['CNPJ do fornecedor', $nota->emit_cnpj_formatado],
                        ['Inscrição estadual', $nota->emit_ie ?: '—'],
                        ['UF', $nota->emit_uf ?: '—'],
                        ['Número / série', $nota->numero.' / '.$nota->serie],
                        ['Modelo', $nota->modelo ?: '—'],
                        ['Emissão', $nota->data_emissao?->format('d/m/Y H:i') ?: '—'],
                        ['Autorização', $nota->data_autorizacao?->format('d/m/Y H:i') ?: '—'],
                        ['Protocolo', $nota->protocolo ?: '—'],
                        ['NSU', $nota->nsu ?: '—'],
                    ] as [$rotulo, $valor])
                        <div>
                            <dt class="text-xs font-semibold tracking-wide text-slate-500 uppercase">{{ $rotulo }}</dt>
                            <dd class="tabular mt-1 text-sm text-slate-900">{{ $valor }}</dd>
                        </div>
                    @endforeach

                    <div class="sm:col-span-2">
                        <dt class="text-xs font-semibold tracking-wide text-slate-500 uppercase">Valor total</dt>
                        <dd class="tabular mt-1 text-xl font-semibold text-slate-900">
                            {{ Number::currency((float) $nota->valor_total, 'BRL', 'pt_BR') }}
                        </dd>
                    </div>

                    <div class="sm:col-span-2">
                        <dt class="text-xs font-semibold tracking-wide text-slate-500 uppercase">Chave de acesso</dt>
                        <dd class="tabular mt-1 text-sm break-all text-slate-900">{{ $nota->chave_formatada }}</dd>
                    </div>
                </dl>
            </div>

            {{-- Eventos --}}
            <div class="card">
                <div class="border-b border-slate-100 px-5 py-4">
                    <h2 class="text-sm font-semibold text-slate-900">Eventos da nota</h2>
                </div>
                @forelse ($nota->eventos as $evento)
                    <div class="flex items-start justify-between gap-4 border-b border-slate-50 px-5 py-3 last:border-0">
                        <div>
                            <p class="text-sm font-medium text-slate-800">{{ $evento->descricao }}</p>
                            <p class="tabular text-xs text-slate-500">
                                Tipo {{ $evento->tipo_evento }} · sequência {{ $evento->sequencia }}
                                @if ($evento->protocolo) · protocolo {{ $evento->protocolo }} @endif
                            </p>
                        </div>
                        <p class="tabular shrink-0 text-xs text-slate-500">{{ $evento->data_evento?->format('d/m/Y H:i') }}</p>
                    </div>
                @empty
                    <p class="px-5 py-8 text-center text-sm text-slate-500">Nenhum evento registrado para esta nota.</p>
                @endforelse
            </div>

            {{-- XML --}}
            @if ($xml)
                <div class="card">
                    <div class="border-b border-slate-100 px-5 py-4">
                        <h2 class="text-sm font-semibold text-slate-900">Conteúdo do XML</h2>
                    </div>
                    <pre class="max-h-96 overflow-auto bg-slate-950 px-5 py-4 text-xs leading-relaxed text-slate-200">{{ $xml }}</pre>
                </div>
            @endif
        </div>

        {{-- Manifestação --}}
        <div class="space-y-6">
            {{-- Manifestar é ato fiscal em nome da empresa: exige o vínculo.
                 O master usa "Acessar como cliente" quando precisar fazê-lo. --}}
            @if (! $noMaster && (auth()->user()->isAdmin() || auth()->user()->isMaster()))
                <div class="card card-pad">
                    <h2 class="text-sm font-semibold text-slate-900">Manifestação do destinatário</h2>
                    <p class="mt-2 text-sm text-slate-600">
                        Registrar a ciência libera o XML completo quando a SEFAZ entregou apenas o resumo.
                        A manifestação é um ato fiscal e não pode ser desfeita.
                    </p>

                    <form method="POST" action="{{ route('painel.notas.manifestar', $nota) }}"
                          class="mt-5 space-y-4" x-data="{ tipo: 'ciencia' }">
                        @csrf

                        <div>
                            <label for="tipo" class="label">Evento</label>
                            <select id="tipo" name="tipo" x-model="tipo" class="input">
                                <option value="ciencia">Ciência da operação</option>
                                <option value="confirmada">Confirmação da operação</option>
                                <option value="desconhecida">Desconhecimento da operação</option>
                                <option value="nao_realizada">Operação não realizada</option>
                            </select>
                        </div>

                        <div x-show="tipo === 'nao_realizada'" x-cloak>
                            <label for="justificativa" class="label">Justificativa</label>
                            <textarea id="justificativa" name="justificativa" rows="3" class="input"
                                      placeholder="Mínimo de 15 caracteres"></textarea>
                        </div>

                        <button class="btn-primary w-full">Enviar manifestação à SEFAZ</button>
                    </form>

                    @if ($nota->manifestacao)
                        <p class="mt-4 rounded-lg bg-slate-50 px-3 py-2 text-xs text-slate-600">
                            Última manifestação: <strong>{{ $nota->manifestacaoLabel() }}</strong>
                            em {{ $nota->manifestacao_at?->format('d/m/Y H:i') }}.
                        </p>
                    @endif
                </div>
            @endif

            @unless ($nota->tem_xml_completo)
                <div class="rounded-lg border border-amber-200 bg-amber-50 px-5 py-4 text-sm text-amber-800">
                    A SEFAZ entregou apenas o resumo desta nota. O XML completo é liberado depois da
                    manifestação de ciência e chega na próxima sincronização.
                </div>
            @endunless
        </div>
    </div>
</x-layouts.app>
