<?php
include 'verifica_login.php';
include 'conexao.php';
include 'config/contato_status_modelo_utils.php';
$conn = conectar_banco();

garantir_modelo_contato_status_padrao($conn);

$action = $_GET['action'] ?? '';
$idModeloSelecionado = (int)($_GET['id_modelo'] ?? 0);

$modelos = listar_modelos_contato_status($conn, false);
if ($idModeloSelecionado <= 0 && !empty($modelos)) {
    $idModeloSelecionado = (int)$modelos[0]['id_modelo'];
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $formType = $_POST['form_type'] ?? '';

    if ($formType === 'modelo') {
        $idModelo = (int)($_POST['id_modelo'] ?? 0);
        $nomeModelo = trim($_POST['nome_modelo'] ?? '');
        $ativo = ($_POST['ativo'] ?? 'S') === 'N' ? 'N' : 'S';

        if ($nomeModelo !== '') {
            if ($idModelo > 0) {
                $stmt = $conn->prepare("UPDATE contato_status_modelos SET nome_modelo = ?, ativo = ? WHERE id_modelo = ?");
                $stmt->bind_param('ssi', $nomeModelo, $ativo, $idModelo);
                $stmt->execute();
                $stmt->close();
                $idModeloSelecionado = $idModelo;
            } else {
                $stmt = $conn->prepare("INSERT INTO contato_status_modelos (nome_modelo, ativo) VALUES (?, ?)");
                $stmt->bind_param('ss', $nomeModelo, $ativo);
                $stmt->execute();
                $idModeloSelecionado = (int)$conn->insert_id;
                $stmt->close();
            }
        }
    }

    if ($formType === 'status') {
        $idItem = (int)($_POST['id_item'] ?? 0);
        $idModeloFk = (int)($_POST['id_modelo_fk'] ?? 0);
        $nomeStatus = trim($_POST['contato_status'] ?? '');
        $ativo = ($_POST['ativo'] ?? 'S') === 'N' ? 'N' : 'S';
        $ordem = (int)($_POST['ordem'] ?? 0);

        if ($idModeloFk > 0 && $nomeStatus !== '') {
            if ($idItem > 0) {
                $stmt = $conn->prepare("UPDATE contato_status_modelos_itens SET contato_status = ?, ativo = ?, ordem = ? WHERE id_item = ?");
                $stmt->bind_param('ssii', $nomeStatus, $ativo, $ordem, $idItem);
                $stmt->execute();
                $stmt->close();
            } else {
                $stmt = $conn->prepare("INSERT IGNORE INTO contato_status_modelos_itens (id_modelo_fk, contato_status, ativo, ordem) VALUES (?, ?, ?, ?)");
                $stmt->bind_param('issi', $idModeloFk, $nomeStatus, $ativo, $ordem);
                $stmt->execute();
                $stmt->close();
            }
            $idModeloSelecionado = $idModeloFk;
        }
    }

    header('Location: gerenciar_contato_status.php?msg=sucesso&id_modelo=' . $idModeloSelecionado);
    exit;
}

$modeloEdit = null;
$statusEdit = null;

if ($action === 'edit_modelo' && isset($_GET['id'])) {
    $id = (int)$_GET['id'];
    $stmt = $conn->prepare("SELECT * FROM contato_status_modelos WHERE id_modelo = ?");
    $stmt->bind_param('i', $id);
    $stmt->execute();
    $modeloEdit = $stmt->get_result()->fetch_assoc();
    $stmt->close();
    if ($modeloEdit) {
        $idModeloSelecionado = (int)$modeloEdit['id_modelo'];
    }
}

if ($action === 'edit_status' && isset($_GET['id'])) {
    $id = (int)$_GET['id'];
    $stmt = $conn->prepare("SELECT * FROM contato_status_modelos_itens WHERE id_item = ?");
    $stmt->bind_param('i', $id);
    $stmt->execute();
    $statusEdit = $stmt->get_result()->fetch_assoc();
    $stmt->close();
    if ($statusEdit) {
        $idModeloSelecionado = (int)$statusEdit['id_modelo_fk'];
    }
}

