@extends('layouts.admin.theme')

@section('title', 'Cadastrar - Fluxo de Ônibus')

@section('content')
@include('errors.messageFlash')

<div class="card shadow-sm border-0">
    <div class="card-header bg-primary text-white d-flex justify-content-between align-items-center">
        <h3 class="my-2 fw-bolder">
            <i class="fa fa-bus me-2"></i> Cadastrar Fluxo de Ônibus
        </h3>

        <div class="d-flex gap-2">
            <a href="{{ route('admin.fluxoOnibus.index') }}" class="btn btn-light btn">
                <i class="fa fa-arrow-left me-2"></i> Voltar
            </a>
        </div>
    </div>

    <div class="card-body">
        <form action="{{ route('admin.fluxoOnibus.store') }}" enctype="multipart/form-data" method="POST">
            @csrf

            @php $veiculos = ['Van', 'Micro-ônibus', 'Ônibus', 'Double Deck']; @endphp

            <!-- Seção 1: Datas e Horários -->
            <h5 class="text-primary mb-4">
                <i class="fa fa-calendar me-2"></i> Datas e Horários
            </h5>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="data_chegada" class="form-label fw-bold">Data de Chegada *</label>
                        <input type="date" name="data_chegada" id="data_chegada"
                            class="form-control @error('data_chegada') is-invalid @enderror"
                            value="{{ old('data_chegada') }}" required>
                        @error('data_chegada')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="horario_chegada" class="form-label fw-bold">Horário de Chegada *</label>
                        <input type="time" name="horario_chegada" id="horario_chegada"
                            class="form-control @error('horario_chegada') is-invalid @enderror"
                            value="{{ old('horario_chegada') }}" required>
                        @error('horario_chegada')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="data_retorno" class="form-label fw-bold">Data de Retorno *</label>
                        <input type="date" name="data_retorno" id="data_retorno"
                            class="form-control @error('data_retorno') is-invalid @enderror"
                            value="{{ old('data_retorno') }}" required>
                        @error('data_retorno')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="horario_retorno" class="form-label fw-bold">Horário de Retorno *</label>
                        <input type="time" name="horario_retorno" id="horario_retorno"
                            class="form-control @error('horario_retorno') is-invalid @enderror"
                            value="{{ old('horario_retorno') }}" required>
                        @error('horario_retorno')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <!-- Seção 2: Informações da Viagem -->
            <h5 class="text-primary mb-4">
                <i class="fa fa-route me-2"></i> Informações da Viagem
            </h5>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="origem" class="form-label fw-bold">Origem *</label>
                        <input type="text" name="origem" id="origem"
                            class="form-control @error('origem') is-invalid @enderror"
                            value="{{ old('origem') }}"
                            placeholder="Cidade/Estado de origem" required>
                        @error('origem')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="nr_passageiros" class="form-label fw-bold">Número de Passageiros *</label>
                        <input type="number" name="nr_passageiros" id="nr_passageiros"
                            class="form-control @error('nr_passageiros') is-invalid @enderror"
                            value="{{ old('nr_passageiros') }}"
                            min="1" required>
                        @error('nr_passageiros')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <!-- Seção 3: Informações da Empresa de Transporte -->
            <h5 class="text-primary mb-4">
                <i class="fa fa-building me-2"></i> Informações da Empresa de Transporte
            </h5>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="empresa" class="form-label fw-bold">Empresa *</label>
                        <input type="text" name="empresa" id="empresa"
                            class="form-control @error('empresa') is-invalid @enderror"
                            value="{{ old('empresa') }}"
                            placeholder="Nome da empresa de transporte" required>
                        @error('empresa')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="veiculo" class="form-label fw-bold">Tipo de Veículo *</label>
                        <select name="veiculo" id="veiculo"
                            class="form-control @error('veiculo') is-invalid @enderror" required>
                            <option value="">Selecione o tipo de veículo</option>
                            @foreach($veiculos as $veiculo)
                            <option value="{{ $veiculo }}"
                                {{ old('veiculo') == $veiculo ? 'selected' : '' }}>
                                {{ $veiculo }}
                            </option>
                            @endforeach
                        </select>
                        @error('veiculo')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="cnpj" class="form-label fw-bold">CNPJ</label>
                        <input type="text" name="cnpj" id="cnpj"
                            class="form-control @error('cnpj') is-invalid @enderror"
                            value="{{ old('cnpj') }}"
                            placeholder="00.000.000/0000-00">
                        @error('cnpj')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="placa_veiculo" class="form-label fw-bold">Placa do Veículo *</label>
                        <input type="text" name="placa_veiculo" id="placa_veiculo"
                            class="form-control @error('placa_veiculo') is-invalid @enderror"
                            value="{{ old('placa_veiculo') }}"
                            placeholder="ABC-1234" required>
                        @error('placa_veiculo')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="tel_empresa" class="form-label fw-bold">Telefone da Empresa *</label>
                        <input type="text" name="tel_empresa" id="tel_empresa"
                            class="form-control @error('tel_empresa') is-invalid @enderror"
                            value="{{ old('tel_empresa') }}"
                            placeholder="(21) 99999-9999" required>
                        @error('tel_empresa')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="tel2" class="form-label fw-bold">Telefone 2 (Opcional)</label>
                        <input type="text" name="tel2" id="tel2"
                            class="form-control @error('tel2') is-invalid @enderror"
                            value="{{ old('tel2') }}"
                            placeholder="(21) 99999-9999">
                        @error('tel2')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="email_licenca" class="form-label fw-bold">Email para Licença *</label>
                        <input type="email" name="email_licenca" id="email_licenca"
                            class="form-control @error('email_licenca') is-invalid @enderror"
                            value="{{ old('email_licenca') }}"
                            placeholder="email@empresa.com" required>
                        @error('email_licenca')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <!-- Seção 4: Informações do Guia -->
            <h5 class="text-primary mb-4">
                <i class="fa fa-user me-2"></i> Informações do Guia
            </h5>

            @if(session('success'))
            <div class="alert alert-success alert-dismissible fade show">
                <i class="fa fa-check-circle me-2"></i> {{ session('success') }}
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
            @endif

            @if(session('info'))
            <div class="alert alert-info alert-dismissible fade show">
                <i class="fa fa-info-circle me-2"></i> {{ session('info') }}
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
            @endif

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="cpf_guia" class="form-label fw-bold">CPF do Guia *</label>
                        <input type="text" name="cpf_guia" id="cpf_guia"
                            class="form-control @error('cpf_guia') is-invalid @enderror"
                            value="{{ old('cpf_guia', $cpfGuia ?? $guiaData['cpf_guia'] ?? '') }}"
                            placeholder="000.000.000-00" required>
                        @error('cpf_guia')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="nome_guia" class="form-label fw-bold">Nome do Guia *</label>
                        <input type="text" name="nome_guia" id="nome_guia"
                            class="form-control @error('nome_guia') is-invalid @enderror"
                            value="{{ old('nome_guia', $guiaData['nome_guia'] ?? '') }}"
                            placeholder="Nome completo do guia" required>
                        @error('nome_guia')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="email_guia" class="form-label fw-bold">Email do Guia *</label>
                        <input type="email" name="email_guia" id="email_guia"
                            class="form-control @error('email_guia') is-invalid @enderror"
                            value="{{ old('email_guia', $guiaData['email_guia'] ?? '') }}"
                            placeholder="guia@email.com" required>
                        @error('email_guia')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="tel_guia" class="form-label fw-bold">Telefone do Guia *</label>
                        <input type="text" name="tel_guia" id="tel_guia"
                            class="form-control @error('tel_guia') is-invalid @enderror"
                            value="{{ old('tel_guia', $guiaData['tel_guia'] ?? '') }}"
                            placeholder="(21) 99999-9999" required>
                        @error('tel_guia')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="reg_cadastur" class="form-label fw-bold">Registro CADASTUR</label>
                        <input type="text" name="reg_cadastur" id="reg_cadastur"
                            class="form-control @error('reg_cadastur') is-invalid @enderror"
                            value="{{ old('reg_cadastur', $guiaData['reg_cadastur'] ?? '') }}"
                            placeholder="Número do registro">
                        @error('reg_cadastur')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <!-- Campo hidden para owner_id -->
                @if(isset($guiaData['owner_id']))
                <input type="hidden" name="owner_id" value="{{ $guiaData['owner_id'] }}">
                @endif
            </div>

            <!-- Seção 5: Informações do Receptivo -->
            <h5 class="text-primary mb-4">
                <i class="fa fa-hotel me-2"></i> Informações do Receptivo
            </h5>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="nome_fantasia_angra" class="form-label fw-bold">Nome Fantasia em Angra *</label>
                        <input type="text" name="nome_fantasia_angra" id="nome_fantasia_angra"
                            class="form-control @error('nome_fantasia_angra') is-invalid @enderror"
                            value="{{ old('nome_fantasia_angra') }}"
                            placeholder="Nome fantasia do receptivo" required>
                        @error('nome_fantasia_angra')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="cnpj_receptivo" class="form-label fw-bold">CNPJ do Receptivo *</label>
                        <input type="text" name="cnpj_receptivo" id="cnpj_receptivo"
                            class="form-control @error('cnpj_receptivo') is-invalid @enderror"
                            value="{{ old('cnpj_receptivo') }}"
                            placeholder="00.000.000/0000-00" required>
                        @error('cnpj_receptivo')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="razao_social" class="form-label fw-bold">Razão Social *</label>
                        <input type="text" name="razao_social" id="razao_social"
                            class="form-control @error('razao_social') is-invalid @enderror"
                            value="{{ old('razao_social') }}"
                            placeholder="Razão social da empresa" required>
                        @error('razao_social')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="responsavel" class="form-label fw-bold">Responsável *</label>
                        <input type="text" name="responsavel" id="responsavel"
                            class="form-control @error('responsavel') is-invalid @enderror"
                            value="{{ old('responsavel') }}"
                            placeholder="Nome do responsável" required>
                        @error('responsavel')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <!-- Seção 6: Informações Adicionais -->
            <h5 class="text-primary mb-4">
                <i class="fa fa-info-circle me-2"></i> Informações Adicionais
            </h5>

            <div class="row mb-4">
                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="valor" class="form-label fw-bold">Valor (R$)</label>
                        <input type="number" name="valor" id="valor"
                            class="form-control @error('valor') is-invalid @enderror"
                            value="{{ old('valor') }}"
                            placeholder="0.00" step="0.01" min="0">
                        @error('valor')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="form-group mb-3">
                        <label for="upload" class="form-label fw-bold">Upload de Arquivo</label>
                        <input type="file" name="upload" id="upload"
                            class="form-control @error('upload') is-invalid @enderror"
                            accept=".jpeg,.jpg,.png,.pdf">
                        <div class="form-text">
                            Formatos aceitos: JPEG, PNG, PDF ( máximo: 2MB )
                        </div>
                        @error('upload')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>

            <div class="row mb-4">
                <div class="col-12">
                    <div class="form-group mb-3">
                        <label for="observacao" class="form-label fw-bold">Observações</label>
                        <textarea name="observacao" id="observacao"
                            class="form-control @error('observacao') is-invalid @enderror"
                            rows="4"
                            placeholder="Observações adicionais...">{{ old('observacao') }}</textarea>
                        @error('observacao')
                        <div class="invalid-feedback">
                            {{ $message }}
                        </div>
                        @enderror
                    </div>
                </div>
            </div>


            <div class="row mt-4">
                <div class="col-12">
                    <div class="d-flex justify-content-end gap-2">
                        <a href="{{ route('admin.fluxoOnibus.index') }}" class="btn btn-secondary">
                            <i class="fa fa-times me-2"></i> Cancelar
                        </a>
                        <button type="submit" class="btn btn-success">
                            <i class="fa fa-save me-2"></i> Cadastrar
                        </button>
                    </div>
                </div>
            </div>
        </form>
    </div>
