<?php
// editar-anuncio-gratuito.php - Sincronizado com Criar Anúncio
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
require_once 'conexao.php';
require_once 'env.php';

// --- Funções Auxiliares ---

function get_form_value_gratuito($field_name) {
    global $form_data;
    
    // 1. Se houve erro de validação no processamento anterior, prioriza o que o usuário digitou
    if (isset($_SESSION['form_data_gratuito_edit'])) {
        return htmlspecialchars((string)($_SESSION['form_data_gratuito_edit'][$field_name] ?? ''), ENT_QUOTES, 'UTF-8');
    } 
    
    // 2. Caso contrário, carrega do banco de dados ($form_data)
    if (isset($form_data)) {
        if ($field_name === 'salario_option') {
            return (isset($form_data['salario_a_combinar']) && $form_data['salario_a_combinar'] == 1) ? 'a_combinar' : 'outro';
        } 
        if ($field_name === 'salario_input') {
            if (isset($form_data['salario_a_combinar']) && $form_data['salario_a_combinar'] == 1) return '';
            $db_val = $form_data['salario'] ?? '0.00';
            return is_numeric($db_val) ? 'R$ ' . number_format((float)$db_val, 2, ',', '.') : $db_val;
        }
        // Compatibilidade: se no banco for 'celular_contato' mas o form pedir 'celular'
        if ($field_name === 'celular' && isset($form_data['celular_contato'])) {
            return htmlspecialchars((string)$form_data['celular_contato'], ENT_QUOTES, 'UTF-8');
        }
        return htmlspecialchars((string)($form_data[$field_name] ?? ''), ENT_QUOTES, 'UTF-8');
    }
    return '';
}

// --- Validação do ID e Permissão ---
$id_anuncio = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
$id_empresa_sessao = $_SESSION['id'] ?? null;
$role_sessao = $_SESSION['role'] ?? '';

if (!$id_anuncio || !$id_empresa_sessao) {
    $_SESSION['mensagem_painel'] = "Acesso inválido ou sessão expirada.";
    header("Location: listar-anuncios-gratuito.php");
    exit();
}

try {
    $stmt = $pdo->prepare("SELECT * FROM anuncio_gratuito WHERE id = ?");
    $stmt->execute([$id_anuncio]);
    $form_data = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$form_data) {
        $_SESSION['mensagem_painel'] = "Anúncio não encontrado.";
        header("Location: listar-anuncios-gratuito.php");
        exit();
    }
    
    // Bloqueia se não for dono e não for admin
    $admins = ['Administrador', 'Administradores'];
    if ($form_data['id_empresa'] != $id_empresa_sessao && !in_array($role_sessao, $admins)) {
        $_SESSION['mensagem_painel'] = "Sem permissão para editar este anúncio.";
        header("Location: listar-anuncios-gratuito.php");
        exit();
    }
} catch (PDOException $e) {
    error_log($e->getMessage());
    exit("Erro interno no banco de dados.");
}

// Token CSRF
if (empty($_SESSION['csrf_token_gratuito_edit'])) {
    $_SESSION['csrf_token_gratuito_edit'] = bin2hex(random_bytes(32));
}

