<?php
// criar-anuncio-gratuito.php

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
require_once 'conexao.php'; 
require_once 'env.php';      

// Autenticação e Autorização
if (!isset($_SESSION['id'])) {
    $_SESSION['mensagem_login'] = "Acesso restrito. Faça login para continuar.";
    header("Location: login.php");
    exit();
}
if (!in_array(($_SESSION['role'] ?? ''), ['Empresas', 'Administrador', 'Administradores'])) {
    header("Location: painel-de-gestao-empresa.php");
    exit();
}

// Lógica de Informação do Trial
try {
    $stmt_cfg = $pdo->query("SELECT chave, valor FROM ConfiguracoesGerais WHERE chave IN ('limite_anuncios_trial', 'periodo_dias_trial')");
    $configs = $stmt_cfg->fetchAll(PDO::FETCH_KEY_PAIR);
} catch (Exception $e) { 
    $configs = []; 
}

$limite_anuncios = (int)($configs['limite_anuncios_trial'] ?? 2);
$periodo_dias_limite = (int)($configs['periodo_dias_trial'] ?? 60);

$id_empresa = $_SESSION['id'];
$data_primeiro_anuncio = null;
$total_usado = 0;

if ($pdo) {
    try {
        $stmt_first = $pdo->prepare("SELECT MIN(data_criacao) FROM anuncio_gratuito WHERE id_empresa = ?");
        $stmt_first->execute([$id_empresa]);
        $data_primeiro_anuncio = $stmt_first->fetchColumn();

        $stmt_count = $pdo->prepare("SELECT COUNT(*) as total FROM anuncio_gratuito WHERE id_empresa = ? AND status != 'excluido'");
        $stmt_count->execute([$id_empresa]);
        $total_usado = (int)$stmt_count->fetchColumn();
    } catch (PDOException $e) { 
        error_log($e->getMessage()); 
    }
}

// Lógica de Bloqueio
$bloqueado_por_quantidade = ($total_usado >= $limite_anuncios);
$bloqueado_por_prazo = false;

if ($data_primeiro_anuncio) {
    $data_expiracao_trial = strtotime($data_primeiro_anuncio . " + $periodo_dias_limite days");
    if (time() > $data_expiracao_trial) {
        $bloqueado_por_prazo = true;
    }
}

$pode_criar = (!$bloqueado_por_quantidade && !$bloqueado_por_prazo);

if (empty($_SESSION['csrf_token_gratuito'])) {
    $_SESSION['csrf_token_gratuito'] = bin2hex(random_bytes(32));
}

$mensagem_geral = $_SESSION['mensagem_geral'] ?? null;
$tipo_mensagem_geral = $_SESSION['tipo_mensagem_geral'] ?? null;
$sugestao_email = $_GET['sugestao'] ?? null;
$aviso_email = (isset($_GET['aviso_email']) && $_GET['aviso_email'] == '1');

$form_data = $_SESSION['form_data'] ?? []; 
unset($_SESSION['mensagem_geral'], $_SESSION['tipo_mensagem_geral'], $_SESSION['form_data']);

