forked from wangziqi/gongxue-base
63 lines
1.4 KiB
TypeScript
63 lines
1.4 KiB
TypeScript
import {
|
|
Entity,
|
|
PrimaryGeneratedColumn,
|
|
Column,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
OneToMany,
|
|
} from 'typeorm';
|
|
import { Occupancy } from './occupancy.entity';
|
|
import { PersonalExpense } from './personal-expense.entity';
|
|
import { Bill } from './bill.entity';
|
|
|
|
@Entity('students')
|
|
export class Student {
|
|
@PrimaryGeneratedColumn()
|
|
id: number;
|
|
|
|
@Column({ length: 50 })
|
|
name: string;
|
|
|
|
@Column({ length: 20, nullable: true })
|
|
phone: string;
|
|
|
|
@Column({ name: 'id_number', length: 30, nullable: true })
|
|
idNumber: string;
|
|
|
|
@Column({ length: 10, nullable: true })
|
|
gender: string;
|
|
|
|
@Column({ length: 20, nullable: true })
|
|
ethnicity: string;
|
|
|
|
@Column({ name: 'emergency_contact', length: 50, nullable: true })
|
|
emergencyContact: string;
|
|
|
|
@Column({ name: 'emergency_phone', length: 20, nullable: true })
|
|
emergencyPhone: string;
|
|
|
|
@Column({ type: 'varchar', length: 20, default: 'active' })
|
|
status: string;
|
|
|
|
@Column({ length: 100, nullable: true })
|
|
organization: string;
|
|
|
|
@Column({ length: 50, nullable: true })
|
|
supervisor: string;
|
|
|
|
@CreateDateColumn({ name: 'created_at' })
|
|
createdAt: Date;
|
|
|
|
@UpdateDateColumn({ name: 'updated_at' })
|
|
updatedAt: Date;
|
|
|
|
@OneToMany(() => Occupancy, (o) => o.student)
|
|
occupancies: Occupancy[];
|
|
|
|
@OneToMany(() => PersonalExpense, (e) => e.student)
|
|
personalExpenses: PersonalExpense[];
|
|
|
|
@OneToMany(() => Bill, (b) => b.student)
|
|
bills: Bill[];
|
|
}
|