diff --git a/apps/server/src/entities/attendance-record.entity.ts b/apps/server/src/entities/attendance-record.entity.ts index e5a64bd..730df52 100644 --- a/apps/server/src/entities/attendance-record.entity.ts +++ b/apps/server/src/entities/attendance-record.entity.ts @@ -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; } diff --git a/apps/server/src/entities/bill.entity.ts b/apps/server/src/entities/bill.entity.ts index dea94e3..50f618b 100644 --- a/apps/server/src/entities/bill.entity.ts +++ b/apps/server/src/entities/bill.entity.ts @@ -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; } diff --git a/apps/server/src/entities/class-schedule.entity.ts b/apps/server/src/entities/class-schedule.entity.ts index 36e7417..6345781 100644 --- a/apps/server/src/entities/class-schedule.entity.ts +++ b/apps/server/src/entities/class-schedule.entity.ts @@ -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; } diff --git a/apps/server/src/entities/classroom-rental.entity.ts b/apps/server/src/entities/classroom-rental.entity.ts index 2127062..03504da 100644 --- a/apps/server/src/entities/classroom-rental.entity.ts +++ b/apps/server/src/entities/classroom-rental.entity.ts @@ -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; } diff --git a/apps/server/src/entities/classroom.entity.ts b/apps/server/src/entities/classroom.entity.ts index 8aa7021..dc60165 100644 --- a/apps/server/src/entities/classroom.entity.ts +++ b/apps/server/src/entities/classroom.entity.ts @@ -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; } diff --git a/apps/server/src/entities/deposit-installment.entity.ts b/apps/server/src/entities/deposit-installment.entity.ts index 20bd67a..afffc1e 100644 --- a/apps/server/src/entities/deposit-installment.entity.ts +++ b/apps/server/src/entities/deposit-installment.entity.ts @@ -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; } diff --git a/apps/server/src/entities/deposit.entity.ts b/apps/server/src/entities/deposit.entity.ts index b73ef49..d8b3c46 100644 --- a/apps/server/src/entities/deposit.entity.ts +++ b/apps/server/src/entities/deposit.entity.ts @@ -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; } diff --git a/apps/server/src/entities/expense-type.entity.ts b/apps/server/src/entities/expense-type.entity.ts new file mode 100644 index 0000000..1c4785c --- /dev/null +++ b/apps/server/src/entities/expense-type.entity.ts @@ -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; +} diff --git a/apps/server/src/entities/occupancy.entity.ts b/apps/server/src/entities/occupancy.entity.ts index 1ead54b..dbabe41 100644 --- a/apps/server/src/entities/occupancy.entity.ts +++ b/apps/server/src/entities/occupancy.entity.ts @@ -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; } diff --git a/apps/server/src/entities/personal-expense.entity.ts b/apps/server/src/entities/personal-expense.entity.ts index e0b7c8e..d4d75e5 100644 --- a/apps/server/src/entities/personal-expense.entity.ts +++ b/apps/server/src/entities/personal-expense.entity.ts @@ -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; } diff --git a/apps/server/src/entities/room-expense.entity.ts b/apps/server/src/entities/room-expense.entity.ts index 1221ccd..74d777c 100644 --- a/apps/server/src/entities/room-expense.entity.ts +++ b/apps/server/src/entities/room-expense.entity.ts @@ -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; } diff --git a/apps/server/src/entities/room.entity.ts b/apps/server/src/entities/room.entity.ts index 8ab05c6..ddd86ab 100644 --- a/apps/server/src/entities/room.entity.ts +++ b/apps/server/src/entities/room.entity.ts @@ -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; } diff --git a/apps/server/src/entities/student.entity.ts b/apps/server/src/entities/student.entity.ts index 1441711..914896e 100644 --- a/apps/server/src/entities/student.entity.ts +++ b/apps/server/src/entities/student.entity.ts @@ -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; }