$modelos = listar_modelos_contato_status($conn, false);
$statusModelo = listar_status_contato_por_modelo($conn, $idModeloSelecionado, false);
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Modelos de Status do Contato</title>
<style>
    body{ font-family: Arial, sans-serif; background:#f4f4f4; padding:20px; }
    .container{ max-width:1100px; margin:0 auto; background:white; padding:20px; border-radius:6px; box-shadow:0 2px 6px rgba(0,0,0,0.08); }
    table{ width:100%; border-collapse:collapse; margin-top:15px; }
    th,td{ padding:10px; border-bottom:1px solid #eee; }
    th{ background:#004d99; color:white; text-align:left; }
    .actions a{ margin-right:6px; text-decoration:none; padding:6px 10px; border-radius:4px; color:white; }
    .btn-edit{ background:#f57c00; }
    .btn-back{ background:#0288d1; color:white; padding:8px 12px; border-radius:4px; text-decoration:none; display:inline-block; }
    label{ display:block; font-weight:bold; margin-bottom:4px; margin-top:10px; }
    input[type=text], input[type=number], select{ width:100%; padding:8px; border:1px solid #ccc; border-radius:4px; box-sizing:border-box; }
    .msg{ padding:8px; background:#e8f5e9; color:#1b5e20; border-radius:4px; margin-bottom:10px; }
    .badge-ativo{ background:#c8e6c9; color:#1b5e20; padding:4px 8px; border-radius:12px; font-size:0.85em; }
    .badge-inativo{ background:#ffcdd2; color:#b71c1c; padding:4px 8px; border-radius:12px; font-size:0.85em; }
    .grid{ display:grid; grid-template-columns: 1fr 1fr; gap:20px; margin-top:15px; }
    .box{ border:1px solid #e1e1e1; border-radius:8px; padding:16px; background:#fafafa; }
    .box h2{ margin-top:0; color:#004d99; }
    .muted{ color:#666; font-size:0.92em; }
</style>
</head>
<body>
<div class="container">
    <h1>Gerenciamento de Modelos de Status do Contato</h1>
    <div style="margin-bottom:12px;">
        <a href="principal.php" class="btn-back">← Voltar para Principal</a>
    </div>

    <?php if (isset($_GET['msg']) && $_GET['msg'] === 'sucesso'): ?>
        <div class="msg">Operação concluída com sucesso.</div>
    <?php endif; ?>

    <div class="grid">
        <div class="box">
            <h2>Modelos</h2>
            <p class="muted">Crie modelos diferentes para status de contato e selecione um na criação da pesquisa.</p>

            <form method="POST" action="gerenciar_contato_status.php?id_modelo=<?= (int)$idModeloSelecionado ?>">
                <input type="hidden" name="form_type" value="modelo">
                <input type="hidden" name="id_modelo" value="<?= (int)($modeloEdit['id_modelo'] ?? 0) ?>">

                <label>Nome do Modelo</label>
                <input type="text" name="nome_modelo" value="<?= htmlspecialchars($modeloEdit['nome_modelo'] ?? '') ?>" required>

                <label>Ativo</label>
                <select name="ativo">
                    <option value="S" <?= (isset($modeloEdit['ativo']) && $modeloEdit['ativo'] === 'S') ? 'selected' : '' ?>>Sim</option>
                    <option value="N" <?= (isset($modeloEdit['ativo']) && $modeloEdit['ativo'] === 'N') ? 'selected' : '' ?>>Não</option>
                </select>

                <div style="margin-top:15px;">
                    <button type="submit" style="background:#004d99;color:white;padding:8px 16px;border:none;border-radius:4px;cursor:pointer;">Salvar Modelo</button>
                    <a href="gerenciar_contato_status.php?id_modelo=<?= (int)$idModeloSelecionado ?>" style="margin-left:8px;">Limpar</a>
                </div>
            </form>

            <table>
                <thead>
                    <tr>
                        <th>Modelo</th>
                        <th>Status</th>
                        <th>Ações</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if (!empty($modelos)): ?>
                        <?php foreach($modelos as $m): ?>
                            <tr>
                                <td>
                                    <a href="gerenciar_contato_status.php?id_modelo=<?= (int)$m['id_modelo'] ?>" style="text-decoration:none; color:#004d99; font-weight:bold;">
                                        <?= htmlspecialchars($m['nome_modelo']) ?>
                                    </a>
                                </td>
                                <td>
                                    <?php if ($m['ativo'] === 'S'): ?>
                                        <span class="badge-ativo">Ativo</span>
                                    <?php else: ?>
                                        <span class="badge-inativo">Inativo</span>
                                    <?php endif; ?>
                                </td>
                                <td class="actions">
                                    <a href="gerenciar_contato_status.php?action=edit_modelo&id=<?= (int)$m['id_modelo'] ?>&id_modelo=<?= (int)$m['id_modelo'] ?>" class="btn-edit">Editar</a>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    <?php else: ?>
                        <tr><td colspan="3" style="text-align:center; color:#999;">Nenhum modelo cadastrado.</td></tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>

        <div class="box">
            <h2>Status do Modelo</h2>
            <p class="muted">Modelo selecionado: <strong>
                <?php
                $nomeModeloSelecionado = '';
                foreach ($modelos as $m) {
                    if ((int)$m['id_modelo'] === (int)$idModeloSelecionado) {
                        $nomeModeloSelecionado = $m['nome_modelo'];
                        break;
                    }
                }
                echo htmlspecialchars($nomeModeloSelecionado ?: 'Selecione um modelo');
                ?>
            </strong></p>

            <form method="POST" action="gerenciar_contato_status.php?id_modelo=<?= (int)$idModeloSelecionado ?>">
                <input type="hidden" name="form_type" value="status">
                <input type="hidden" name="id_item" value="<?= (int)($statusEdit['id_item'] ?? 0) ?>">
                <input type="hidden" name="id_modelo_fk" value="<?= (int)$idModeloSelecionado ?>">

                <label>Nome do Status</label>
                <input type="text" name="contato_status" value="<?= htmlspecialchars($statusEdit['contato_status'] ?? '') ?>" required <?= $idModeloSelecionado <= 0 ? 'disabled' : '' ?>>

                <label>Ordem</label>
                <input type="number" name="ordem" value="<?= (int)($statusEdit['ordem'] ?? 0) ?>" min="0" <?= $idModeloSelecionado <= 0 ? 'disabled' : '' ?>>

                <label>Ativo</label>
                <select name="ativo" <?= $idModeloSelecionado <= 0 ? 'disabled' : '' ?>>
                    <option value="S" <?= (isset($statusEdit['ativo']) && $statusEdit['ativo'] === 'S') ? 'selected' : '' ?>>Sim</option>
                    <option value="N" <?= (isset($statusEdit['ativo']) && $statusEdit['ativo'] === 'N') ? 'selected' : '' ?>>Não</option>
                </select>

                <div style="margin-top:15px;">
                    <button type="submit" style="background:#004d99;color:white;padding:8px 16px;border:none;border-radius:4px;cursor:pointer;" <?= $idModeloSelecionado <= 0 ? 'disabled' : '' ?>>Salvar Status</button>
                    <a href="gerenciar_contato_status.php?id_modelo=<?= (int)$idModeloSelecionado ?>" style="margin-left:8px;">Limpar</a>
                </div>
            </form>

            <table>
                <thead>
                    <tr>
                        <th>Status</th>
                        <th>Ordem</th>
                        <th>Status</th>
                        <th>Ações</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if (!empty($statusModelo)): ?>
                        <?php foreach($statusModelo as $item): ?>
                            <tr>
                                <td><?= htmlspecialchars($item['contato_status']) ?></td>
                                <td><?= (int)$item['ordem'] ?></td>
                                <td>
                                    <?php if ($item['ativo'] === 'S'): ?>
                                        <span class="badge-ativo">Ativo</span>
                                    <?php else: ?>
                                        <span class="badge-inativo">Inativo</span>
                                    <?php endif; ?>
                                </td>
                                <td class="actions">
                                    <a href="gerenciar_contato_status.php?action=edit_status&id=<?= (int)$item['id_item'] ?>&id_modelo=<?= (int)$idModeloSelecionado ?>" class="btn-edit">Editar</a>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    <?php else: ?>
                        <tr><td colspan="4" style="text-align:center; color:#999;">Nenhum status para este modelo.</td></tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>
</body>
</html>
<?php $conn->close(); ?>
