<?php
// editar_empresa.php (VERSÃO FINAL COM LÓGICA DE PLANO E BOTÕES RESPONSIVOS)

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

require_once 'conexao.php'; // Fornece $pdo global
require_once 'env.php';     // Garante que $_ENV possa ser usado

// Verifica se o usuário está autenticado
if (!isset($_SESSION['id']) || !isset($_SESSION['role'])) {
    $_SESSION['mensagem_login'] = "Acesso restrito. Faça login para continuar.";
    header("Location: login.php");
    exit();
}

// Permitir apenas Empresas (editando a própria) e Administradores (editando qualquer uma via GET id)
$role_sessao = $_SESSION['role'] ?? '';
$id_usuario_sessao = (int)($_SESSION['id'] ?? 0);
$id_empresa_para_editar = null;

if ($role_sessao === 'Empresas') {
    $id_empresa_para_editar = $id_usuario_sessao;
    if (isset($_GET['id']) && (int)$_GET['id'] !== $id_usuario_sessao) {
        $_SESSION['mensagem_painel'] = "Você só pode editar sua própria empresa.";
        $_SESSION['tipo_mensagem_painel'] = "warning";
        header("Location: painel-de-gestao-empresa.php");
        exit();
    }
} elseif ($role_sessao === 'Administrador' || $role_sessao === 'Administradores') {
    if (isset($_GET['id']) && filter_var($_GET['id'], FILTER_VALIDATE_INT)) {
        $id_empresa_para_editar = (int)$_GET['id'];
    } else {
        $_SESSION['mensagem_listar_empresas'] = "ID da empresa inválido.";
        header("Location: listar_empresas.php");
        exit();
    }
} else {
    header("Location: login.php");
    exit();
}

// Proteção CSRF
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

// Recuperação de mensagens e erros da sessão
$mensagem_pagina = $_SESSION['mensagem_edicao_empresa'] ?? null;
$tipo_mensagem_pagina = $_SESSION['tipo_mensagem_edicao_empresa'] ?? null;
$form_errors_repop = $_SESSION['form_errors_repop'] ?? [];

unset($_SESSION['mensagem_edicao_empresa'], $_SESSION['tipo_mensagem_edicao_empresa'], $_SESSION['form_errors_repop']);

$empresa_data = null;

try {
    // BUSCA OS DADOS INCLUINDO O TIPO_PLANO
    $sql = "SELECT * FROM Empresas WHERE id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$id_empresa_para_editar]);
    $empresa_data = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$empresa_data) {
        $_SESSION['mensagem_painel'] = "Empresa não encontrada.";
        $_SESSION['tipo_mensagem_painel'] = "danger";
        header("Location: painel-de-gestao-empresa.php");
        exit();
    }
} catch (PDOException $e) {
    error_log("Erro ao buscar empresa: " . $e->getMessage());
    $_SESSION['mensagem_painel'] = "Erro interno ao carregar os dados. Tente novamente mais tarde.";
    $_SESSION['tipo_mensagem_painel'] = "danger";
    header("Location: painel-de-gestao-empresa.php");
    exit();
}

// Lógica de verificação do plano
$tipo_plano_atual = strtolower($empresa_data['tipo_plano'] ?? 'gratuito');
$is_plano_pago = ($tipo_plano_atual === 'pago');

// Funções auxiliares (refatoradas para não usar variáveis globais)
function get_edit_empresa_value($field_name, $empresa_data, $db_value = '') {
    return htmlspecialchars((string)($empresa_data[$field_name] ?? $db_value));
}

