dto.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import {AssignmentStatus, Role} from './enums';
  2. export interface AssignmentDTO {
  3. assignmentName: string; // 作业名称不能缺失
  4. description: string; // 作业描述不能缺失
  5. type:string, //作业类型不能缺失
  6. descriptionFile?: string; // 作业要求,Word/Pdf文件 (可选)
  7. attachments?: string[]; // 作业附件 (可选)
  8. startTime: string; // 起始时间不能缺失 (ISO 8601 日期时间字符串)
  9. endTime: string; // 结束时间不能缺失 (ISO 8601 日期时间字符串)
  10. examMode?: boolean;
  11. examDuration?: number;
  12. }
  13. export interface AISpeakingAssignmentDTO {
  14. assignmentName: string; // 作业名称不能缺失
  15. description?: string; // 作业描述不能缺失
  16. descriptionFile?:string;
  17. type:string,//作业类型不能缺失
  18. startTime: string; // 起始时间不能缺失 (ISO 8601 日期时间字符串)
  19. endTime: string; // 结束时间不能缺失 (ISO 8601 日期时间字符串)
  20. minDuration:number;//最小时长
  21. minInteraction:number;//最小交流次数
  22. surveyLinks:string[],
  23. surveyDuration:number
  24. }
  25. export interface AssignmentQueryDTO {
  26. assignmentId?: number;
  27. teacherId?: number;
  28. courseId?: number;
  29. assignmentName?: string;
  30. status?: AssignmentStatus;
  31. type:string;
  32. }
  33. export interface EnrollDTO {
  34. studentId:number;
  35. courseId:number;
  36. enrollCode:string;
  37. }
  38. export interface CourseDTO {
  39. courseName: string; // 课程名不能缺失
  40. teacherIds: number[]; // 老师Id不能缺失
  41. courseImages?: string[]; // 可选
  42. targetGrade?: string; // 可选
  43. startTime: string; // 起始时间不能缺失 (ISO 8601 日期时间字符串)
  44. endTime: string; // 截止时间不能缺失 (ISO 8601 日期时间字符串)
  45. description: string; // 课程描述不能缺失
  46. }
  47. export interface CourseUpdateDTO {
  48. courseName: string; // 课程名不能缺失
  49. teacherIds: number[]; // 老师Id不能缺失
  50. courseImages?: string[]; // 可选
  51. targetGrade?: string; // 可选
  52. startTime: string; // 起始时间不能缺失 (ISO 8601 日期时间字符串)
  53. endTime: string; // 截止时间不能缺失 (ISO 8601 日期时间字符串)
  54. description: string; // 课程描述不能缺失
  55. // enrollCode: string; // 选课码不能缺失
  56. }
  57. export interface UserRegisterDTO {
  58. name: string; // 真实姓名不能缺失
  59. password: string; // 密码(加密存储)不能缺失
  60. officialEmail: string; // 南大官邮,xxx@smail.nju.edu.cn 不能缺失
  61. phone: string;
  62. verifyCode: string; // 验证码不能缺失
  63. officialNumber: string; // 南大学号、工号不能缺失
  64. role: Role; // 用户角色:学生、教师、管理员不能缺失
  65. }
  66. export interface UserUpdateDTO {
  67. userAvatar?: string;
  68. lastLoginTime?: string;
  69. englishName?: string;
  70. gender?: string;
  71. birthday?: string;
  72. phone?: string;
  73. contentEmail?: string;
  74. }
  75. export interface PasswordChangeDTO {
  76. password: string;
  77. officialEmail: string;
  78. verifyCode: string;
  79. }
  80. // 新增:班级信息接口
  81. export interface ClassDTO {
  82. classId: number;
  83. className: string;
  84. courseId: number;
  85. stuNumber: number;
  86. classTime: string;
  87. teacherId: number;
  88. }
  89. // 新增:学生作业状态接口
  90. export interface StudentAssignmentStatusDTO {
  91. studentId: number;
  92. officialNumber: string;
  93. stuName: string;
  94. status: string; // "CORRECTED" | "NOT_SUBMITTED" | "SUBMITTED"
  95. score: number;
  96. }