<?php
// salvar_infraestrutura.php — Salva CTO, OLT GPS e sinais ópticos
require_once __DIR__ . '/auth.php';
require_once __DIR__ . '/functions.php';
requireLogin();

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('Location: clientes.php'); exit;
}

$id       = (int)($_POST['id']       ?? 0);
$ctoNome  = trim($_POST['cto_nome']  ?? '');
$oltGps   = trim($_POST['olt_gps']   ?? '');
$ctoPorta = isset($_POST['cto_porta']) && $_POST['cto_porta'] !== '' ? (int)$_POST['cto_porta'] : null;

// Sinais: converte vírgula→ponto, valida decimal, NULL se vazio
function parseSinal(?string $v): ?float {
    if ($v === null || trim($v) === '') return null;
    $v = str_replace(',', '.', trim($v));
    return is_numeric($v) ? (float)$v : null;
}

$sinalBox = parseSinal($_POST['sinal_box'] ?? null);
$sinalCli = parseSinal($_POST['sinal_cli'] ?? null);

if (!$id || !$ctoNome) {
    header("Location: clientes.php?erro=Dados+inválidos"); exit;
}

try {
    $stmt = pdo()->prepare(
        "UPDATE clientes SET
            cto_nome  = ?,
            cto_porta = ?,
            sinal_box = ?,
            sinal_cli = ?,
            olt_gps   = ?
         WHERE id = ?"
    );
    $stmt->execute([$ctoNome, $ctoPorta, $sinalBox, $sinalCli, $oltGps, $id]);

    header("Location: cliente_detalhe.php?id=$id&msg=Infraestrutura+configurada+com+sucesso!");
} catch (PDOException $e) {
    header("Location: infraestrutura.php?id=$id&erro=" . urlencode($e->getMessage()));
}
exit;
