using UtopiaCanteenSystem.Models;
namespace UtopiaCanteenSystem.Services;
///
/// Reads and writes meal schedules from production (MySQL/POD). No SQLite; sync job only syncs scan data.
///
public interface IMealScheduleService
{
/// Active schedules for a site (used by resolver for scan validation). Returns empty if production not configured or error.
IReadOnlyList GetActiveSchedulesForSite(string siteId);
/// All schedules for admin list. Returns empty if production not configured or error.
Task> GetAllSchedulesAsync(CancellationToken cancellationToken = default);
/// Insert new schedule in production. Returns new id (bigint).
Task CreateAsync(MealSchedule schedule, CancellationToken cancellationToken = default);
/// Update existing schedule in production.
Task UpdateAsync(MealSchedule schedule, CancellationToken cancellationToken = default);
/// Delete schedule in production by id (bigint).
Task DeleteAsync(long id, CancellationToken cancellationToken = default);
}