<?php
// frota_manutencao.php — Registro de Manutenção
$pageActive = 'frota';
require_once __DIR__ . '/functions.php';
require_once __DIR__ . '/auth.php';
requireLogin();

$usuario = usuarioLogado();
$isAdmin = $usuario['perfil'] === 'ADMIN';

$veiculoId = (int)($_GET['veiculo_id'] ?? 0);

// Buscar veículo
if ($isAdmin) {
    $stmt = pdo()->prepare("SELECT * FROM frota_veiculos WHERE id = ? AND ativo = 1");
    $stmt->execute([$veiculoId]);
} else {
    $stmt = pdo()->prepare("SELECT * FROM frota_veiculos WHERE id = ? AND responsavel_id = ? AND ativo = 1");
    $stmt->execute([$veiculoId, $usuario['id']]);
}
$veiculo = $stmt->fetch();

if (!$veiculo) {
    header('Location: frota.php');
    exit;
}

// Buscar manutenções do veículo
$stmtMan = pdo()->prepare("SELECT * FROM frota_manutencoes WHERE veiculo_id = ? ORDER BY data DESC, id DESC");
$stmtMan->execute([$veiculoId]);
$manutencoes = $stmtMan->fetchAll();

$pageTitle = 'Manutenções - ' . $veiculo['placa'];

require_once __DIR__ . '/includes/header.php';
?>

