using Demo.Domain.Models;

namespace Demo.Domain.UseCase
{
    public interface IPresenceUseCase
    {
        List<Presence> GetPresenceByGroup(int groupID);
        List<Presence> GetPresenceByGroupByTime(int groupID, DateOnly date);
        List<Presence> GetPresenceByUser(Guid userGuid);
        List<Presence> GetFalsePresenceByUser(Guid userGuid);
        List<Presence> GetFalsePresenceByGroup(int groupID);
        PresenceGet GetPresencebyAll(int GroupID, DateOnly? start = null, DateOnly? end = null, Guid userGuid = default);
        bool DeletePresence();
        bool DeletePresenceByGroup(int groupID);
        bool DeletePresenceByUser(Guid userGuid);
        bool DeletePresenceByRange(DateOnly start, DateOnly end);
        bool IsAttedance(int firstLesson, int lastLesson, DateOnly date, Guid UserGuid);
        bool GeneratePresence(int firstLesson, int lastLesson, int groupID, DateOnly date);
        bool GeneratePresenceWeek(int firstLesson, int lastLesson, int groupID, DateOnly date);
    }
}