feat: add student archive module with full CRUD APIs

This commit is contained in:
2026-07-06 15:46:57 +08:00
parent 9eec7c34be
commit b6990dd11b
5 changed files with 655 additions and 2 deletions

View File

@@ -0,0 +1,49 @@
import { IsOptional, IsString, IsNumber, IsDateString } from 'class-validator';
export class UpsertProfileDto {
@IsOptional() @IsString() targetCollege?: string;
@IsOptional() @IsString() targetMajor?: string;
@IsOptional() @IsString() subjectDirection?: string;
@IsOptional() @IsString() grade?: string;
@IsOptional() @IsString() campusLocation?: string;
@IsOptional() @IsDateString() profileDate?: string;
@IsOptional() @IsString() notes?: string;
}
export class CreateEnrollmentDto {
@IsString() courseCategory: string;
@IsString() classType: string;
@IsOptional() @IsString() className?: string;
@IsOptional() @IsString() headTeacher?: string;
@IsOptional() @IsString() subjectTeacher?: string;
@IsOptional() @IsDateString() startDate?: string;
@IsOptional() @IsDateString() endDate?: string;
@IsOptional() @IsString() status?: string;
}
export class CreateExamScoreDto {
@IsString() examType: string;
@IsOptional() @IsString() examName?: string;
@IsString() subject: string;
@IsNumber() score: number;
@IsOptional() @IsNumber() classAvg?: number;
@IsOptional() @IsNumber() rank?: number;
@IsOptional() @IsDateString() examDate?: string;
@IsOptional() @IsNumber() enrollmentId?: number;
}
export class CreateLearningRecordDto {
@IsDateString() recordDate: string;
@IsString() recordType: string;
@IsString() content: string;
@IsOptional() @IsString() followUpMethod?: string;
@IsOptional() @IsString() nextStep?: string;
}
export class UpsertResultDto {
@IsOptional() @IsNumber() cultureFinalScore?: number;
@IsOptional() @IsNumber() professionalFinalScore?: number;
@IsOptional() @IsString() admissionStatus?: string;
@IsOptional() @IsString() admittedCollege?: string;
@IsOptional() @IsString() admittedMajor?: string;
}