import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn, } from 'typeorm'; import { Student } from './student.entity'; import { StudentEnrollment } from './student-enrollment.entity'; import { Department } from './department.entity'; @Entity('exam_scores') export class ExamScore { @PrimaryGeneratedColumn() id: number; @Column({ name: 'student_id', type: 'integer' }) studentId: number; @ManyToOne(() => Student, { eager: true }) @JoinColumn({ name: 'student_id' }) student: Student; @Column({ name: 'enrollment_id', type: 'integer', nullable: true }) enrollmentId: number; @ManyToOne(() => StudentEnrollment, { nullable: true }) @JoinColumn({ name: 'enrollment_id' }) enrollment: StudentEnrollment; @Column({ name: 'exam_type', length: 50, nullable: true }) examType: string; @Column({ name: 'exam_name', length: 100, nullable: true }) examName: string; @Column({ length: 50, nullable: true }) subject: string; @Column({ type: 'decimal', precision: 5, scale: 2, nullable: true }) score: number; @Column({ name: 'class_avg', type: 'decimal', precision: 5, scale: 2, nullable: true }) classAvg: number; @Column({ type: 'integer', nullable: true }) rank: number; @Column({ name: 'exam_date', type: 'date', nullable: true }) examDate: string; @Column({ name: 'department_id', type: 'integer', nullable: true }) departmentId: number; @ManyToOne(() => Department, { nullable: true }) @JoinColumn({ name: 'department_id' }) department: Department; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt: Date; }