重构项目结构,移除Assignment相关功能,优化Submission模块
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 12s

This commit is contained in:
SpecialX
2025-10-09 18:57:28 +08:00
parent 403b34a098
commit ac900159ba
289 changed files with 11948 additions and 20150 deletions

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Entities.DTO.Class
{
public record ClassCreateDto
{
public CreateGradeDto Grade { get; init; }
[Required(ErrorMessage = "年级名称是必填项。")]
[StringLength(20, ErrorMessage = "年级名称不能超过 20 个字符。")]
public string ClassName { get; init; }
[Required(ErrorMessage = "年级级别是必填项。")]
public byte Index { get; init; }
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace Entities.DTO
{
public class ClassDto
{
public Guid Id { get; set; }
public Guid GradeId { get; set; }
public GradeDto Grade { get; set; }
[Required(ErrorMessage = "班级名称是必填项。")]
[StringLength(30, ErrorMessage = "班级名称不能超过 30 个字符。")]
public string ClassName { get; set; }
public byte Index { get; set; }
public Guid? HeadTeacherId { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
using Entities.Contracts;
using System;
using System.Collections.Generic;
namespace Entities.DTO
{
public class ClassResponseDto
{
public Guid Id { get; set; }
public Guid GradeId { get; set; }
public string GradeName { get; set; }
public string ClassName { get; set; }
public Guid? HeadTeacherId { get; set; }
public string HeadTeacherName { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
public bool IsDeleted { get; set; }
// Navigation properties for response
public ICollection<ClassUserDto> ClassStudents { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
namespace Entities.DTO
{
public class ClassUserDto
{
public Guid StudentId { get; set; }
public string? Email { get; set; }
public string? DisplayName { get; set; }
public string? PhoneNumber { get; set; }
public string? Address { get; set; }
public bool TwoFactorEnabled { get; set; }
public bool EmailConfirmed { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Entities.DTO
{
public record ClassValidDto(string SchoolName, byte Grade, byte Class);
}

View File

@@ -0,0 +1,19 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace Entities.DTO
{
public class CreateClassDto
{
[Required(ErrorMessage = "年级ID是必填项。")]
public Guid GradeId { get; set; }
[Required(ErrorMessage = "班级名称是必填项。")]
[StringLength(30, ErrorMessage = "班级名称不能超过 30 个字符。")]
public string ClassName { get; set; }
public byte Index { get; set; }
public Guid? HeadTeacherId { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using Entities.Contracts;
using System;
using System.ComponentModel.DataAnnotations;
namespace Entities.DTO
{
public class RegisterUserToClassDto
{
public Guid UserId { get; set; }
public Guid ClassId { get; set; }
public UserRoles Role { get; set; } = UserRoles.Student;
public Guid? SubjectArea { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace Entities.DTO
{
public class UpdateClassDto
{
[Required(ErrorMessage = "班级ID是必填项。")]
public Guid ClassId { get; set; }
[Required(ErrorMessage = "年级ID是必填项。")]
public Guid GradeId { get; set; }
[Required(ErrorMessage = "班级名称是必填项。")]
[StringLength(30, ErrorMessage = "班级名称不能超过 30 个字符。")]
public string ClassName { get; set; }
public Guid? HeadTeacherId { get; set; }
}
}