65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import {
|
|
Entity,
|
|
PrimaryGeneratedColumn,
|
|
Column,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
DeleteDateColumn,
|
|
OneToMany,
|
|
ManyToOne,
|
|
JoinColumn,
|
|
} from 'typeorm';
|
|
import { ShopDrawingRevision } from './shop-drawing-revision.entity';
|
|
import { Project } from '../../project/entities/project.entity';
|
|
import { ShopDrawingMainCategory } from './shop-drawing-main-category.entity';
|
|
import { ShopDrawingSubCategory } from './shop-drawing-sub-category.entity';
|
|
|
|
@Entity('shop_drawings')
|
|
export class ShopDrawing {
|
|
@PrimaryGeneratedColumn()
|
|
id!: number; // เติม !
|
|
|
|
@Column({ name: 'project_id' })
|
|
projectId!: number; // เติม !
|
|
|
|
@Column({ name: 'drawing_number', length: 100, unique: true })
|
|
drawingNumber!: string; // เติม !
|
|
|
|
@Column({ name: 'main_category_id' })
|
|
mainCategoryId!: number; // เติม !
|
|
|
|
@Column({ name: 'sub_category_id' })
|
|
subCategoryId!: number; // เติม !
|
|
|
|
@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; // เติม ! (ตัวที่ error)
|
|
|
|
@ManyToOne(() => ShopDrawingMainCategory)
|
|
@JoinColumn({ name: 'main_category_id' })
|
|
mainCategory!: ShopDrawingMainCategory; // เติม !
|
|
|
|
@ManyToOne(() => ShopDrawingSubCategory)
|
|
@JoinColumn({ name: 'sub_category_id' })
|
|
subCategory!: ShopDrawingSubCategory; // เติม !
|
|
|
|
@OneToMany(() => ShopDrawingRevision, (revision) => revision.shopDrawing, {
|
|
cascade: true,
|
|
})
|
|
revisions!: ShopDrawingRevision[]; // เติม !
|
|
}
|