<?php
namespace App\Controllers;

use App\Models\Schedule;
use App\Middleware\RoleMiddleware;

class ScheduleController
{
    private $scheduleModel;
    
    public function __construct()
    {
        // View es pública, pero edición restringida
        $this->scheduleModel = new Schedule();
    }
    
    public function index()
    {
        return $this->scheduleModel->getAll();
    }
    
    public function update()
    {
        // Solo admin/coordinador pueden editar
        RoleMiddleware::coordinador();
        
        if (isPost()) {
            if (!verifyCsrfToken(post('csrf_token'))) {
                flash('error', 'Token de seguridad inválido');
                return;
            }
            
            try {
                $days = post('schedule'); // Array de horarios
                
                if (!is_array($days)) {
                    throw new \Exception("Formato de datos inválido");
                }
                
                foreach ($days as $dayOfWeek => $times) {
                    $time1 = !empty($times['time1']) ? $times['time1'] : null;
                    $time2 = !empty($times['time2']) ? $times['time2'] : null;
                    
                    $this->scheduleModel->updateDay($dayOfWeek, $time1, $time2);
                }
                
                flash('success', 'Horarios actualizados correctamente');
            } catch (\Throwable $e) {
                error_log("Error actualizando horarios: " . $e->getMessage());
                flash('error', 'Error al guardar: ' . $e->getMessage());
            }
            
            redirect(siteUrl('horarios.php'));
        }
    }
}
