update entity relation

This commit is contained in:
fadlydev
2025-02-02 10:19:51 +07:00
parent 68fc37f713
commit 689fc17e7e
2 changed files with 30 additions and 76 deletions

View File

@ -116,7 +116,6 @@ export class RequestOrder {
}) })
gm_approval_status: ApprovalStatus; gm_approval_status: ApprovalStatus;
// Store multiple goods IDs
@Column('uuid', { array: true, nullable: true }) @Column('uuid', { array: true, nullable: true })
goods_ids: string[]; goods_ids: string[];

View File

@ -8,113 +8,68 @@ import {
ManyToOne, ManyToOne,
JoinColumn JoinColumn
} from 'typeorm'; } from 'typeorm';
import { RequestOrder } from './request_orders';
import { RequestOrder
} from './request_orders';
enum ApprovalStatus { enum ApprovalStatus {
PENDING = 'PENDING', PENDING = 'PENDING',
APPROVED = 'APPROVED', APPROVED = 'APPROVED',
REJECTED = 'REJECTED', REJECTED = 'REJECTED',
} }
enum SubmissionStatus {
DRAFT = 'DRAFT',
SUBMITTED = 'SUBMITTED',
APPROVED = 'APPROVED',
REJECTED = 'REJECTED',
}
@Entity('request_submissions') @Entity('request_submissions')
export class RequestSubmission { export class RequestSubmission {
@PrimaryGeneratedColumn('uuid') @PrimaryGeneratedColumn('uuid')
id: string; id: string;
@ManyToOne(() => RequestOrder, { nullable: true })
@ManyToOne(() => RequestOrder, { nullable: false })
@JoinColumn({ name: 'request_order_id' }) @JoinColumn({ name: 'request_order_id' })
request_order: RequestOrder; request_order: RequestOrder;
@Column({
nullable: false, @Column({ type: 'varchar', nullable: false, unique: true })
type: 'varchar',
unique: true,
})
code_id: string; code_id: string;
@Column({ @Column({ type: 'date', nullable: false })
nullable: false,
type: 'date',
})
submission_date: Date; submission_date: Date;
@Column({ @Column({ type: 'text', nullable: true })
nullable: true, remarks: string | null;
type: 'text',
})
remarks: string;
@Column({ @Column({ type: 'varchar', nullable: true })
nullable: true, department: string | null;
type: 'varchar',
})
department: string;
@Column({ @Column({ type: 'enum', enum: SubmissionStatus, nullable: false, default: SubmissionStatus.DRAFT })
nullable: false, status: SubmissionStatus;
length: 64,
})
status: string;
// General Manager Approval // General Manager Approval
@Column({ @Column({ type: 'uuid', nullable: true })
type: 'uuid',
nullable: true,
})
approved_by_gm: string | null; approved_by_gm: string | null;
@Column({ @Column({ type: 'timestamptz', nullable: true })
type: 'timestamp',
nullable: true,
})
gm_approval_date: Date | null; gm_approval_date: Date | null;
@Column({ @Column({ type: 'enum', enum: ApprovalStatus, default: ApprovalStatus.PENDING })
type: 'enum',
enum: ApprovalStatus,
default: ApprovalStatus.PENDING,
})
gm_approval_status: ApprovalStatus; gm_approval_status: ApprovalStatus;
// Store multiple @Column({ type: 'varchar', nullable: false })
@Column('uuid', { array: true, nullable: true })
request_order_ids: string[];
@Column({
nullable: false,
type: 'varchar',
})
created_by: string; created_by: string;
@Column({ @Column({ type: 'varchar', nullable: true })
nullable: true, updated_by: string | null;
type: 'varchar',
})
updated_by: string;
@Column({ @Column({ type: 'int', nullable: false, default: 0 })
type: 'int',
nullable: false,
default: 0,
})
quantity: number; quantity: number;
@Column({ @Column({ type: 'decimal', precision: 12, scale: 2, nullable: false, default: 0.0 })
type: 'decimal',
precision: 12,
scale: 2,
nullable: false,
default: 0.0,
})
amount: number; amount: number;
@Column({ @Column({ type: 'decimal', precision: 12, scale: 2, nullable: false, default: 0.0 })
type: 'decimal',
precision: 12,
scale: 2,
nullable: false,
default: 0.0,
})
total: number; total: number;
@CreateDateColumn() @CreateDateColumn()
@ -123,6 +78,6 @@ export class RequestSubmission {
@UpdateDateColumn() @UpdateDateColumn()
updated_at: Date; updated_at: Date;
@DeleteDateColumn() @DeleteDateColumn({ nullable: true })
deleted_at: Date; deleted_at: Date | null;
} }