<style>
.manutencao-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.manutencao-item {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.manutencao-icone {
    font-size: 24px;
    flex-shrink: 0;
}

.manutencao-info {
    flex: 1;
    min-width: 0;
}

.manutencao-tipo {
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
}

.manutencao-data {
    font-size: 10px;
    color: var(--muted);
    font-family: var(--mono);
}

.manutencao-desc {
    font-size: 11px;
    color: var(--muted);
    margin-top: 2px;
}

.manutencao-foto {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    object-fit: cover;
    border: 1px solid var(--border);
    cursor: pointer;
    flex-shrink: 0;
}

.tipo-troca-oleo { color: var(--amber); }
.tipo-filtro { color: var(--cyan); }
.tipo-pneu { color: var(--green); }
.tipo-revisao { color: var(--purple); }
.tipo-outro { color: var(--muted); }

.btn-add-manutencao {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    background: var(--cyan);
    color: #000;
    border: none;
    border-radius: var(--radius);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: all .15s;
    font-family: var(--ui);
    margin-bottom: 16px;
}

.btn-add-manutencao:hover {
    opacity: .85;
}
</style>

<div class="topbar">
    <button class="btn-hamburger" onclick="abrirDrawer()" aria-label="Menu">&#9776;</button>
    <div>
        <div class="page-title"> Manutenções</div>
        <div class="page-sub"><?= e($veiculo['placa']) ?> - <?= e($veiculo['modelo'] ?: '—') ?></div>
    </div>
    <div class="topbar-actions">
        <a href="frota.php" class="btn btn-ghost"> Frota</a>
    </div>
</div>

<div class="content">
    <button class="btn-add-manutencao" onclick="abrirModal('modal-manutencao')">
        + Nova Manutenção
    </button>

    <?php if (empty($manutencoes)): ?>
    <div style="text-align:center;padding:40px;color:var(--muted)">
        <div style="font-size:40px;margin-bottom:10px"></div>
        <div style="font-size:13px">Nenhuma manutenção registrada</div>
    </div>
    <?php else: ?>
    <div class="manutencao-list">
        <?php foreach ($manutencoes as $m): 
            $tipoClass = '';
            $icone = '';
            switch ($m['tipo']) {
                case 'TROCA_OLEO': $tipoClass = 'tipo-troca-oleo'; $icone = ''; break;
                case 'FILTRO': $tipoClass = 'tipo-filtro'; $icone = ''; break;
                case 'PNEU': $tipoClass = 'tipo-pneu'; $icone = ''; break;
                case 'REVISAO': $tipoClass = 'tipo-revisao'; $icone = ''; break;
                default: $tipoClass = 'tipo-outro'; $icone = '';
            }
            $tipos = ['TROCA_OLEO'=>'Troca de Óleo','FILTRO'=>'Filtro','PNEU'=>'Pneu','REVISAO'=>'Revisão','OUTRO'=>'Outro'];
        ?>
        <div class="manutencao-item">
            <div class="manutencao-icone"><?= $icone ?></div>
            <div class="manutencao-info">
                <div class="manutencao-tipo <?= $tipoClass ?>"><?= $tipos[$m['tipo']] ?></div>
                <div class="manutencao-data">
                     <?= date('d/m/Y', strtotime($m['data'])) ?> 
                    | KM: <?= number_format((int)$m['km_atual'], 0, ',', '.') ?>
                    <?php if ($m['proxima_km']): ?>
                    |  Próx: <?= number_format((int)$m['proxima_km'], 0, ',', '.') ?> km
                    <?php endif; ?>
                </div>
                <?php if ($m['descricao']): ?>
                <div class="manutencao-desc"><?= e($m['descricao']) ?></div>
                <?php endif; ?>
            </div>
            <?php if ($m['foto_url']): ?>
            <img src="<?= e($m['foto_url']) ?>" class="manutencao-foto" 
                 onclick="window.open('<?= e($m['foto_url']) ?>','_blank')" alt="Foto"/>
            <?php endif; ?>
            <?php if ($isAdmin): ?>
            <button onclick="excluirRegistro('manutencao', <?= $m['id'] ?>)" 
                    style="background:none;border:none;color:var(--red);cursor:pointer;font-size:16px;padding:4px"
                    title="Excluir"></button>
            <?php endif; ?>
        </div>
        <?php endforeach; ?>
    </div>
    <?php endif; ?>
</div>

<!--  MODAL MANUTENÇÃO  -->
<div class="modal-overlay" id="modal-manutencao">
    <div class="modal">
        <div class="modal-header">
            <span class="modal-title"> Registrar Manutenção</span>
            <button class="modal-close" onclick="fecharModal('modal-manutencao')">&times;</button>
        </div>
        <div class="modal-body">
            <form id="form-manutencao" onsubmit="salvarManutencao(event)">
                <input type="hidden" name="veiculo_id" value="<?= $veiculoId ?>"/>
                
                <div class="form-group">
                    <label class="form-label">TIPO *</label>
                    <select class="form-select" name="tipo" required>
                        <option value="">Selecione...</option>
                        <option value="TROCA_OLEO"> Troca de Óleo</option>
                        <option value="FILTRO"> Filtro</option>
                        <option value="PNEU"> Pneu</option>
                        <option value="REVISAO"> Revisão</option>
                        <option value="OUTRO"> Outro</option>
                    </select>
                </div>
                
                <div class="form-grid">
                    <div class="form-group">
                        <label class="form-label">DATA *</label>
                        <input class="form-input" type="date" name="data" value="<?= date('Y-m-d') ?>" required/>
                    </div>
                    <div class="form-group">
                        <label class="form-label">KM ATUAL</label>
                        <input class="form-input" type="number" name="km_atual" value="<?= (int)$veiculo['km_atual'] ?>" min="0"/>
                    </div>
                </div>
                
                <div class="form-grid">
                    <div class="form-group">
                        <label class="form-label">PRÓXIMA KM</label>
                        <input class="form-input" type="number" name="proxima_km" placeholder="Ex: 90000" min="0"/>
                    </div>
                    <div class="form-group">
                        <label class="form-label">PRÓXIMA DATA</label>
                        <input class="form-input" type="date" name="proxima_data"/>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="form-label">DESCRIÇÃO</label>
                    <textarea class="form-textarea" name="descricao" rows="3" placeholder="Detalhes da manutenção..."></textarea>
                </div>
                
                <div class="form-group">
                    <label class="form-label">FOTO (opcional)</label>
                    <input class="form-input" type="file" name="foto" accept="image/*" style="padding:8px"/>
                </div>
                
                <button type="submit" class="btn btn-primary" style="width:100%;margin-top:8px">
                     Salvar Manutenção
                </button>
            </form>
        </div>
    </div>
</div>

<script>
async function salvarManutencao(e) {
    e.preventDefault();
    const form = document.getElementById('form-manutencao');
    const formData = new FormData(form);
    formData.append('acao', 'manutencao');
    
    const btn = form.querySelector('button[type="submit"]');
    btn.disabled = true;
    btn.textContent = ' Salvando...';
    
    try {
        const resp = await fetch('ajax/frota_salvar.php', {
            method: 'POST',
            body: formData
        });
        const data = await resp.json();
        
        if (data.ok) {
            mostrarToast(' Manutenção registrada!', 'success');
            fecharModal('modal-manutencao');
            setTimeout(() => location.reload(), 800);
        } else {
            mostrarToast(' ' + (data.erro || 'Erro'), 'error');
        }
    } catch(e) {
        mostrarToast(' Erro de conexão', 'error');
    }
    
    btn.disabled = false;
    btn.textContent = ' Salvar Manutenção';
}

async function excluirRegistro(tipo, id) {
    if (!confirm('Excluir este registro?')) return;
    
    try {
        const formData = new FormData();
        formData.append('acao', 'excluir');
        formData.append('tipo_registro', tipo);
        formData.append('id', id);
        
        const resp = await fetch('ajax/frota_salvar.php', { method: 'POST', body: formData });
        const data = await resp.json();
        
        if (data.ok) {
            mostrarToast(' Excluído!', 'success');
            setTimeout(() => location.reload(), 500);
        } else {
            mostrarToast(' ' + data.erro, 'error');
        }
    } catch(e) {
        mostrarToast(' Erro', 'error');
    }
}
</script>

<?php require_once __DIR__ . '/includes/footer.php'; ?>