feat: added complaintAttachment entity

This commit is contained in:
2026-07-28 17:19:57 +03:30
parent 366e2e2a92
commit 823d43fc75
4 changed files with 30 additions and 3 deletions
+5 -1
View File
@@ -1,6 +1,7 @@
import { BaseEntity } from "src/common/entities/base.entity"; import { BaseEntity } from "src/common/entities/base.entity";
import { Column, Entity } from "typeorm"; import { Column, Entity, OneToOne } from "typeorm";
import { AttachmentType } from "../enums/attachment-type.enum"; import { AttachmentType } from "../enums/attachment-type.enum";
import { ComplaintAttachment } from "src/complaint/entities/complaint-attachment.entity";
@Entity('attachments') @Entity('attachments')
export class Attachment extends BaseEntity{ export class Attachment extends BaseEntity{
@@ -20,4 +21,7 @@ export class Attachment extends BaseEntity{
type: 'text' type: 'text'
}) })
filepath: string; filepath: string;
@OneToOne(() => ComplaintAttachment, (ca) => ca.attachment)
complaint: ComplaintAttachment;
} }
+2 -1
View File
@@ -4,9 +4,10 @@ import { ComplaintController } from './complaint.controller';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { Complaint } from './entities/complaint.entity'; import { Complaint } from './entities/complaint.entity';
import { ComplaintRepository } from './repositories/complaint.repository'; import { ComplaintRepository } from './repositories/complaint.repository';
import { ComplaintAttachment } from './entities/complaint-attachment.entity';
@Module({ @Module({
imports: [TypeOrmModule.forFeature([Complaint])], imports: [TypeOrmModule.forFeature([Complaint, ComplaintAttachment])],
controllers: [ComplaintController], controllers: [ComplaintController],
providers: [ComplaintService, ComplaintRepository], providers: [ComplaintService, ComplaintRepository],
}) })
@@ -0,0 +1,18 @@
import { BaseEntity } from "src/common/entities/base.entity";
import { Entity, JoinColumn, ManyToOne, OneToOne, Unique } from "typeorm";
import { Complaint } from "./complaint.entity";
import { Attachment } from "src/attachment/entities/attachment.entity";
@Entity('complaint_attachments')
@Unique(['attachment'])
export class ComplaintAttachment extends BaseEntity {
@ManyToOne(() => Complaint, (complaint) => complaint.attachments)
complaint: Complaint;
@OneToOne(() => Attachment, (a) => a.complaint, {
cascade: true,
onDelete: 'CASCADE'
})
@JoinColumn()
attachment: Attachment;
}
+5 -1
View File
@@ -1,8 +1,9 @@
import { Column, Entity, JoinColumn, ManyToOne, OneToOne } from 'typeorm'; import { Column, Entity, JoinColumn, ManyToOne, OneToMany, OneToOne } from 'typeorm';
import { ComplaintStatus } from '../enums/complaint.enum'; import { ComplaintStatus } from '../enums/complaint.enum';
import { User } from 'src/users/entities/user.entity'; import { User } from 'src/users/entities/user.entity';
import { Organ } from 'src/organ/entities/organ.entity'; import { Organ } from 'src/organ/entities/organ.entity';
import { BaseEntity } from 'src/common/entities/base.entity'; import { BaseEntity } from 'src/common/entities/base.entity';
import { ComplaintAttachment } from './complaint-attachment.entity';
@Entity('complaints') @Entity('complaints')
export class Complaint extends BaseEntity { export class Complaint extends BaseEntity {
@@ -41,4 +42,7 @@ export class Complaint extends BaseEntity {
name: 'organId' name: 'organId'
}) })
organ: Organ; organ: Organ;
@OneToMany(() => ComplaintAttachment, (ca) => ca.complaint)
attachments: ComplaintAttachment[];
} }