feat(db): add doctor favorite and item package entities

This commit is contained in:
avicenan
2026-03-16 16:32:40 +07:00
parent 4b3bc39e21
commit b89bea7261
3 changed files with 99 additions and 0 deletions

View File

@ -0,0 +1,41 @@
import {
Entity,
PrimaryGeneratedColumn,
ManyToOne,
JoinColumn,
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
Column,
Index,
} from "typeorm";
import { User } from "./users";
import { ItemMaster } from "./pharmacy/item_master";
@Entity("doctor_favorite_item")
@Index(["doctor", "item_master"], { unique: true })
export class DoctorFavoriteItem {
@PrimaryGeneratedColumn("uuid")
id!: string;
@ManyToOne(() => User, { nullable: false, onDelete: "CASCADE" })
@JoinColumn({ name: "doctor_id" })
doctor!: User;
@ManyToOne(() => ItemMaster, { nullable: false, onDelete: "CASCADE" })
@JoinColumn({ name: "item_master_id" })
item_master!: ItemMaster;
@CreateDateColumn()
created_at!: Date;
@Column({ nullable: true, length: 256 })
created_by?: string;
@UpdateDateColumn({ nullable: true })
updated_at?: Date;
@Column({ nullable: true, length: 256 })
updated_by?: string;
}

View File

@ -0,0 +1,56 @@
import {
Entity,
PrimaryGeneratedColumn,
ManyToOne,
JoinColumn,
ManyToMany,
JoinTable,
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
Column,
Index,
} from "typeorm";
import { User } from "./users";
import { ItemMaster } from "./pharmacy/item_master";
@Entity("doctor_item_package")
@Index(["doctor", "name"], { unique: true })
export class DoctorItemPackage {
@PrimaryGeneratedColumn("uuid")
id!: string;
@ManyToOne(() => User, { nullable: false, onDelete: "CASCADE" })
@JoinColumn({ name: "doctor_id" })
doctor!: User;
@Column({ type: "text", nullable: false })
name!: string;
@Column({ type: "text", nullable: true })
description?: string;
@ManyToMany(() => ItemMaster)
@JoinTable({
name: "doctor_item_package_items",
joinColumn: { name: "doctor_item_package_id", referencedColumnName: "id" },
inverseJoinColumn: { name: "item_master_id", referencedColumnName: "id" },
})
items!: ItemMaster[];
@Column({ type: "boolean", default: true })
active!: boolean;
@CreateDateColumn()
created_at!: Date;
@Column({ nullable: true, length: 256 })
created_by?: string;
@UpdateDateColumn({ nullable: true })
updated_at?: Date;
@Column({ nullable: true, length: 256 })
updated_by?: string;
}

View File

@ -20,6 +20,8 @@ export * from "../entity/service_fare"
export * from "../entity/service_package"
export * from "../entity/department"
export * from "../entity/doctor_schedule"
export * from "../entity/doctor_favorite_item"
export * from "../entity/doctor_item_package"
export * from "../entity/measurement_unit"
export * from "../entity/reference_range"
export * from "../entity/queue_monitoring"