using IWS5.Core.DTO.IAdmin.Schedules;
using IWS5.Core.Models;

namespace IWS5.Core.Services.IAdmin;

public interface ISchedulesService
{
    Task<CodeResponse<List<ScheduleListItemDTO>>> GetSchedulesAsync();
    Task<CodeResponse<ScheduleDetailsDTO>> GetScheduleDetailsAsync(int scheduleId);
    Task<CodeResponse<ScheduleDetailsDTO>> CreateScheduleAsync(ScheduleCreateRequestDTO request);
    Task<CodeResponse<ScheduleDetailsDTO>> UpdateScheduleAsync(int scheduleId, ScheduleUpdateRequestDTO request);
    Task<bool> DeleteScheduleAsync(int scheduleId);
    Task<bool> UpdateStatusAsync(int scheduleId, bool enabled, int statusId);
    Task<bool> RunScheduleAsync(int scheduleId);
    Task<List<ScheduleTypeDTO>> ListScheduleTypesAsync();
    Task<ScheduleTypeDTO?> GetScheduleTypeByIdAsync(int scheduleTypeId);
}
