69 lines
1.6 KiB
PHP
69 lines
1.6 KiB
PHP
<?php
|
|
require_once __DIR__ . '/_bootstrap.php';
|
|
|
|
// ==============================
|
|
// PARAMETRI
|
|
// ==============================
|
|
$month = $_GET['month'] ?? date('Y-m');
|
|
$monthDate = DateTime::createFromFormat('Y-m', $month) ?: new DateTime();
|
|
|
|
$startOfMonth = $monthDate->format('Y-m-01');
|
|
$endOfMonth = (clone $monthDate)->modify('+1 month')->format('Y-m-d');
|
|
|
|
// ==============================
|
|
// DATI UTENTE
|
|
// ==============================
|
|
$userId = $user->id;
|
|
$schoolId = $user->school_id ?? null;
|
|
|
|
if (!$schoolId) {
|
|
http_response_code(400);
|
|
echo json_encode(['error' => 'No school selected']);
|
|
exit;
|
|
}
|
|
|
|
// ==============================
|
|
// QUERY (IDENTICA ALLA WEB)
|
|
// ==============================
|
|
$stmt = $db->prepare("
|
|
SELECT
|
|
sb.id AS booking_id,
|
|
sb.status,
|
|
cs.session_date,
|
|
cs.start_time,
|
|
cs.end_time,
|
|
cs.room_name,
|
|
c.name AS class_name,
|
|
ct.level,
|
|
o.available_entries,
|
|
o.available_recoveries
|
|
FROM session_bookings sb
|
|
JOIN class_sessions cs ON sb.session_id = cs.id
|
|
JOIN class_types ct ON cs.class_type_id = ct.id
|
|
JOIN classes c ON ct.class_id = c.id
|
|
JOIN orders o ON sb.order_id = o.id
|
|
WHERE sb.user_id = ?
|
|
AND cs.school_id = ?
|
|
AND cs.session_date >= ?
|
|
AND cs.session_date < ?
|
|
ORDER BY cs.session_date ASC, cs.start_time ASC
|
|
");
|
|
|
|
$stmt->execute([
|
|
$userId,
|
|
$schoolId,
|
|
$startOfMonth,
|
|
$endOfMonth
|
|
]);
|
|
|
|
$lessons = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// ==============================
|
|
// OUTPUT
|
|
// ==============================
|
|
echo json_encode([
|
|
'month' => $month,
|
|
'count' => count($lessons),
|
|
'lessons' => $lessons
|
|
]);
|