// Mensagens de Sessão
$mensagem_geral = $_SESSION['mensagem_geral'] ?? null;
$tipo_mensagem_geral = $_SESSION['tipo_mensagem_geral'] ?? 'info';
unset($_SESSION['mensagem_geral'], $_SESSION['tipo_mensagem_geral']);
// Nota: Não damos unset em form_data_gratuito_edit aqui para a função get_form_value_gratuito funcionar, 
// o unset deve ser feito no sucesso do processar_editar.
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Editar 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/5.15.4/css/all.min.css">
    <style>
        body { font-family: 'Segoe UI', Arial, sans-serif; background-color: #f8f9fa; padding: 20px; color: #333; }
        .container-edit { max-width: 750px; margin: 20px auto; background-color: white; padding: 35px; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
        h2 { text-align: center; color: #12929e; margin-bottom: 30px; font-weight: 700; }
        label { margin-top: 15px; font-weight: 600; color: #444; display: block; }
        .form-control, .form-select { margin-top: 5px; padding: 12px; border: 1px solid #ddd; border-radius: 8px; }
        .form-control:focus, .form-select:focus { border-color: #12929e; box-shadow: 0 0 0 0.2rem rgba(18, 146, 158, 0.25); }
        .btn-update { background-color: #12929e; border: none; padding: 14px; width: 100%; margin-top: 35px; font-weight: bold; color: white; border-radius: 8px; transition: 0.3s; }
        .btn-update:hover { background-color: #0e747e; transform: translateY(-2px); color: white; }
        .admin-box { background-color: #e3f2fd; border: 1px solid #12929e; padding: 15px; border-radius: 8px; margin-bottom: 25px; display: flex; justify-content: space-between; align-items: center; }
        .required-mark { color: #dc3545; }
    </style>
</head>
<body>

<div class="container-edit">
    <a href="listar-anuncios-gratuito.php" class="btn btn-link mb-3 p-0 text-decoration-none" style="color: #666;">
        <i class="fas fa-arrow-left"></i> Voltar para listagem
    </a>

    <h2>Editar Anúncio Gratuito</h2>

    <?php if ($mensagem_geral): ?>
        <div class="alert alert-<?= $tipo_mensagem_geral ?> alert-dismissible fade show" role="alert">
            <?= $mensagem_geral ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
        </div>
    <?php endif; ?>

    <?php if (in_array($role_sessao, ['Administrador', 'Administradores'])): ?>
        <div class="admin-box">
            <span><strong><i class="fas fa-user-shield"></i> Modo Administrador:</strong> Promover vaga?</span>
            <form action="admin_alternar_tipo.php" method="POST" style="margin:0;">
                <input type="hidden" name="id_anuncio" value="<?= $id_anuncio ?>">
                <button type="submit" class="btn btn-sm btn-success" onclick="return confirm('Deseja realmente mover este anúncio para a lista de Pagos?')">Tornar Pago</button>
            </form>
        </div>
    <?php endif; ?>

    <form id="formVaga" method="POST" action="processar_editar_anuncio_gratuito.php">
        <input type="hidden" name="id" value="<?= $id_anuncio ?>">
        <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token_gratuito_edit'] ?>">

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

        <label>E-mail para Recebimento de Currículos: <span class="required-mark">*</span></label>
        <input type="email" name="email_para_curriculo" class="form-control" value="<?= get_form_value_gratuito('email_para_curriculo') ?>" required placeholder="vagas@empresa.com.br">

        <div class="row">
            <div class="col-md-4">
                <label>Estado: <span class="required-mark">*</span></label>
                <select name="estado" class="form-select" required>
                    <option value="">Selecione...</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"];
                    $estado_atual = get_form_value_gratuito('estado');
                    foreach ($estados as $sigla) {
                        $sel = ($estado_atual == $sigla) ? 'selected' : '';
                        echo "<option value='$sigla' $sel>$sigla</option>";
                    }
                    ?>
                </select>
            </div>
            <div class="col-md-8">
                <label>Cidade: <span class="required-mark">*</span></label>
                <input type="text" name="cidade_vaga" class="form-control" value="<?= get_form_value_gratuito('cidade_vaga') ?>" required placeholder="Ex: São Paulo">
            </div>
        </div>

        <label>Segmento de Atuação: <span class="required-mark">*</span></label>
        <select name="segmento_vaga" class="form-select" required>
            <option value="">Selecione o segmento...</option>
            <?php 
            $segmentos = ["Administração", "Agronegócio", "Alimentos", "Atendimento", "Comércio Varejista", "Construções", "Educação", "Engenharia", "Financeira", "Hospitalar", "Hotelaria", "Indústria", "Logística", "Marketing", "Restaurantes", "Saúde", "Segurança", "Tecnologia", "TI e Segurança da Informação", "Transporte", "Não informado"];
            $seg_atual = get_form_value_gratuito('segmento_vaga');
            foreach ($segmentos as $seg) {
                $sel = ($seg_atual == $seg) ? 'selected' : '';
                echo "<option value='$seg' $sel>$seg</option>";
            }
            ?>
        </select>

        <div class="row">
            <div class="col-md-6">
                <label>Tipo de Contrato: <span class="required-mark">*</span></label>
                <select name="tipo_vaga" class="form-select" required>
                    <?php
                    $tipos = ["CLT", "PJ", "Estágio", "Outro"];
                    $tipo_atual = get_form_value_gratuito('tipo_vaga');
                    foreach ($tipos as $t) {
                        $sel = ($tipo_atual == $t) ? 'selected' : '';
                        echo "<option value='$t' $sel>$t</option>";
                    }
                    ?>
                </select>
            </div>
            <div class="col-md-6">
                <label>Modelo de Trabalho: <span class="required-mark">*</span></label>
                <select name="modelo_contratacao" class="form-select" required>
                    <?php
                    $modelos = ["Presencial", "Remoto", "Híbrido"];
                    $mod_atual = get_form_value_gratuito('modelo_contratacao');
                    foreach ($modelos as $m) {
                        $sel = ($mod_atual == $m) ? 'selected' : '';
                        echo "<option value='$m' $sel>$m</option>";
                    }
                    ?>
                </select>
            </div>
        </div>

        <label>Descrição Detalhada da Vaga: <span class="required-mark">*</span></label>
        <textarea name="descricao_vaga" class="form-control" rows="5" required placeholder="Descreva as atividades e o dia a dia da função..."><?= get_form_value_gratuito('descricao_vaga') ?></textarea>

        <label>Requisitos e Qualificações: <span class="required-mark">*</span></label>
        <textarea name="requisitos_contratacao" class="form-control" rows="4" required placeholder="Ex: Experiência de 2 anos, CNH B, Conhecimento em Excel..."><?= get_form_value_gratuito('requisitos_contratacao') ?></textarea>

        <label>Remuneração / Salário: <span class="required-mark">*</span></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 / Não informado</option>
            <option value="outro" <?= get_form_value_gratuito('salario_option') == 'outro' ? 'selected' : '' ?>>Informar Valor Fixo</option>
        </select>
        
        <div id="salario_input_div" style="display: none; margin-top: 10px;">
            <div class="input-group">
                <span class="input-group-text">R$</span>
                <input type="text" id="salario_input" name="salario_input" class="form-control" value="<?= get_form_value_gratuito('salario_input') ?>" placeholder="0,00">
            </div>
        </div>

        <label>WhatsApp para Contato Direto (opcional):</label>
        <div class="input-group">
            <span class="input-group-text"><i class="fab fa-whatsapp"></i></span>
            <input type="text" id="celular" name="celular" class="form-control" value="<?= get_form_value_gratuito('celular') ?>" placeholder="(00) 00000-0000">
        </div>

        <button type="submit" class="btn btn-update">
            <i class="fas fa-save"></i> SALVAR ALTERAÇÕES
        </button>
    </form>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
    const selSal = document.getElementById('salario_option');
    const divSal = document.getElementById('salario_input_div');
    const inpSal = document.getElementById('salario_input');
    const formVaga = document.getElementById('formVaga');

    // Toggle do campo de salário
    function checkSalario() {
        if (selSal.value === 'outro') {
            divSal.style.display = 'block';
            inpSal.setAttribute('required', 'required');
        } else {
            divSal.style.display = 'none';
            inpSal.removeAttribute('required');
        }
    }
    selSal.addEventListener('change', checkSalario);
    checkSalario();

    // Máscara de Moeda (BR)
    inpSal.addEventListener('input', function(e) {
        let v = e.target.value.replace(/\D/g, '');
        if (v === '') { e.target.value = ''; return; }
        v = (parseInt(v) / 100).toFixed(2).replace('.', ',');
        v = v.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
        e.target.value = v;
    });

    // Antes de enviar, não limpamos o valor aqui para o PHP receber o formato amigável 
    // e o processador cuidar da conversão para DECIMAL.
});
</script>
</body>
</html>