Files
TechHelper/Entities/Contracts/Class.cs
SpecialX ac900159ba
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 12s
重构项目结构,移除Assignment相关功能,优化Submission模块
2025-10-09 18:57:28 +08:00

61 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
namespace Entities.Contracts
{
[Table("classes")]
public class Class
{
[Key]
[Column("class_id")]
public Guid Id { get; set; }
[Column("grade_id")]
public Guid GradeId { get; set; }
[ForeignKey(nameof(GradeId))]
public virtual Grade Grade { get; set; }
[Column("index")]
public byte Index { get; set; }
[Column("class_name")]
[MaxLength(30)]
public string ClassName { get; set; }
[Column("head_teacher_id")]
public Guid? HeadTeacherId { get; set; }
[ForeignKey(nameof(HeadTeacherId))]
public virtual User HeadTeacher { get; set; }
[Column("created_at")]
public DateTime CreatedAt { get; set; }
[Column("updated_at")]
public DateTime UpdatedAt { get; set; }
[Column("deleted")]
public bool IsDeleted { get; set; }
// Navigation Properties
[NotMapped]
public ICollection<ClassUser> Techers => ClassUsers.Where(cu => cu.User.Role == UserRoles.Teacher).ToList();
[NotMapped]
public ICollection<ClassUser> Students => ClassUsers.Where(cu => cu.User.Role == UserRoles.Student).ToList();
[InverseProperty(nameof(ClassUser.Class))]
public virtual ICollection<ClassUser> ClassUsers { get; set; }
public Class()
{
Id = Guid.NewGuid();
ClassUsers = new HashSet<ClassUser>();
CreatedAt = DateTime.Now;
UpdatedAt = DateTime.Now;
}
}
}