251122:1700 Phase 4

This commit is contained in:
admin
2025-11-22 17:21:55 +07:00
parent 6d1e2c668c
commit 7eb9a1a633
63 changed files with 10062 additions and 109 deletions

View File

@@ -0,0 +1,76 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
ManyToOne,
JoinColumn,
ManyToMany,
JoinTable,
} from 'typeorm';
import { Project } from '../../project/entities/project.entity';
import { User } from '../../user/entities/user.entity';
import { Attachment } from '../../../common/file-storage/entities/attachment.entity';
import { ContractDrawingSubCategory } from './contract-drawing-sub-category.entity';
import { ContractDrawingVolume } from './contract-drawing-volume.entity';
@Entity('contract_drawings')
export class ContractDrawing {
@PrimaryGeneratedColumn()
id!: number; // ! ห้ามว่าง
@Column({ name: 'project_id' })
projectId!: number; // ! ห้ามว่าง
@Column({ name: 'condwg_no', length: 255 })
contractDrawingNo!: string; // ! ห้ามว่าง
@Column({ length: 255 })
title!: string; // ! ห้ามว่าง
@Column({ name: 'sub_cat_id', nullable: true })
subCategoryId?: number; // ? ว่างได้ (Nullable)
@Column({ name: 'volume_id', nullable: true })
volumeId?: number; // ? ว่างได้ (Nullable)
@CreateDateColumn({ name: 'created_at' })
createdAt!: Date; // ! ห้ามว่าง
@UpdateDateColumn({ name: 'updated_at' })
updatedAt!: Date; // ! ห้ามว่าง
@DeleteDateColumn({ name: 'deleted_at' })
deletedAt?: Date; // ? ว่างได้ (Nullable)
@Column({ name: 'updated_by', nullable: true })
updatedBy?: number; // ? ว่างได้ (Nullable)
// --- Relations ---
@ManyToOne(() => Project)
@JoinColumn({ name: 'project_id' })
project!: Project; // ! ห้ามว่าง
@ManyToOne(() => User)
@JoinColumn({ name: 'updated_by' })
updater?: User; // ? ว่างได้
@ManyToOne(() => ContractDrawingSubCategory)
@JoinColumn({ name: 'sub_cat_id' })
subCategory?: ContractDrawingSubCategory; // ? ว่างได้ (สัมพันธ์กับ subCategoryId)
@ManyToOne(() => ContractDrawingVolume)
@JoinColumn({ name: 'volume_id' })
volume?: ContractDrawingVolume; // ? แก้ไขตรงนี้: ใส่ ? เพราะ volumeId เป็น Nullable
@ManyToMany(() => Attachment)
@JoinTable({
name: 'contract_drawing_attachments',
joinColumn: { name: 'contract_drawing_id', referencedColumnName: 'id' },
inverseJoinColumn: { name: 'attachment_id', referencedColumnName: 'id' },
})
attachments!: Attachment[]; // ! ห้ามว่าง (TypeORM จะ return [] ถ้าไม่มี)
}