</div>

<script>
    document.addEventListener('DOMContentLoaded', function() {
        // Focar no primeiro campo
        document.getElementById('data_chegada').focus();

        // Validação de datas
        const dataChegada = document.getElementById('data_chegada');
        const dataRetorno = document.getElementById('data_retorno');

        function validarDatas() {
            if (dataChegada.value && dataRetorno.value) {
                if (new Date(dataRetorno.value) < new Date(dataChegada.value)) {
                    dataRetorno.setCustomValidity('A data de retorno deve ser posterior à data de chegada');
                } else {
                    dataRetorno.setCustomValidity('');
                }
            }
        }

        dataChegada.addEventListener('change', validarDatas);
        dataRetorno.addEventListener('change', validarDatas);

        // Máscaras
        // CNPJ
        const cnpjInput = document.getElementById('cnpj');
        if (cnpjInput) {
            cnpjInput.addEventListener('input', function(e) {
                let value = e.target.value.replace(/\D/g, '');
                if (value.length <= 14) {
                    value = value.replace(/(\d{2})(\d)/, '$1.$2');
                    value = value.replace(/(\d{3})(\d)/, '$1.$2');
                    value = value.replace(/(\d{3})(\d)/, '$1/$2');
                    value = value.replace(/(\d{4})(\d)/, '$1-$2');
                    e.target.value = value;
                }
            });
        }

        // CNPJ Receptivo
        const cnpjReceptivoInput = document.getElementById('cnpj_receptivo');
        if (cnpjReceptivoInput) {
            cnpjReceptivoInput.addEventListener('input', function(e) {
                let value = e.target.value.replace(/\D/g, '');
                if (value.length <= 14) {
                    value = value.replace(/(\d{2})(\d)/, '$1.$2');
                    value = value.replace(/(\d{3})(\d)/, '$1.$2');
                    value = value.replace(/(\d{3})(\d)/, '$1/$2');
                    value = value.replace(/(\d{4})(\d)/, '$1-$2');
                    e.target.value = value;
                }
            });
        }

        // Telefone
        const telInput = document.getElementById('tel_empresa');
        if (telInput) {
            telInput.addEventListener('input', function(e) {
                let value = e.target.value.replace(/\D/g, '');
                if (value.length <= 11) {
                    if (value.length <= 2) {
                        value = value.replace(/(\d{0,2})/, '($1');
                    } else if (value.length <= 7) {
                        value = value.replace(/(\d{2})(\d{0,5})/, '($1) $2');
                    } else {
                        value = value.replace(/(\d{2})(\d{5})(\d{0,4})/, '($1) $2-$3');
                    }
                    e.target.value = value;
                }
            });
        }

        // Telefone 2
        const tel2Input = document.getElementById('tel2');
        if (tel2Input) {
            tel2Input.addEventListener('input', function(e) {
                let value = e.target.value.replace(/\D/g, '');
                if (value.length <= 11) {
                    if (value.length <= 2) {
                        value = value.replace(/(\d{0,2})/, '($1');
                    } else if (value.length <= 7) {
                        value = value.replace(/(\d{2})(\d{0,5})/, '($1) $2');
                    } else {
                        value = value.replace(/(\d{2})(\d{5})(\d{0,4})/, '($1) $2-$3');
                    }
                    e.target.value = value;
                }
            });
        }

        // Placa do veículo (formato Mercosul)
        const placaInput = document.getElementById('placa_veiculo');
        if (placaInput) {
            placaInput.addEventListener('input', function(e) {
                let value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, '');
                if (value.length > 7) value = value.substring(0, 7);

                if (value.length <= 3) {
                    value = value.replace(/([A-Z0-9]{3})/, '$1');
                } else {
                    value = value.replace(/([A-Z0-9]{3})([A-Z0-9]{1})([A-Z0-9]{2})/, '$1$2$3');
                    if (value.length > 6) {
                        value = value.replace(/([A-Z0-9]{3})([A-Z0-9]{1})([A-Z0-9]{3})/, '$1-$2$3');
                    }
                }
                e.target.value = value;
            });
        }
    });
</script>

<style>
    .form-label {
        font-weight: 600;
    }

    .card-header h3 {
        margin: 0;
    }

    h5.text-primary {
        border-bottom: 2px solid #0d6efd;
        padding-bottom: 0.5rem;
        margin-top: 2rem;
    }

    h5.text-primary:first-of-type {
        margin-top: 0;
    }
</style>
@endsection