<?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]);
?>