<?php
include 'verifica_login.php';
requer_admin();
include 'conexao.php';
$clienteProjetoUtils = __DIR__ . '/config/cliente_projeto_utils.php';
if (!is_file($clienteProjetoUtils)) {
    die('Arquivo obrigatorio nao encontrado: config/cliente_projeto_utils.php');
}
require_once $clienteProjetoUtils;

if (!function_exists('garantir_estrutura_clientes_projetos')) {
    die('Funcao obrigatoria nao carregada: garantir_estrutura_clientes_projetos');
}

$conn = conectar_banco();
garantir_estrutura_clientes_projetos($conn);

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

    if ($acao === 'salvar_projeto') {
        $id_projeto = (int)($_POST['id_projeto'] ?? 0);
        $id_cliente_fk = (int)($_POST['id_cliente_fk'] ?? 0);
        $nome_projeto = trim($_POST['nome_projeto'] ?? '');
        $data_inicio = trim($_POST['data_inicio'] ?? '');
        $data_termino = trim($_POST['data_termino'] ?? '');
        $ativo = (($_POST['ativo'] ?? 'S') === 'N') ? 'N' : 'S';
        $descricao = trim($_POST['descricao'] ?? '');
        $observacoes = trim($_POST['observacoes'] ?? '');

        if ($id_cliente_fk <= 0 || $nome_projeto === '') {
            header('Location: projetos.php?msg=erro&detalhe=' . urlencode('Informe o cliente e o nome do projeto.'));
            exit;
        }

        if ($id_projeto > 0) {
            $stmt = $conn->prepare("UPDATE projetos SET id_cliente_fk = ?, nome_projeto = ?, data_inicio = ?, data_termino = ?, ativo = ?, descricao = ?, observacoes = ? WHERE id_projeto = ?");
            if ($stmt) {
                $stmt->bind_param('issssssi', $id_cliente_fk, $nome_projeto, $data_inicio, $data_termino, $ativo, $descricao, $observacoes, $id_projeto);
                $stmt->execute();
                $stmt->close();
            }
        } else {
            $stmt = $conn->prepare("INSERT INTO projetos (id_cliente_fk, nome_projeto, data_inicio, data_termino, ativo, descricao, observacoes) VALUES (?, ?, ?, ?, ?, ?, ?)");
            if ($stmt) {
                $stmt->bind_param('issssss', $id_cliente_fk, $nome_projeto, $data_inicio, $data_termino, $ativo, $descricao, $observacoes);
                $stmt->execute();
                $stmt->close();
            }
        }

        header('Location: projetos.php?msg=sucesso');
        exit;
    }
}

$id_edit = (int)($_GET['id'] ?? 0);
$projeto_edit = null;
if ($id_edit > 0) {
    $stmt = $conn->prepare("SELECT * FROM projetos WHERE id_projeto = ?");
    if ($stmt) {
        $stmt->bind_param('i', $id_edit);
        $stmt->execute();
        $projeto_edit = $stmt->get_result()->fetch_assoc();
        $stmt->close();
    }
}

$clientes = listar_clientes_bms($conn, true);