function get_form_value_gratuito($field_name, $default = '') {
    global $form_data;
    return htmlspecialchars($form_data[$field_name] ?? $default, ENT_QUOTES, 'UTF-8');
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Criar Anúncio Gratuito - Selflix Vagas</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        body { font-family: Arial, sans-serif; background-color: #f4f4f4; padding: 20px; color: #333; }
        .container { max-width: 700px; margin: 20px auto; background-color: white; padding: 25px; border-radius: 8px; box-shadow: 0 0 15px rgba(0,0,0,0.1); }
        h2 { text-align: center; color: #12929e; margin-bottom: 25px; }
        label { margin-top: 15px; font-weight: bold; color: #555; display: block; }
        .form-control, .form-select { margin-top: 5px; padding: 12px; }
        .btn-primary { background-color: #12929e; border: none; padding: 12px; width: 100%; margin-top: 30px; font-weight: bold; }
        .btn-primary:hover { background-color: #0e747e; }
        .modal-custom .modal-content { background-color: #38b4a0; color: white; border-radius: 12px; border: none; text-align: center; padding: 30px; }
        .modal-custom .btn-light { color: #38b4a0; font-weight: bold; text-transform: uppercase; width: 100%; }
        .info-box { background: #e7f3ff; border-left: 4px solid #12929e; padding: 15px; margin-bottom: 20px; border-radius: 4px; }
        .block-box { background: #fff3f3; border-left: 4px solid #dc3545; padding: 25px; text-align: center; border-radius: 4px; margin-bottom: 20px; }
        #salario_input_div { margin-top: 10px; }
    </style>
</head>
<body>
    <div class="container">
        <h2>Criar Anúncio Gratuito</h2>

        <?php if (!$pode_criar): ?>
            <div class="block-box">
                <i class="fas fa-lock fa-3x text-danger mb-3"></i>
                <h4 class="text-danger">Limite Atingido</h4>
                
                <?php if ($bloqueado_por_quantidade): ?>
                    <p>Você já utilizou o seu limite de <strong><?= $limite_anuncios ?> vaga(s) gratuita(s)</strong>.</p>
                <?php elseif ($bloqueado_por_prazo): ?>
                    <p>O seu período de teste de <strong><?= $periodo_dias_limite ?> dias</strong> já expirou.</p>
                <?php endif; ?>
                
                <p class="text-muted mt-3">Para continuar a anunciar as suas oportunidades, conheça os nossos planos premium.</p>
                <a href="https://wa.me/5511939453603" class="btn btn-warning mt-3 fw-bold w-100 py-2">FALE COM O TIME SELFLIX NO WHATSAPP</a>
            </div>
            <a href="painel-de-gestao-empresa.php" class="d-block text-center mt-4 text-decoration-none" style="color: #12929e;">Voltar ao Painel</a>
            
        <?php else: ?>
            <div class="info-box">
                Você possui <strong><?= max(0, $limite_anuncios - $total_usado) ?></strong> vaga(s) de teste restante(s).
                <small class="d-block text-muted">
                    <?php if ($data_primeiro_anuncio): ?>
                        Seu prazo encerra em: <?= date('d/m/Y', strtotime($data_primeiro_anuncio." + $periodo_dias_limite days")) ?>
                    <?php else: ?>
                        O prazo de <?= $periodo_dias_limite ?> dias começará a contar após sua primeira vaga.
                    <?php endif; ?>
                </small>
            </div>

            <form id="formVaga" method="POST" action="processar_criar_anuncio_gratuito.php">
                <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token_gratuito'] ?>">
                <input type="hidden" name="confirmar_email_suspeito" id="confirmar_email_suspeito" value="0">

                <label>Título da Vaga: *</label>
                <input type="text" name="titulo_vaga" class="form-control" value="<?= get_form_value_gratuito('titulo_vaga') ?>" required>

                <label>E-mail para Currículos: *</label>
                <input type="email" id="email_vaga" name="email_para_curriculo" class="form-control" value="<?= get_form_value_gratuito('email_para_curriculo') ?>" required>

                <label>Estado: *</label>
                <select name="estado" class="form-select" required>
                    <option value="">Selecione um estado</option>
                    <?php
                    $estados = ["AC","AL","AP","AM","BA","CE","DF","ES","GO","MA","MT","MS","MG","PA","PB","PR","PE","PI","RJ","RN","RS","RO","RR","SC","SP","SE","TO"];
                    foreach ($estados as $sigla) {
                        $selected = (get_form_value_gratuito('estado') == $sigla) ? 'selected' : '';
                        echo "<option value='$sigla' $selected>$sigla</option>";
                    }
                    ?>
                </select>

                <label>Cidade: *</label>
                <input type="text" name="cidade_vaga" class="form-control" value="<?= get_form_value_gratuito('cidade_vaga') ?>" required>

                <label>Segmento: *</label>
                <select name="segmento_vaga" class="form-select" required>
                    <option value="">Selecione um segmento</option>
                    <?php 
                    $segmentos_lista = ["Administração", "Alimentos", "Arquitetura", "Artes", "Atendimento", "Auto Peças", "Automação Industrial", "Bancos", "Bebidas", "Belas-Artes", "Bem-Estar", "Bibliotecas", "Calçados", "Ciência", "Comércio Atacadista", "Comércio Exterior", "Comércio Varejista", "Comunicações", "Confecção", "Construções", "Consultoria", "Contabilidade", "Cosméticos", "Decoração", "Design", "Editoração", "Embalagens", "Energia", "Engenharia", "Ensino", "Entretenimento", "Esportes", "Farmácia", "Financeira", "Fotografia", "Games", "Gráfica", "Hardware", "Hospitalar", "Hotelaria", "Imobiliária", "Importação e Exportação", "Impressão", "Indústria Automotiva", "Indústria Farmacêutica", "Indústria Química", "Indústria Têxtil", "Instituições Religiosas", "Instituições Sem Fins Lucrativos", "Internet", "Investimentos", "Jogos", "Jornais", "Jurídico", "Logística", "Marketing", "Medicina", "Metalúrgico", "Mineração", "Motociclistico", "Móveis", "Museus", "Música", "Pesquisa e Desenvolvimento", "Náutico", "Óleo / Gás", "Ótico", "Outros", "Pesquisa / Desenvolvimento", "Petróleo", "Plástico", "Pneus", "Prestação de Serviços", "Publicidade e Propaganda", "Radio", "Recursos Humanos", "Recrutamento e Seleção", "Relações Públicas", "Restaurantes", "Saúde", "Segurança", "Seguros", "Serviços Individuais e Familiares", "Serviços Jurídicos", "Serviços para Eventos", "Serviços Públicos", "Siderurgia / Geologia", "Sistemas / Softwares", "Supermercados", "Suprimentos", "Tabaco", "Tecnologia", "Telecomunicações", "Telefonia", "Televisão", "Terceirização e Outsourcing", "Terraplenagem", "Textil / Tingimento", "Tecnologia da Informação", "Treinamento", "Turismo/ Hoteleiro/ Hospedagem", "Viagens e Turismo", "Não informado"];
                    foreach ($segmentos_lista as $seg) {
                        $sel_seg = (get_form_value_gratuito('segmento_vaga') == $seg) ? 'selected' : '';
                        echo "<option value='$seg' $sel_seg>$seg</option>";
                    }
                    ?>
                </select>

                <label>Tipo de Contrato: *</label>
                <select name="tipo_vaga" class="form-select" required>
                    <option value="">Selecione...</option>
                    <option value="CLT" <?= get_form_value_gratuito('tipo_vaga')=='CLT'?'selected':'' ?>>CLT</option>
                    <option value="PJ" <?= get_form_value_gratuito('tipo_vaga')=='PJ'?'selected':'' ?>>PJ</option>
                    <option value="Estágio" <?= get_form_value_gratuito('tipo_vaga')=='Estágio'?'selected':'' ?>>Estágio</option>
                    <option value="Não informado" <?= get_form_value_gratuito('tipo_vaga')=='Não informado'?'selected':'' ?>>Não informado</option>
                </select>

                <label>Modelo de Trabalho: *</label>
                <select name="modelo_contratacao" class="form-select" required>
                    <option value="">Selecione...</option>
                    <option value="Presencial" <?= get_form_value_gratuito('modelo_contratacao')=='Presencial'?'selected':'' ?>>Presencial</option>
                    <option value="Remoto" <?= get_form_value_gratuito('modelo_contratacao')=='Remoto'?'selected':'' ?>>Remoto</option>
                    <option value="Híbrido" <?= get_form_value_gratuito('modelo_contratacao')=='Híbrido'?'selected':'' ?>>Híbrido</option>
                    <option value="Não informado" <?= get_form_value_gratuito('modelo_contratacao')=='Não informado'?'selected':'' ?>>Não informado</option>
                </select>

                <label>Vaga para PCD (Pessoa com Deficiência): *</label>
                <select name="PCD" class="form-select" required>
                    <?php $pcd_sel = get_form_value_gratuito('PCD', 'Não'); ?>
                    <option value="Não" <?= $pcd_sel == 'Não' ? 'selected' : '' ?>>Não</option>
                    <option value="Sim" <?= $pcd_sel == 'Sim' ? 'selected' : '' ?>>Sim</option>
                </select>

                <label>Descrição da Vaga: *</label>
                <textarea name="descricao_vaga" class="form-control" rows="3" required><?= get_form_value_gratuito('descricao_vaga') ?></textarea>

                <label>Requisitos: *</label>
                <textarea name="requisitos_contratacao" class="form-control" rows="3" required><?= get_form_value_gratuito('requisitos_contratacao') ?></textarea>

                <label>Remuneração: *</label>
                <select id="salario_option" name="salario_option" class="form-select" required>
                    <option value="a_combinar" <?= get_form_value_gratuito('salario_option') == 'a_combinar' ? 'selected' : '' ?>>A Combinar</option>
                    <option value="outro" <?= get_form_value_gratuito('salario_option') == 'outro' ? 'selected' : '' ?>>Valor Fixo</option>
                </select>
                
                <div id="salario_input_div" style="display: none;">
                    <input type="text" id="salario_input" name="salario_input" class="form-control" value="<?= get_form_value_gratuito('salario_input') ?>" placeholder="R$ 0,00">
                </div>

                <label>WhatsApp de Contato (opcional):</label>
                <input type="text" name="celular" class="form-control" value="<?= get_form_value_gratuito('celular') ?>" placeholder="(00) 00000-0000">

                <button type="submit" class="btn btn-primary">CRIAR VAGA GRATUITA</button>
            </form>
            <a href="painel-de-gestao-empresa.php" class="d-block text-center mt-3 text-decoration-none" style="color: #12929e;">Voltar ao Painel</a>
        <?php endif; ?>
    </div>

    <div class="modal fade modal-custom" id="notificacaoModal" tabindex="-1" aria-hidden="true" data-bs-backdrop="static">
        <div class="modal-dialog modal-dialog-centered">
            <div class="modal-content">
                <h4 id="modalTitulo">Aviso</h4>
                <div id="modalCorpo">
                    <p id="modalTexto" class="mt-2"></p>
                </div>
                
                <div id="btnAreaNormal">
                    <button type="button" class="btn btn-light mt-3" data-bs-dismiss="modal">OK</button>
                </div>

                <div id="btnAreaSugestao" style="display:none;">
                    <button type="button" class="btn btn-light w-100 mb-2" onclick="usarSugestao()">USAR <span id="spanSugestao"></span></button>
                    <button type="button" class="btn btn-outline-light w-100" onclick="manterOriginal()">MANTER O QUE DIGITEI</button>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        const myModal = new bootstrap.Modal(document.getElementById('notificacaoModal'));
        const sugestaoEmail = "<?= $sugestao_email ?>";

        document.addEventListener('DOMContentLoaded', function() {
            <?php if ($mensagem_geral || $aviso_email): ?>
                document.getElementById('modalTexto').innerHTML = '<?= addslashes($mensagem_geral) ?>';
                
                if (sugestaoEmail && "<?= $aviso_email ?>") {
                    document.getElementById('modalTitulo').innerText = 'E-mail Suspeito';
                    document.getElementById('btnAreaNormal').style.display = 'none';
                    document.getElementById('btnAreaSugestao').style.display = 'block';
                    document.getElementById('spanSugestao').innerText = sugestaoEmail;
                } else {
                    document.getElementById('modalTitulo').innerText = '<?= ($tipo_mensagem_geral == "success") ? "Sucesso!" : "Atenção" ?>';
                }
                myModal.show();
            <?php endif; ?>

            const selSal = document.getElementById('salario_option');
            const divSal = document.getElementById('salario_input_div');
            const inpSal = document.getElementById('salario_input');
            const formVaga = document.getElementById('formVaga');

            if(selSal) {
                function checkSalario() {
                    divSal.style.display = selSal.value === 'outro' ? 'block' : 'none';
                }
                selSal.addEventListener('change', checkSalario);
                checkSalario();

                inpSal.addEventListener('input', function(e) {
                    let v = e.target.value.replace(/\D/g, '');
                    if (v === '') return;
                    e.target.value = 'R$ ' + (parseInt(v) / 100).toLocaleString('pt-BR', { minimumFractionDigits: 2 });
                });

                formVaga.addEventListener('submit', function() {
                    if (inpSal.value && selSal.value === 'outro') {
                        let valorLimpo = inpSal.value.replace(/[^\d,]/g, '').replace(',', '.');
                        inpSal.value = valorLimpo;
                    } else if (selSal.value === 'a_combinar') {
                        inpSal.value = '0.00';
                    }
                });
            }
        });

        function usarSugestao() {
            document.getElementById('email_vaga').value = sugestaoEmail;
            document.getElementById('confirmar_email_suspeito').value = '0';
            myModal.hide();
        }

        function manterOriginal() {
            document.getElementById('confirmar_email_suspeito').value = '1';
            myModal.hide();
            document.getElementById('formVaga').submit();
        }
    </script>
</body>
</html>