<?php
    session_start
();
    
header('Content-Type: application/json');

    require_once 
'../DB/db_credentials.php';
    require_once 
'../DB/db_connection.php';

    
$personId = $_SESSION['userID'] ?? 0;

    if (
$personId <= 0) {
        echo 
json_encode(['status' => 'error', 'message' => 'User not logged in']);
        exit;
    }

    
$todayStr = date('Y-m-d');

    
// fetch all enabled answers
    
$sqlAnswers = "SELECT pk_answer, label FROM citeLeParis_answer WHERE isEnabled = 1 ORDER BY label ASC";
    
$resAnswers = mysqli_query($dbc, $sqlAnswers);

    if (!
$resAnswers) {
        echo 
json_encode(['status' => 'error', 'message' => 'Failed to fetch answers']);
        exit;
    }

    
$availableAnswers = [];

    while (
$answer = mysqli_fetch_assoc($resAnswers)) {
        
$availableAnswers[] = $answer;
    }

    
// fetch active plans (plans where end date >= today)
    
$sqlPlans = "SELECT pk_plan, fromDate, weeks FROM citeLeParis_plan";
    
$resPlans = mysqli_query($dbc, $sqlPlans);
    
    if (!
$resPlans) {
        echo 
json_encode(['status' => 'error', 'message' => 'Failed to fetch plans']);
        exit;
    }

    
$registrations = [];

    while (
$plan = mysqli_fetch_assoc($resPlans)) {
        
$startTimestamp = strtotime($plan['fromDate']);
        
$endTimestamp = strtotime("+{$plan['weeks']} weeks -1 day", $startTimestamp);
        
$endDateStr = date('Y-m-d', $endTimestamp);

        if (
$todayStr <= $endDateStr) {
            
$sqlRegs = "
                SELECT r.pk_register, r.fk_person as fk_user, r.fk_shift, r.fk_answer, ? as pk_plan, ? as fromDate
                FROM citeLeParis_register r
                INNER JOIN citeLeParis_shift s ON r.fk_shift = s.pk_shift
                WHERE r.fk_person = ?
                AND s.date BETWEEN ? AND ?
            "
;

            
$stmt = mysqli_prepare($dbc, $sqlRegs);
            if (!
$stmt) {
                echo 
json_encode(['status' => 'error', 'message' => 'Failed to prepare statement']);
                exit;
            }

            
mysqli_stmt_bind_param($stmt, 'isiss', $plan['pk_plan'], $plan['fromDate'], $personId, $plan['fromDate'], $endDateStr);
            
mysqli_stmt_execute($stmt);
            
$result = mysqli_stmt_get_result($stmt);

            while (
$row = mysqli_fetch_assoc($result)) {
                
$row['available_answers'] = $availableAnswers;
                
$registrations[] = $row;
            }

            
mysqli_stmt_close($stmt);
        }
    }

    echo 
json_encode(['status' => 'success', 'registrations' => $registrations]);
?>