Spaces:
Sleeping
Sleeping
File size: 1,773 Bytes
d0c3eef 9f03bd9 d0c3eef 9f03bd9 d0c3eef 64afa2f d0c3eef 64afa2f fcab6da 64afa2f d0c3eef 64afa2f d0c3eef 64afa2f d0c3eef 64afa2f d0c3eef 64afa2f d0c3eef 64afa2f d0c3eef 64afa2f d0c3eef 64afa2f d0c3eef 9f03bd9 64afa2f d0c3eef 64afa2f 9f03bd9 d0c3eef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | import {
Entity,
PrimaryGeneratedColumn,
Column,
ManyToOne,
JoinColumn,
CreateDateColumn,
UpdateDateColumn,
Index,
} from 'typeorm';
import type { Relation } from 'typeorm';
import { Status } from '../enums/status.enum';
import { DegreeType } from '../enums/degree-type.enum';
import type { Department } from './department.entity';
@Entity('programs')
@Index(['departmentId', 'code'], { unique: true })
export class Program {
@PrimaryGeneratedColumn('increment', {
type: 'bigint',
name: 'program_id', // Map to actual column name
})
id: number;
@Column({
type: 'bigint',
unsigned: true,
nullable: false,
name: 'department_id', // Map to actual column name
})
departmentId: number;
@Column({
type: 'varchar',
length: 200,
nullable: false,
name: 'program_name', // Map to actual column name
})
name: string;
@Column({
type: 'varchar',
length: 20,
nullable: false,
name: 'program_code', // Map to actual column name
})
code: string;
@Column({
type: 'enum',
enum: DegreeType,
nullable: false,
name: 'degree_type', // Map to actual column name
})
degreeType: DegreeType;
@Column({
type: 'int',
nullable: true,
name: 'duration_years', // Map to actual column name
})
durationYears: number;
@Column({ type: 'text', nullable: true })
description: string;
@Column({
type: 'enum',
enum: Status,
default: Status.ACTIVE,
})
status: Status;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
@ManyToOne('Department', 'programs', {
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'department_id' })
department: Relation<Department>;
}
|