using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Mirea.Api.Dto.Responses.Schedule;
///
/// Represents information about a specific schedule entry for a lecture hall.
///
public class LectureHallScheduleInfo
{
///
/// Gets or sets the day of the week for the schedule entry.
///
[Required]
public DayOfWeek DayOfWeek { get; set; }
///
/// Gets or sets the pair number for the schedule entry.
///
[Required]
public int PairNumber { get; set; }
///
/// Gets or sets a value indicating whether the pair is on an even week.
///
[Required]
public bool IsEven { get; set; }
///
/// Gets or sets the name of the discipline for the schedule entry.
///
[Required]
public required string Discipline { get; set; }
///
/// Gets or sets the ID of the discipline for the schedule entry.
///
[Required]
public required int DisciplineId { get; set; }
///
/// Gets or sets exclude or include weeks for a specific discipline.
///
///
/// If is , then the values in show the weeks when there will be no discipline.
///
/// If is , then the values in indicate the weeks during which a particular discipline will be studied.
///
/// If is , then there are no specific
///
///
public bool? IsExcludedWeeks { get; set; }
///
/// The week numbers required for the correct display of the schedule.
///
/// Whether there will be during the week or not depends on the property.
///
///
/// To get the current week's number, use other queries.
///
public IEnumerable? Weeks { get; set; }
///
/// Gets or sets the type of occupation for the schedule entry.
///
[Required]
public required IEnumerable TypeOfOccupations { get; set; }
///
/// Gets or sets the names of the group for the schedule entry.
///
[Required]
public required string Group { get; set; }
///
/// Gets or sets the IDs of the group for the schedule entry.
///
[Required]
public required int GroupId { get; set; }
///
/// Gets or sets the names of the campuses for the schedule entry.
///
public required IEnumerable Campus { get; set; }
///
/// Gets or sets the IDs of the campuses for the schedule entry.
///
public required IEnumerable CampusId { get; set; }
///
/// Gets or sets the names of the professors for the schedule entry.
///
public required IEnumerable Professors { get; set; }
///
/// Gets or sets the IDs of the professors for the schedule entry.
///
public required IEnumerable ProfessorsId { get; set; }
///
/// Gets or sets the links to online meetings for the schedule entry.
///
public required IEnumerable LinkToMeet { get; set; }
}
///
/// Represents a response containing schedule information for a lecture hall.
///
public class LectureHallScheduleResponse
{
///
/// Gets or sets the names of the lecture halls.
///
public required string LectureHalls { get; set; }
///
/// Gets or sets the IDs of the lecture halls.
///
public required int LectureHallsId { get; set; }
///
/// Gets or sets the schedules for the lecture hall.
///
[Required]
public required IEnumerable Schedules { get; set; }
}