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