123 lines
3.6 KiB
C#
123 lines
3.6 KiB
C#
using Jiaowu.Api.Domain.Common;
|
|
|
|
namespace Jiaowu.Api.Domain.Academic;
|
|
|
|
public sealed class Teacher : EntityBase
|
|
{
|
|
public required string TeacherNumber { get; set; }
|
|
public required string Name { get; set; }
|
|
public Gender Gender { get; set; }
|
|
public Guid CollegeId { get; set; }
|
|
public College? College { get; set; }
|
|
public string? Title { get; set; }
|
|
public TeacherStatus Status { get; set; } = TeacherStatus.Active;
|
|
public DateOnly? HireDate { get; set; }
|
|
public bool IsExternal { get; set; }
|
|
public string? Phone { get; set; }
|
|
public string? Email { get; set; }
|
|
public string? Notes { get; set; }
|
|
public Guid? UserId { get; set; }
|
|
}
|
|
|
|
public sealed class Student : EntityBase
|
|
{
|
|
public required string StudentNumber { get; set; }
|
|
public required string Name { get; set; }
|
|
public Gender Gender { get; set; }
|
|
public Guid AdministrativeClassId { get; set; }
|
|
public AdministrativeClass? AdministrativeClass { get; set; }
|
|
public int EnrollmentYear { get; set; }
|
|
public DateOnly EnrollmentDate { get; set; }
|
|
public StudentStatus Status { get; set; } = StudentStatus.Active;
|
|
public DateOnly? DateOfBirth { get; set; }
|
|
public string? EnglishName { get; set; }
|
|
public string? IdCardNumber { get; set; }
|
|
public string? Nationality { get; set; }
|
|
public string? Ethnicity { get; set; }
|
|
public string? PoliticalStatus { get; set; }
|
|
public string? NativePlace { get; set; }
|
|
public string? HouseholdAddress { get; set; }
|
|
public string? CurrentAddress { get; set; }
|
|
public string? PostalCode { get; set; }
|
|
public string? Phone { get; set; }
|
|
public string? Email { get; set; }
|
|
public string? Qq { get; set; }
|
|
public string? WeChat { get; set; }
|
|
public string? EmergencyContactName { get; set; }
|
|
public string? EmergencyContactRelationship { get; set; }
|
|
public string? EmergencyContactPhone { get; set; }
|
|
public string? SpecialTags { get; set; }
|
|
public string? SpecialNeeds { get; set; }
|
|
public string? Biography { get; set; }
|
|
public string? Notes { get; set; }
|
|
public Guid? UserId { get; set; }
|
|
}
|
|
|
|
public sealed class Course : CatalogEntity
|
|
{
|
|
public Guid CollegeId { get; set; }
|
|
public College? College { get; set; }
|
|
public Guid? CourseCategoryId { get; set; }
|
|
public CourseCategory? CourseCategory { get; set; }
|
|
public string? EnglishName { get; set; }
|
|
public decimal Credits { get; set; }
|
|
public int TotalHours { get; set; }
|
|
public int LectureHours { get; set; }
|
|
public int PracticeHours { get; set; }
|
|
public CourseNature Nature { get; set; }
|
|
public AssessmentMethod AssessmentMethod { get; set; }
|
|
public string? Description { get; set; }
|
|
public ICollection<CoursePrerequisite> Prerequisites { get; set; } = [];
|
|
public ICollection<CoursePrerequisite> RequiredByCourses { get; set; } = [];
|
|
}
|
|
|
|
public sealed class CoursePrerequisite : EntityBase
|
|
{
|
|
public Guid CourseId { get; set; }
|
|
public Course? Course { get; set; }
|
|
public Guid PrerequisiteCourseId { get; set; }
|
|
public Course? PrerequisiteCourse { get; set; }
|
|
}
|
|
|
|
public sealed class CourseCategory : CatalogEntity
|
|
{
|
|
}
|
|
|
|
public enum Gender
|
|
{
|
|
Unknown = 0,
|
|
Male = 1,
|
|
Female = 2
|
|
}
|
|
|
|
public enum TeacherStatus
|
|
{
|
|
Active = 1,
|
|
OnLeave = 2,
|
|
Retired = 3,
|
|
Departed = 4
|
|
}
|
|
|
|
public enum StudentStatus
|
|
{
|
|
Active = 1,
|
|
Suspended = 2,
|
|
Graduated = 3,
|
|
Withdrawn = 4
|
|
}
|
|
|
|
public enum CourseNature
|
|
{
|
|
GeneralRequired = 1,
|
|
MajorRequired = 2,
|
|
MajorElective = 3,
|
|
GeneralElective = 4,
|
|
Practice = 5
|
|
}
|
|
|
|
public enum AssessmentMethod
|
|
{
|
|
Examination = 1,
|
|
Assessment = 2
|
|
}
|