$projetos = [];
$res = $conn->query("SELECT p.*, c.nome_cliente FROM projetos p INNER JOIN clientes_bms c ON c.id_cliente = p.id_cliente_fk ORDER BY p.data_criacao DESC");
if ($res) {
    while ($row = $res->fetch_assoc()) {
        $projetos[] = $row;
    }
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cadastro de Projetos</title>
<style>
body { font-family: Arial, sans-serif; background: #f4f4f4; margin: 0; padding: 20px; }
.container { max-width: 1200px; margin: 0 auto; background: #fff; border-radius: 8px; padding: 20px; box-shadow: 0 0 10px rgba(0,0,0,.08); }
h1,h2 { color: #004d99; }
.grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 16px; }
label { display: block; font-weight: bold; margin: 8px 0 4px; }
input[type=text], input[type=date], textarea, select { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; }
textarea { min-height: 70px; }
.btn { background: #004d99; color: #fff; border: none; padding: 8px 12px; border-radius: 4px; text-decoration: none; display: inline-block; cursor: pointer; }
.btn:hover { background: #003366; }
.btn-secondary { background: #6c757d; }
table { width: 100%; border-collapse: collapse; margin-top: 8px; }
th, td { border-bottom: 1px solid #eee; padding: 8px; text-align: left; font-size: .92em; }
th { background: #004d99; color: white; }
.msg { padding: 10px; border-radius: 4px; margin-bottom: 10px; }
.ok { background: #d4edda; color: #155724; }
.err { background: #f8d7da; color: #721c24; }
</style>
</head>
<body>
<div class="container">
    <h1>🧩 Cadastro de Projetos</h1>
    <div style="margin-bottom:10px;"><a class="btn btn-secondary" href="principal.php">← Voltar</a></div>

    <?php if (isset($_GET['msg']) && $_GET['msg'] === 'sucesso'): ?>
        <div class="msg ok">Projeto salvo com sucesso.</div>
    <?php elseif (isset($_GET['msg']) && $_GET['msg'] === 'erro'): ?>
        <div class="msg err"><?= htmlspecialchars($_GET['detalhe'] ?? 'Erro na operação.') ?></div>
    <?php endif; ?>

    <div class="grid">
        <div>
            <h2><?= $projeto_edit ? 'Editar Projeto' : 'Novo Projeto' ?></h2>
            <form method="post" action="projetos.php">
                <input type="hidden" name="acao" value="salvar_projeto">
                <input type="hidden" name="id_projeto" value="<?= (int)($projeto_edit['id_projeto'] ?? 0) ?>">

                <label>Cliente *</label>
                <select name="id_cliente_fk" required>
                    <option value="">Selecione...</option>
                    <?php foreach ($clientes as $cliente): ?>
                        <option value="<?= (int)$cliente['id_cliente'] ?>" <?= ((int)($projeto_edit['id_cliente_fk'] ?? 0) === (int)$cliente['id_cliente']) ? 'selected' : '' ?>>
                            <?= htmlspecialchars($cliente['nome_cliente']) ?>
                        </option>
                    <?php endforeach; ?>
                </select>

                <label>Nome do Projeto *</label>
                <input type="text" name="nome_projeto" maxlength="200" required value="<?= htmlspecialchars($projeto_edit['nome_projeto'] ?? '') ?>">

                <label>Data de Início</label>
                <input type="date" name="data_inicio" value="<?= htmlspecialchars($projeto_edit['data_inicio'] ?? '') ?>">

                <label>Data de Término</label>
                <input type="date" name="data_termino" value="<?= htmlspecialchars($projeto_edit['data_termino'] ?? '') ?>">

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

                <label>Descrição do Projeto</label>
                <textarea name="descricao"><?= htmlspecialchars($projeto_edit['descricao'] ?? '') ?></textarea>

                <label>Observações</label>
                <textarea name="observacoes"><?= htmlspecialchars($projeto_edit['observacoes'] ?? '') ?></textarea>

                <div style="margin-top:12px; display:flex; gap:8px;">
                    <button class="btn" type="submit"><?= $projeto_edit ? 'Salvar Projeto' : 'Cadastrar Projeto' ?></button>
                    <a class="btn btn-secondary" href="projetos.php">Limpar</a>
                </div>
            </form>
        </div>

        <div>
            <h2>Projetos Cadastrados</h2>
            <table>
                <thead>
                    <tr><th>ID</th><th>Projeto</th><th>Cliente</th><th>Período</th><th>Status</th><th>Ação</th></tr>
                </thead>
                <tbody>
                <?php if (count($projetos) > 0): foreach ($projetos as $p): ?>
                    <tr>
                        <td><?= (int)$p['id_projeto'] ?></td>
                        <td><?= htmlspecialchars($p['nome_projeto']) ?></td>
                        <td><?= htmlspecialchars($p['nome_cliente']) ?></td>
                        <td>
                            <?= $p['data_inicio'] ? date('d/m/Y', strtotime($p['data_inicio'])) : '-' ?>
                            até
                            <?= $p['data_termino'] ? date('d/m/Y', strtotime($p['data_termino'])) : '-' ?>
                        </td>
                        <td><?= ($p['ativo'] === 'S') ? 'Ativo' : 'Inativo' ?></td>
                        <td><a class="btn" href="projetos.php?id=<?= (int)$p['id_projeto'] ?>">Editar</a></td>
                    </tr>
                <?php endforeach; else: ?>
                    <tr><td colspan="6">Nenhum projeto cadastrado.</td></tr>
                <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>
</body>
</html>
