import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; import { Class } from './class.entity'; import { ExamScore } from './exam-score.entity'; @Entity('exams') export class Exam { @PrimaryGeneratedColumn() id: number; @Column({ name: 'exam_type', length: 50 }) examType: string; @Column({ name: 'exam_name', length: 100 }) examName: string; @Column({ length: 50 }) subject: string; @Column({ name: 'exam_date', type: 'date' }) examDate: string; @Column({ name: 'class_id', type: 'integer' }) classId: number; @ManyToOne(() => Class) @JoinColumn({ name: 'class_id' }) class: Class; @OneToMany(() => ExamScore, (score) => score.exam) scores: ExamScore[]; @Column({ type: 'varchar', length: 20, default: 'active' }) status: 'active' | 'archived'; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt: Date; }