<?php
require '../../conexao/conexao.php';
require '../../sessao.php';
require '../../configuacoes.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $url           = $_POST['url'] ?? null;
    $ids           = $_POST['id'] ?? [];
    $datasIniciais = $_POST['DataInicial'] ?? [];
    $datasFinais   = $_POST['DataFinal'] ?? [];
    $semanas       = $_POST['semana'] ?? [];
    $mes       = $_POST['mes'] ?? [];
    //die(var_dump($semanas));
    // prepara INSERT
    $stmtInsert = $connectionmysql->prepare(
        "INSERT INTO dias_semana (data_inicial, data_final, semana_mes) 
         VALUES (?, ?, ?)"
    );

    // prepara UPDATE
    $stmtUpdate = $connectionmysql->prepare(
        "UPDATE dias_semana 
         SET data_inicial = ?, data_final = ?, semana_mes = ?
         WHERE id = ?"
    );
    // prepara SELECT para verificar duplicados
    $stmtCheck = $connectionmysql->prepare(
        "SELECT id 
     FROM dias_semana 
     WHERE MONTH(data_inicial) = MONTH(?) 
       AND YEAR(data_inicial) = YEAR(?) 
       AND semana_mes = ?"
    );

    foreach ($semanas as $i => $semanaMes) {
        $id         = isset($ids[$i]) ? (int)$ids[$i] : 0;
        $dataInicial = !empty($datasIniciais[$i]) ? $datasIniciais[$i] : null;
        $dataFinal   = !empty($datasFinais[$i]) ? $datasFinais[$i] : null;
        //die(var_dump($_POST));

        // se as datas estiverem vazias, pula este registro
        if (empty($dataInicial) || empty($dataFinal)) {
            continue;
        }

        if ($id > 0) {
            // UPDATE normal
            $stmtUpdate->bind_param('ssii', $dataInicial, $dataFinal, $semanaMes, $id);
            if (!$stmtUpdate->execute()) {
                die('Erro UPDATE: ' . htmlspecialchars($stmtUpdate->error));
            }
        } else {
            // Verifica se já existe antes de inserir
            $stmtCheck->bind_param('ssi', $dataInicial, $dataInicial, $semanaMes);
            $stmtCheck->execute();
            $stmtCheck->store_result();

            if ($stmtCheck->num_rows == 0) {
                // não existe, pode inserir
                $stmtInsert->bind_param('ssi', $dataInicial, $dataFinal, $semanaMes);
                if (!$stmtInsert->execute()) {
                    die('Erro INSERT: ' . htmlspecialchars($stmtInsert->error));
                }
            } else {
                header("Location: index.php?status=erro&message=Metas ja cadastradas Anteriomente&" . $url);
                exit();
            }
        }
    }

    $stmtInsert->close();
    $stmtUpdate->close();

    header("Location: index.php?status=sucesso&" . $url);
    exit();
} else {
    header("Location: index.php?status=erro");
    exit();
}
