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