From 841c08114e73df3581705a0b15cad4d5be9ee177 Mon Sep 17 00:00:00 2001 From: Narul Hidayah Date: Wed, 11 Feb 2026 14:31:15 +0700 Subject: [PATCH] upd --- src/entity/department.ts | 42 ++++++++++++++++++++++ src/entity/doctor_schedule.ts | 68 +++++++++++++++++++++++++++++++++++ src/entity/room.ts | 7 +++- src/schema/public.ts | 2 ++ 4 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 src/entity/department.ts create mode 100644 src/entity/doctor_schedule.ts diff --git a/src/entity/department.ts b/src/entity/department.ts new file mode 100644 index 0000000..1df67e2 --- /dev/null +++ b/src/entity/department.ts @@ -0,0 +1,42 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn } from "typeorm"; + +import { Status } from "../types/status"; + +@Entity("departments") +export class Department { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: false, + length: 128, + }) + name: string; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} diff --git a/src/entity/doctor_schedule.ts b/src/entity/doctor_schedule.ts new file mode 100644 index 0000000..49ec921 --- /dev/null +++ b/src/entity/doctor_schedule.ts @@ -0,0 +1,68 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, ManyToOne, JoinColumn } from "typeorm"; + +import { Status } from "../types/status"; +import { Room } from "./room"; + +@Entity("doctor_schedules") +export class DoctorSchedule { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: false, + length: 32, + }) + day: string; + + @Column({ + nullable: false, + length: 16, + }) + start_time: string; + + @Column({ + nullable: false, + length: 16, + }) + end_time: string; + + @Column({ type: "uuid", nullable: false }) + doctor_id: string; + + @ManyToOne(() => Room, { onDelete: "NO ACTION" }) + @JoinColumn() + room: Room; + + @Column({ + nullable: true, + length: 32, + }) + quota: string; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} diff --git a/src/entity/room.ts b/src/entity/room.ts index f3e03a8..cc17dde 100644 --- a/src/entity/room.ts +++ b/src/entity/room.ts @@ -2,6 +2,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateCol import { Status } from "../types/status"; import { Poli } from "./poli"; +import { Department } from "./department"; import { Service } from "./service"; @Entity("rooms") @@ -27,10 +28,14 @@ export class Room { }) description: string; - @ManyToOne(() => Poli, { onDelete: "RESTRICT", nullable: false }) + @ManyToOne(() => Poli, { onDelete: "RESTRICT", nullable: true }) @JoinColumn() poli: Poli; + @ManyToOne(() => Department, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + department: Department; + @Column({ nullable: false, length: 64, diff --git a/src/schema/public.ts b/src/schema/public.ts index 86d046d..2399fd6 100644 --- a/src/schema/public.ts +++ b/src/schema/public.ts @@ -19,6 +19,8 @@ export * from "../entity/service_class" export * from "../entity/service" export * from "../entity/service_fare" export * from "../entity/service_package" +export * from "../entity/department" +export * from "../entity/doctor_schedule" export * from "../types/action"; export * from "../types/error";