update relations goods and request order

This commit is contained in:
fadlydev
2025-01-22 16:22:43 +07:00
parent 2237297b68
commit 5600b27cf4
2 changed files with 37 additions and 22 deletions

View File

@ -85,9 +85,10 @@ export class Goods {
@JoinColumn({ name: 'supplier_id' }) @JoinColumn({ name: 'supplier_id' })
supplier: Supplier; supplier: Supplier;
@ManyToOne(() => RequestOrder, (requestOrder) => requestOrder.goods, { @ManyToOne(() => RequestOrder, (requestOrder) => requestOrder.goods, {
nullable: true, nullable: true,
onDelete: 'SET NULL', onDelete: 'CASCADE',
}) })
@JoinColumn({ name: 'request_order_id' }) @JoinColumn({ name: 'request_order_id' })
request_order: RequestOrder; request_order: RequestOrder;

View File

@ -5,10 +5,24 @@ import {
CreateDateColumn, CreateDateColumn,
UpdateDateColumn, UpdateDateColumn,
DeleteDateColumn, DeleteDateColumn,
OneToMany, ManyToOne,
JoinColumn,
} from 'typeorm'; } from 'typeorm';
import { Goods } from './goods'; import { Goods } from './goods';
enum ApprovalStatus {
PENDING = 'PENDING',
APPROVED = 'APPROVED',
REJECTED = 'REJECTED',
}
enum RequestOrderStatus {
DRAFT = 'DRAFT',
SUBMITTED = 'SUBMITTED',
APPROVED = 'APPROVED',
REJECTED = 'REJECTED',
}
@Entity('request_orders') @Entity('request_orders')
export class RequestOrder { export class RequestOrder {
@PrimaryGeneratedColumn('uuid') @PrimaryGeneratedColumn('uuid')
@ -48,10 +62,11 @@ export class RequestOrder {
remarks: string | null; remarks: string | null;
@Column({ @Column({
length: 64, type: 'enum',
enum: RequestOrderStatus,
nullable: false, nullable: false,
}) })
status: string; status: RequestOrderStatus;
@Column({ @Column({
length: 2, length: 2,
@ -73,12 +88,11 @@ export class RequestOrder {
spv_approval_date: Date | null; spv_approval_date: Date | null;
@Column({ @Column({
type: 'varchar', type: 'enum',
length: 16, enum: ApprovalStatus,
nullable: true, default: ApprovalStatus.PENDING,
default: 'PENDING',
}) })
spv_approval_status: 'PENDING' | 'APPROVED' | 'REJECTED'; spv_approval_status: ApprovalStatus;
// General Manager Approval // General Manager Approval
@Column({ @Column({
@ -94,22 +108,22 @@ export class RequestOrder {
gm_approval_date: Date | null; gm_approval_date: Date | null;
@Column({ @Column({
type: 'varchar', type: 'enum',
length: 16, enum: ApprovalStatus,
nullable: true, default: ApprovalStatus.PENDING,
default: 'PENDING',
}) })
gm_approval_status: 'PENDING' | 'APPROVED' | 'REJECTED'; gm_approval_status: ApprovalStatus;
// Relation with Goods // Relation with Goods
@OneToMany(() => Goods, (goods) => goods.request_order) @ManyToOne(() => Goods, (goods) => goods.request_order)
goods: Goods[]; @JoinColumn({ name: 'goods_id' })
goods: Goods;
@CreateDateColumn() @CreateDateColumn()
created_at: Date; created_at: Date;
@UpdateDateColumn({ nullable: true }) @UpdateDateColumn()
updated_at: Date | null; updated_at: Date;
@DeleteDateColumn({ nullable: true }) @DeleteDateColumn({ nullable: true })
deleted_at: Date | null; deleted_at: Date | null;