<?php
include "core/autoload.php";
include "core/app/model/EventData.php";
include "core/app/model/PatientData.php";
include "core/app/model/ServiceData.php";

$events = array();

try {
    $sql = "SELECT id, name, phone, service_id, date, start, end, description, attended, attendance_date 
            FROM event";
    $query = Executor::doit($sql);
    
    if ($query && isset($query[0])) {
        $data = Model::many($query[0], new EventData());
        
        foreach($data as $event) {
            if (!empty($event->date) && !empty($event->start) && !empty($event->end)) {
                // Extract only the time part from start and end
                $start_time = preg_replace('/^\d{4}-\d{2}-\d{2}\s+/', '', $event->start);
                $end_time = preg_replace('/^\d{4}-\d{2}-\d{2}\s+/', '', $event->end);
                
                // Combine date with cleaned time
                $start_date = new DateTime($event->date . ' ' . $start_time);
                $end_date = new DateTime($event->date . ' ' . $end_time);
                
                $events[] = array(
                    'id' => $event->id,
                    'title' => ($event->service_id ?? 'No Service') . ' - ' . 
                             ($event->name ?? 'No Patient') . ' ' . 
                             ($event->phone ?? ''),
                    'start' => $start_date->format('Y-m-d\TH:i:s'),
                    'end' => $end_date->format('Y-m-d\TH:i:s'),
                    'description' => $event->description ?? '',
                    'attended' => (int)$event->attended,
                    'attendance_date' => $event->attendance_date
                );
            }
        }
    }
} catch (Exception $e) {
    error_log("Error: " . $e->getMessage());
    $events = array('error' => $e->getMessage());
}

header('Content-Type: application/json');
echo json_encode($events);