feat: add department_id to all business entities

This commit is contained in:
2026-07-05 23:45:05 +08:00
parent 7d945029eb
commit ad24c9ef23
13 changed files with 122 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ import {
} from 'typeorm';
import { Student } from './student.entity';
import { Class } from './class.entity';
import { Department } from './department.entity';
@Entity('attendance_records')
@Index(['classId', 'attendanceDate'])
@@ -52,4 +53,11 @@ export class AttendanceRecord {
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -9,6 +9,7 @@ import {
} from 'typeorm';
import { Student } from './student.entity';
import { BillItem } from './bill-item.entity';
import { Department } from './department.entity';
@Entity('bills')
export class Bill {
@@ -45,4 +46,11 @@ export class Bill {
@OneToMany(() => BillItem, (bi) => bi.bill)
items: BillItem[];
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -8,6 +8,7 @@ import {
JoinColumn,
Check,
} from 'typeorm';
import { Department } from './department.entity';
export enum ScheduleType {
INTERNAL = 'INTERNAL',
@@ -79,4 +80,11 @@ export class ClassSchedule {
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -10,6 +10,7 @@ import {
} from 'typeorm';
import { Classroom } from './classroom.entity';
import { Tenant } from './tenant.entity';
import { Department } from './department.entity';
@Entity('classroom_rentals')
@Index(['classroomId', 'startDate', 'endDate'])
@@ -64,4 +65,11 @@ export class ClassroomRental {
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -1,4 +1,5 @@
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn } from 'typeorm';
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, JoinColumn } from 'typeorm';
import { Department } from './department.entity';
@Entity('classrooms')
export class Classroom {
@@ -34,4 +35,11 @@ export class Classroom {
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -7,6 +7,7 @@ import {
JoinColumn,
} from 'typeorm';
import { Deposit } from './deposit.entity';
import { Department } from './department.entity';
@Entity('deposit_installments')
export class DepositInstallment {
@@ -34,4 +35,11 @@ export class DepositInstallment {
@ManyToOne(() => Deposit, (d) => d.installments, { onDelete: 'CASCADE' })
@JoinColumn({ name: 'deposit_id' })
deposit: Deposit;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -9,6 +9,7 @@ import {
} from 'typeorm';
import { Student } from './student.entity';
import { DepositInstallment } from './deposit-installment.entity';
import { Department } from './department.entity';
@Entity('deposits')
export class Deposit {
@@ -68,4 +69,10 @@ export class Deposit {
@JoinColumn({ name: 'student_id' })
student: Student;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -0,0 +1,25 @@
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn } from 'typeorm';
@Entity('expense_types')
export class ExpenseType {
@PrimaryGeneratedColumn()
id: number;
@Column({ length: 30, unique: true })
code: string;
@Column({ length: 30 })
name: string;
@Column({ length: 20, default: 'room' })
category: string;
@Column({ type: 'integer', default: 0 })
sortOrder: number;
@Column({ default: true })
enabled: boolean;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
}

View File

@@ -9,6 +9,7 @@ import {
import { Student } from './student.entity';
import { Room } from './room.entity';
import { Tenant } from './tenant.entity';
import { Department } from './department.entity';
@Entity('occupancies')
export class Occupancy {
@@ -59,4 +60,11 @@ export class Occupancy {
@ManyToOne(() => Room, (r) => r.occupancies)
@JoinColumn({ name: 'room_id' })
room: Room;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -7,6 +7,7 @@ import {
JoinColumn,
} from 'typeorm';
import { Student } from './student.entity';
import { Department } from './department.entity';
@Entity('personal_expenses')
export class PersonalExpense {
@@ -40,4 +41,11 @@ export class PersonalExpense {
@ManyToOne(() => Student, (s) => s.personalExpenses)
@JoinColumn({ name: 'student_id' })
student: Student;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -7,6 +7,7 @@ import {
JoinColumn,
} from 'typeorm';
import { Room } from './room.entity';
import { Department } from './department.entity';
@Entity('room_expenses')
export class RoomExpense {
@@ -40,4 +41,11 @@ export class RoomExpense {
@ManyToOne(() => Room, (r) => r.roomExpenses)
@JoinColumn({ name: 'room_id' })
room: Room;
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -1,6 +1,7 @@
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, OneToMany } from 'typeorm';
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, OneToMany, ManyToOne, JoinColumn } from 'typeorm';
import { Occupancy } from './occupancy.entity';
import { RoomExpense } from './room-expense.entity';
import { Department } from './department.entity';
@Entity('rooms')
export class Room {
@@ -42,4 +43,11 @@ export class Room {
@OneToMany(() => RoomExpense, (e) => e.room)
roomExpenses: RoomExpense[];
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}

View File

@@ -14,6 +14,7 @@ import { PersonalExpense } from './personal-expense.entity';
import { Bill } from './bill.entity';
import { Tenant } from './tenant.entity';
import { User } from './user.entity';
import { Department } from './department.entity';
@Entity('students')
export class Student {
@@ -80,4 +81,11 @@ export class Student {
@OneToMany(() => Bill, (b) => b.student)
bills: Bill[];
@Column({ name: 'department_id', type: 'integer', nullable: true })
departmentId: number;
@ManyToOne(() => Department, { nullable: true })
@JoinColumn({ name: 'department_id' })
department: Department;
}