function display_edit_empresa_error($field_name, $form_errors) {
    if (!empty($form_errors[$field_name])) {
        echo '<div class="invalid-feedback d-block" style="color: red; font-size: 0.875em;">' . htmlspecialchars($form_errors[$field_name]) . '</div>';
    }
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Editar Cadastro da Empresa - Selflix Vagas</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css" rel="stylesheet">
    <style>
        body { background-color: #f5f5f5; font-family: Arial, sans-serif; }
        .container { padding: 15px; }
        .form-container { max-width: 700px; margin: 20px auto; padding: 25px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); background-color: #fff; }
        .form-title { color: #12929e; font-size: 24px; font-weight: bold; text-align: center; margin-bottom: 25px; }
        .form-label { font-weight: 500; color: #333; }
        .form-control, .form-select { border-radius: 5px; border: 1px solid #ddd; padding: 10px 12px; margin-bottom: 5px; transition: border-color 0.3s; }
        .form-control:focus, .form-select:focus { border-color: #12929e; box-shadow: 0 0 0 0.25rem rgba(18, 146, 158, 0.25); }
        .btn-primary { background-color: #12929e; border-color: #12929e; padding: 10px 16px; font-weight: 500; }
        .btn-primary:hover { background-color: #0e7a84; border-color: #0e7a84; }
        .btn-secondary { background-color: #6c757d; border-color: #6c757d; padding: 10px 16px; }
        .logo-preview { max-width: 100%; height: auto; max-height: 150px; margin-top: 10px; border: 1px solid #eee; border-radius: 4px; padding: 5px; display: block; margin-left: auto; margin-right: auto; }
        .invalid-feedback.d-block { display: block !important; }
        .form-control:disabled { background-color: #f8f9fa; cursor: not-allowed; border-color: #eee; }
    </style>
</head>
<body>
<?php include 'menu.php'; ?>
<div class="container">
    <div class="form-container">
        <h2 class="form-title">Editar Cadastro da Empresa</h2>

        <?php if ($mensagem_pagina): ?>
            <div class="alert alert-<?php echo htmlspecialchars($tipo_mensagem_pagina); ?> alert-dismissible fade show" role="alert">
                <?php echo htmlspecialchars($mensagem_pagina); ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Fechar"></button>
            </div>
        <?php endif; ?>

        <?php if ($empresa_data): ?>
        <form action="processa_editar_empresa.php" method="POST" enctype="multipart/form-data">
            <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token']); ?>">
            <input type="hidden" name="id" value="<?= htmlspecialchars($empresa_data['id']) ?>">
            <input type="hidden" name="logotipo_atual" value="<?= htmlspecialchars($empresa_data['logotipo'] ?? '') ?>">

            <div class="mb-3">
                <label for="nome_empresa" class="form-label">Nome da Empresa: *</label>
                <input type="text" class="form-control" name="nome_empresa" id="nome_empresa" value="<?= get_edit_empresa_value('nome_empresa', $empresa_data) ?>" required>
                <?php display_edit_empresa_error('nome_empresa', $form_errors_repop); ?>
            </div>

            <div class="mb-3">
                <label for="contato" class="form-label">Nome do Contato Principal: *</label>
                <input type="text" class="form-control" name="contato" id="contato" value="<?= get_edit_empresa_value('contato', $empresa_data) ?>" required>
                <?php display_edit_empresa_error('contato', $form_errors_repop); ?>
            </div>

            <div class="mb-3">
                <label for="email" class="form-label">E-mail: *</label>
                <input type="email" class="form-control" name="email" id="email" value="<?= get_edit_empresa_value('email', $empresa_data) ?>" required>
                <?php display_edit_empresa_error('email', $form_errors_repop); ?>
            </div>

            <div class="row">
                <div class="col-md-6 mb-3">
                    <label for="telefone_comercial" class="form-label">Telefone Comercial: *</label>
                    <input type="text" class="form-control phone-mask" name="telefone_comercial" id="telefone_comercial" value="<?= get_edit_empresa_value('telefone_comercial', $empresa_data) ?>" required>
                    <?php display_edit_empresa_error('telefone_comercial', $form_errors_repop); ?>
                </div>
                <div class="col-md-6 mb-3">
                    <label for="celular" class="form-label">Celular: *</label>
                    <input type="text" class="form-control phone-mask" name="celular" id="celular" value="<?= get_edit_empresa_value('celular', $empresa_data) ?>" required>
                    <?php display_edit_empresa_error('celular', $form_errors_repop); ?>
                </div>
            </div>

            <div class="mb-3">
                <label for="cnpj" class="form-label">CNPJ: *</label>
                <input type="text" class="form-control cnpj-mask" name="cnpj" id="cnpj" value="<?= get_edit_empresa_value('cnpj', $empresa_data) ?>" required>
                <?php display_edit_empresa_error('cnpj', $form_errors_repop); ?>
            </div>

            <div class="mb-3">
                <input type="file" class="form-control" name="logotipo" id="logotipo" 
                       accept=".png,.jpg,.jpeg,.gif,.bmp" 
                       <?= !$is_plano_pago ? 'disabled' : '' ?>>
                <label for="logotipo" class="form-label">
                  <?php if (!$is_plano_pago): ?>
                        <span class="badge bg-warning text-dark ms-2"><i class="bi bi-lock-fill"></i> Exclusivo Plano Pago</span>
                    <?php endif; ?>
                </label>
                <?php if (!$is_plano_pago): ?>
                    <div class="form-text text-muted mt-1">
                        Sua conta está no plano <strong>Gratuito</strong>.<br>O upload de logotipo está desabilitado.
                    </div>
                <?php endif; ?>

                <?php if (!empty($empresa_data['logotipo'])): ?>
                    <div class="mt-2 text-center">
                        <p class="mb-1">Logotipo atual:</p>
                        <?php
                            $logoPathVisualizacao = $empresa_data['logotipo'];
                            if (strpos($logoPathVisualizacao, 'http') !== 0 && strpos($logoPathVisualizacao, '/') !== 0) {
                                $logoPathVisualizacao = '/' . $logoPathVisualizacao;
                            }
                        ?>
                        <img src="<?= htmlspecialchars($logoPathVisualizacao) ?>" alt="Logotipo" class="logo-preview">
                    </div>
                <?php endif; ?>
                <?php display_edit_empresa_error('logotipo', $form_errors_repop); ?>
            </div>

            <?php if ($role_sessao === 'Administrador' || $role_sessao === 'Administradores'): ?>
                <div class="mb-3">
                    <label for="tipo_anuncio" class="form-label">Tipo de Anúncio Padrão (Admin):</label>
                    <select name="tipo_anuncio" id="tipo_anuncio" class="form-select" required>
                        <?php $tipo_anuncio_sel = get_edit_empresa_value('tipo_anuncio', $empresa_data, $empresa_data['tipo_anuncio'] ?? 'gratuito'); ?>
                        <option value="pago" <?= ($tipo_anuncio_sel == 'pago') ? 'selected' : '' ?>>Pago</option>
                        <option value="gratuito" <?= ($tipo_anuncio_sel == 'gratuito') ? 'selected' : '' ?>>Gratuito</option>
                    </select>
                    <?php display_edit_empresa_error('tipo_anuncio', $form_errors_repop); ?>
                </div>
            <?php endif; ?>

            <div class="mt-4 d-flex flex-column flex-sm-row justify-content-sm-between align-items-stretch align-items-sm-center">
                <div class="d-flex flex-column flex-sm-row mb-2 mb-sm-0">
                    <a href="painel-de-gestao-empresa.php" class="btn btn-secondary me-sm-2 mb-2 mb-sm-0">Voltar</a>
                    <button type="submit" class="btn btn-primary mb-2 mb-sm-0">Salvar Alterações</button>
                </div>
                <?php if ($role_sessao === 'Empresas'): ?>
                    <button type="button" class="btn btn-danger" data-bs-toggle="modal" data-bs-target="#confirmDeleteEmpresaModal">
                        <i class="bi bi-trash"></i> Excluir Perfil
                    </button>
                <?php endif; ?>
            </div>
        </form>
        <?php endif; ?>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>
<script>
    $(document).ready(function() {
        $('.phone-mask').mask('(00) 00000-0000');
        $('.cnpj-mask').mask('00.000.000/0000-00');
    });
</script>

<div class="modal fade" id="confirmDeleteEmpresaModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header bg-danger text-white">
                <h5 class="modal-title">EXCLUSÃO PERMANENTE</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <p>Você está prestes a excluir **permanentemente** o cadastro de sua empresa.</p>
                <p class="fw-bold">Tem certeza que deseja continuar?</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                <a href="perfil/excluir_perfil_empresa.php" class="btn btn-danger">Sim, Excluir Definitivamente</a>
            </div>
        </div>
    </div>
</div>
</body>
</html>