fix: insignia relations

This commit is contained in:
Methapon2001 2024-03-18 18:03:01 +07:00
parent 8339c55472
commit b0292f3921
4 changed files with 74 additions and 186 deletions

View file

@ -66,7 +66,14 @@ export class ProfileInsigniaController extends Controller {
],
})
public async getInsignia(@Path() profileId: string) {
const record = await this.insigniaRepo.findBy({ profileId });
const record = await this.insigniaRepo.find({
relations: {
insignia: {
insigniaType: true,
},
},
where: { profileId },
});
return new HttpSuccess(record);
}
@ -128,8 +135,15 @@ export class ProfileInsigniaController extends Controller {
],
})
public async getInsigniaHistory(@Path() InsigniaId: string) {
const record = await this.insigniaHistoryRepo.findBy({
profileInsigniaId: InsigniaId,
const record = await this.insigniaHistoryRepo.find({
relations: {
insignia: {
insigniaType: true,
},
},
where: {
profileInsigniaId: InsigniaId,
},
});
return new HttpSuccess(record);
}

View file

@ -1,6 +1,8 @@
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { InsigniaType } from "./InsigniaType";
import { ProfileInsignia } from "./ProfileInsignia";
import { ProfileInsigniaHistory } from "./ProfileInsigniaHistory";
@Entity("insignia")
export class Insignia extends EntityBase {
@ -50,6 +52,14 @@ export class Insignia extends EntityBase {
@ManyToOne(() => InsigniaType, (insigniaType) => insigniaType.insignias)
@JoinColumn({ name: "insigniaTypeId" })
insigniaType: InsigniaType;
@OneToMany(() => ProfileInsignia, (v) => v.insignia)
@JoinColumn({ name: "insigniaId" })
profileInsignias: ProfileInsignia;
@OneToMany(() => ProfileInsigniaHistory, (v) => v.insignia)
@JoinColumn({ name: "insigniaHistoryId" })
profileInsigniaHistories: ProfileInsigniaHistory;
}
export class CreateInsignias {

View file

@ -2,6 +2,7 @@ import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileInsigniaHistory } from "./ProfileInsigniaHistory";
import { Insignia } from "./Insignia";
@Entity("profileInsignia")
export class ProfileInsignia extends EntityBase {
@ -64,22 +65,6 @@ export class ProfileInsignia extends EntityBase {
})
receiveDate: Date;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Insignia",
default: null,
})
insigniaId: string;
@Column({
nullable: true,
comment: "ประเภท",
type: "text",
default: null,
})
insigniaType: string;
@Column({
nullable: true,
type: "datetime",
@ -127,6 +112,17 @@ export class ProfileInsignia extends EntityBase {
})
note: string;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Insignia",
default: null,
})
insigniaId: string;
@ManyToOne(() => Insignia, (v) => v.profileInsignias)
insignia: Insignia;
@OneToMany(
() => ProfileInsigniaHistory,
(profileInsigniaHistory) => profileInsigniaHistory.histories,
@ -139,53 +135,39 @@ export class ProfileInsignia extends EntityBase {
}
export class CreateProfileInsignia {
@Column("uuid")
profileId: string | null;
@Column()
isActive: boolean;
@Column()
year: number;
@Column()
no: string | null;
@Column()
volume: string | null;
@Column()
section: string | null;
@Column()
page: string | null;
@Column()
receiveDate: Date | null;
@Column("uuid")
insigniaId: string | null;
@Column()
insigniaType: string | null;
@Column()
dateAnnounce: Date | null;
@Column()
issue: string | null;
@Column()
volumeNo: string | null;
@Column()
refCommandDate: Date | null;
@Column()
refCommandNo: string | null;
@Column()
note: string | null;
}
export type UpdateProfileInsignia = Partial<CreateProfileInsignia>;
export type UpdateProfileInsignia = {
profileId?: string | null;
isActive?: boolean;
year?: number;
no?: string | null;
volume?: string | null;
section?: string | null;
page?: string | null;
receiveDate?: Date | null;
insigniaId?: string | null;
insigniaType?: string | null;
dateAnnounce?: Date | null;
issue?: string | null;
volumeNo?: string | null;
refCommandDate?: Date | null;
refCommandNo?: string | null;
note?: string | null;
};

View file

@ -1,7 +1,7 @@
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileInsignia } from "./ProfileInsignia";
import { Insignia } from "./Insignia";
@Entity("profileInsigniaHistory")
export class ProfileInsigniaHistory extends EntityBase {
@ -11,112 +11,46 @@ export class ProfileInsigniaHistory extends EntityBase {
})
isActive: boolean;
@Column({
comment: "ปีที่ยื่นขอ",
})
@Column({ comment: "ปีที่ยื่นขอ" })
year: number;
@Column({
nullable: true,
length: 20,
comment: "ลำดับที่",
default: null,
})
@Column({ nullable: true, length: 20, comment: "ลำดับที่", default: null })
no: string;
@Column({
nullable: true,
length: 30,
comment: "เล่ม",
default: null,
})
@Column({ nullable: true, length: 30, comment: "เล่ม", default: null })
volume: string;
@Column({
nullable: true,
length: 30,
comment: "ตอน",
default: null,
})
@Column({ nullable: true, length: 30, comment: "ตอน", default: null })
section: string;
@Column({
nullable: true,
length: 30,
comment: "หน้า",
default: null,
})
@Column({ nullable: true, length: 30, comment: "หน้า", default: null })
page: string;
@Column({
nullable: true,
type: "datetime",
comment: "ลงวันที่",
default: null,
})
@Column({ nullable: true, type: "datetime", comment: "ลงวันที่", default: null })
receiveDate: Date;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Insignia",
default: null,
})
@Column({ nullable: true, length: 40, comment: "คีย์นอก(FK)ของตาราง Insignia", default: null })
insigniaId: string;
@Column({
nullable: true,
comment: "ประเภท",
type: "text",
default: null,
})
insigniaType: string;
@ManyToOne(() => Insignia, (v) => v.profileInsigniaHistories)
insignia: Insignia;
@Column({
nullable: true,
type: "datetime",
comment: "วันที่ประกาศในราชกิจจาฯ",
default: null,
})
@Column({ nullable: true, type: "datetime", comment: "วันที่ประกาศในราชกิจจาฯ", default: null })
dateAnnounce: Date;
@Column({
nullable: true,
length: 300,
comment: "ราชกิจจาฯ ฉบับที่",
default: null,
})
@Column({ nullable: true, length: 300, comment: "ราชกิจจาฯ ฉบับที่", default: null })
issue: string;
@Column({
nullable: true,
length: 30,
comment: "เล่มที่",
default: null,
})
@Column({ nullable: true, length: 30, comment: "เล่มที่", default: null })
volumeNo: string;
@Column({
nullable: true,
type: "datetime",
comment: "เอกสารอ้างอิง (ลงวันที่)",
default: null,
})
@Column({ nullable: true, type: "datetime", comment: "เอกสารอ้างอิง (ลงวันที่)", default: null })
refCommandDate: Date;
@Column({
nullable: true,
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
type: "text",
default: null,
})
@Column({ nullable: true, comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)", type: "text", default: null })
refCommandNo: string;
@Column({
nullable: true,
comment: "หมายเหตุ",
default: null,
})
@Column({ nullable: true, comment: "หมายเหตุ", default: null })
note: string;
@Column({
@ -131,55 +65,3 @@ export class ProfileInsigniaHistory extends EntityBase {
@JoinColumn({ name: "profileInsigniaId" })
histories: ProfileInsignia;
}
export class CreateProfileInsigniaHistory {
@Column()
isActive: boolean;
@Column()
year: number;
@Column()
no: string | null;
@Column()
volume: string | null;
@Column()
section: string | null;
@Column()
page: string | null;
@Column()
receiveDate: Date | null;
@Column("uuid")
insigniaId: string | null;
@Column()
insigniaType: string | null;
@Column()
dateAnnounce: Date | null;
@Column()
issue: string | null;
@Column()
volumeNo: string | null;
@Column()
refCommandDate: Date | null;
@Column()
refCommandNo: string | null;
@Column()
note: string | null;
@Column("uuid")
profileInsigniaId: string | null;
}
export type UpdateProfileInsigniaHistory = Partial<CreateProfileInsigniaHistory>;