using System.ComponentModel; namespace SfeduSchedule.Abstractions; /// /// DTO для запроса расписания в Modeus. /// public class ModeusScheduleRequest( int size, DateTime timeMin, DateTime timeMax, List? roomId, List? attendeePersonId, List? courseUnitRealizationId, List? cycleRealizationId, List? specialtyCode, List? learningStartYear, List? profileName, List? curriculumId, List? typeId) { /// /// Количество элементов в ответе. /// [DefaultValue(10)] public int Size { get; set; } = size; /// /// Начальная дата и время. /// public DateTime TimeMin { get; set; } = timeMin; /// /// Конечная дата и время. /// public DateTime TimeMax { get; set; } = timeMax; /// /// Список идентификаторов аудиторий. (Guid) /// public List? RoomId { get; set; } = roomId; /// /// Список идентификаторов участников. /// public List? AttendeePersonId { get; set; } = attendeePersonId; public List? CourseUnitRealizationId { get; set; } = courseUnitRealizationId; public List? CycleRealizationId { get; set; } = cycleRealizationId; /// /// Список кодов специальностей. /// [DefaultValue(new string[] { "09.03.04" })] public List? SpecialtyCode { get; set; } = specialtyCode; /// /// Список годов начала обучения. /// [DefaultValue(new int[] { 2022, 2023, 2024, 2025 })] public List? LearningStartYear { get; set; } = learningStartYear; /// /// Список названий профилей подготовки. /// [DefaultValue(new string[] { "Методы и средства разработки программного обеспечения" })] public List? ProfileName { get; set; } = profileName; /// /// Список идентификаторов учебных планов. /// public List? CurriculumId { get; set; } = curriculumId; /// /// Список типов мероприятий. /// [DefaultValue(new string[] { "MID_CHECK", "CONS", "LAB", "LECT", "SEMI", "EVENT_OTHER", "SELF", "CUR_CHECK" })] public List? TypeId { get; set; } = typeId; } /// /// DTO для поиска аудиторий. /// public class RoomSearchRequest { /// /// Название аудитории. /// [DefaultValue("")] public string Name { get; set; } = ""; /// /// Сортировка. /// [DefaultValue("+building.name,+name")] public string Sort { get; set; } = "+building.name,+name"; /// /// Количество элементов в ответе. /// [DefaultValue(10)] public int Size { get; set; } = 10; /// /// Номер страницы. (пагинация) /// [DefaultValue(0)] public int Page { get; set; } = 0; /// /// Исключать архивные аудитории. false = да, true = нет /// [DefaultValue(false)] public bool Deleted { get; set; } = false; }