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