using Jiaowu.Api.Domain.Common; using Jiaowu.Api.Domain.Identity; namespace Jiaowu.Api.Domain.Academic; public sealed class ClassroomReservation : EntityBase { public Guid ApplicantUserId { get; set; } public ApplicationUser? ApplicantUser { get; set; } public required string ApplicantName { get; set; } public Guid ApplicantCollegeId { get; set; } public College? ApplicantCollege { get; set; } public Guid AcademicTermId { get; set; } public AcademicTerm? AcademicTerm { get; set; } public Guid ClassroomId { get; set; } public Classroom? Classroom { get; set; } public DateOnly ReservationDate { get; set; } public int StartPeriod { get; set; } public int PeriodCount { get; set; } public int AttendeeCount { get; set; } public required string Purpose { get; set; } public required string ContactPhone { get; set; } public string? Notes { get; set; } public ClassroomReservationStatus Status { get; set; } = ClassroomReservationStatus.Submitted; public Guid? ReviewedByUserId { get; set; } public ApplicationUser? ReviewedByUser { get; set; } public DateTime? ReviewedAt { get; set; } public string? ReviewComment { get; set; } public DateTime? CancelledAt { get; set; } } public enum ClassroomReservationStatus { Submitted = 1, Approved = 2, Rejected = 3, Cancelled = 4 }