2024-01-25 15:54:03 +07:00
import { Entity , Column , ManyToOne , JoinColumn , OneToMany } from "typeorm" ;
2024-01-24 16:08:34 +07:00
import { EntityBase } from "./base/Base" ;
import { OrgChild2 } from "./OrgChild2" ;
import { OrgChild4 } from "./OrgChild4" ;
2024-01-31 14:29:39 +07:00
import { OrgRevision } from "./OrgRevision" ;
import { OrgChild1 } from "./OrgChild1" ;
import { OrgRoot } from "./OrgRoot" ;
2024-01-31 15:31:20 +07:00
import { PosMaster } from "./PosMaster" ;
2024-01-25 15:54:03 +07:00
2024-01-24 16:08:34 +07:00
enum OrgChild3Rank {
2024-01-26 10:13:07 +07:00
DEPARTMENT = "DEPARTMENT" ,
OFFICE = "OFFICE" ,
DIVISION = "DIVISION" ,
SECTION = "SECTION" ,
2024-01-24 16:08:34 +07:00
}
2024-01-25 15:54:03 +07:00
2024-01-24 17:22:41 +07:00
@Entity ( "orgChild3" )
2024-01-24 16:08:34 +07:00
export class OrgChild3 extends EntityBase {
@Column ( {
nullable : true ,
comment : "ชื่อส่วนราชการ" ,
length : 255 ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3Name : string ;
@Column ( {
nullable : true ,
comment : "ชื่อย่อส่วนราชการ" ,
length : 16 ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3ShortName : string ;
@Column ( {
nullable : true ,
comment : "รหัสส่วนราชการ" ,
length : 8 ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3Code : string ;
@Column ( {
nullable : true ,
comment : "ระดับส่วนราชการ" ,
type : "enum" ,
enum : OrgChild3Rank ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3Rank : OrgChild3Rank ;
2024-03-13 09:47:19 +07:00
@Column ( {
nullable : true ,
comment : "ระดับส่วนราชการsub" ,
default : null ,
} )
orgChild3RankSub : string ;
2024-01-24 16:08:34 +07:00
@Column ( {
nullable : true ,
comment : "ลำดับที่ของส่วนราชการภายใน Child เดียวกัน" ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3Order : number ;
@Column ( {
nullable : true ,
length : 64 ,
comment : "หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก" ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3PhoneEx : string ;
@Column ( {
nullable : true ,
length : 64 ,
comment : "หมายเลขโทรศัพท์ที่ติดต่อจากภายใน" ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3PhoneIn : string ;
@Column ( {
nullable : true ,
length : 64 ,
comment : "หมายเลขโทรสาร" ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-24 16:08:34 +07:00
} )
orgChild3Fax : string ;
@Column ( {
length : 40 ,
2024-02-01 14:17:56 +07:00
comment : "คีย์นอก(FK)ของตาราง orgRoot" ,
2024-01-24 16:08:34 +07:00
} )
2024-01-25 10:13:36 +07:00
orgRootId : string ;
2024-01-24 16:08:34 +07:00
@Column ( {
length : 40 ,
2024-02-01 14:17:56 +07:00
comment : "คีย์นอก(FK)ของตาราง orgChild1" ,
2024-01-24 16:08:34 +07:00
} )
2024-01-25 10:13:36 +07:00
orgChild1Id : string ;
2024-01-24 16:08:34 +07:00
@Column ( {
length : 40 ,
2024-02-01 14:17:56 +07:00
comment : "คีย์นอก(FK)ของตาราง orgChild2" ,
2024-01-24 16:08:34 +07:00
} )
2024-01-25 10:13:36 +07:00
orgChild2Id : string ;
2024-01-24 16:08:34 +07:00
2024-01-26 20:25:18 +07:00
@Column ( {
length : 40 ,
2024-02-01 14:17:56 +07:00
comment : "คีย์นอก(FK)ของตาราง orgRevision" ,
2024-01-26 20:25:18 +07:00
} )
orgRevisionId : string ;
2024-01-26 09:56:27 +07:00
@Column ( {
2024-02-01 11:02:35 +07:00
nullable : true ,
2024-01-26 09:56:27 +07:00
length : 40 ,
2024-03-13 09:47:19 +07:00
comment :
"รหัส DNA ใช้ในกรณีที่มีการทำสำเนาโครงสร้าง โครงสร้างใหม่ที่ทำสำเนากับโครงสร้างเก่าจะต้องมี DNA เดียวกัน เพื่อให้ track ประวัติการแก้ไขโครงสร้างย้อนหลังได้" ,
2024-02-01 11:02:35 +07:00
default : null ,
2024-01-26 09:56:27 +07:00
} )
2024-02-01 13:29:15 +07:00
ancestorDNA : string ;
2024-01-26 09:56:27 +07:00
2024-01-31 14:29:39 +07:00
@ManyToOne ( ( ) = > OrgRevision , ( orgRevision ) = > orgRevision . orgChild3s )
@JoinColumn ( { name : "orgRevisionId" } )
orgRevision : OrgRevision ;
@ManyToOne ( ( ) = > OrgRoot , ( orgRoot ) = > orgRoot . orgChild3s )
@JoinColumn ( { name : "orgRootId" } )
orgRoot : OrgRoot ;
@ManyToOne ( ( ) = > OrgChild1 , ( orgChild1 ) = > orgChild1 . orgChild3s )
@JoinColumn ( { name : "orgChild1Id" } )
orgChild1 : OrgChild1 ;
2024-01-26 17:09:28 +07:00
@ManyToOne ( ( ) = > OrgChild2 , ( orgChild2 ) = > orgChild2 . orgChild3s )
2024-01-25 10:13:36 +07:00
@JoinColumn ( { name : "orgChild2Id" } )
2024-01-24 16:08:34 +07:00
orgChild2 : OrgChild2 ;
2024-01-26 17:09:28 +07:00
@OneToMany ( ( ) = > OrgChild4 , ( orgChild4 ) = > orgChild4 . orgChild3 )
2024-01-24 16:08:34 +07:00
orgChild4s : OrgChild4 [ ] ;
2024-01-31 15:31:20 +07:00
@OneToMany ( ( ) = > PosMaster , ( posMaster ) = > posMaster . orgChild3 )
posMasters : PosMaster [ ] ;
2024-01-24 16:08:34 +07:00
}
2024-01-25 15:54:03 +07:00
export class CreateOrgChild3 {
@Column ( )
orgChild3Name : string ;
@Column ( )
orgChild3ShortName : string ;
@Column ( )
orgChild3Code : string ;
2024-01-26 17:09:28 +07:00
2024-01-25 15:54:03 +07:00
@Column ( )
orgChild3Rank : string ;
2024-03-13 09:47:19 +07:00
@Column ( )
2024-03-13 10:12:13 +07:00
orgChild3RankSub? : string ;
2024-03-13 09:47:19 +07:00
2024-01-25 15:54:03 +07:00
@Column ( )
2024-01-26 17:09:28 +07:00
orgChild3PhoneEx? : string ;
2024-01-25 15:54:03 +07:00
@Column ( )
2024-01-26 17:09:28 +07:00
orgChild3PhoneIn? : string ;
2024-01-25 15:54:03 +07:00
@Column ( )
2024-01-26 17:09:28 +07:00
orgChild3Fax? : string ;
2024-01-25 15:54:03 +07:00
2024-01-26 17:09:28 +07:00
@Column ( "uuid" )
2024-01-25 15:54:03 +07:00
orgChild2Id : string ;
}
2024-01-26 09:56:27 +07:00
export type UpdateOrgChild3 = Partial < CreateOrgChild3 > & { orgChild3Rank? : OrgChild3Rank } ;