From c46cad7eccf20cc5b711e0d8b79b4e589e1458ca Mon Sep 17 00:00:00 2001 From: mahyargdz Date: Tue, 29 Apr 2025 22:43:45 +0330 Subject: [PATCH] update: the cascade option for user raltaions to other entities --- src/modules/invoices/entities/invoice.entity.ts | 2 +- src/modules/payments/entities/deposit-request.entity.ts | 2 +- src/modules/payments/entities/payment.entity.ts | 2 +- src/modules/referrals/entities/referral-code.entity.ts | 2 +- src/modules/referrals/entities/referral.entity.ts | 6 +++--- src/modules/settings/entities/user-setting.entity.ts | 2 +- src/modules/tickets/entities/ticket.entity.ts | 8 ++++---- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/modules/invoices/entities/invoice.entity.ts b/src/modules/invoices/entities/invoice.entity.ts index 72b1d3f..801de2d 100755 --- a/src/modules/invoices/entities/invoice.entity.ts +++ b/src/modules/invoices/entities/invoice.entity.ts @@ -14,7 +14,7 @@ export class Invoice extends BaseEntity { @Column({ type: "int", generated: "identity", insert: false }) numericId: number; - @ManyToOne(() => User, (user) => user.invoices, { nullable: true, onDelete: "RESTRICT" }) + @ManyToOne(() => User, (user) => user.invoices, { nullable: true, onDelete: "SET NULL" }) user: User; @Column({ type: "decimal", precision: 16, scale: 2, nullable: false, transformer: new DecimalTransformer() }) diff --git a/src/modules/payments/entities/deposit-request.entity.ts b/src/modules/payments/entities/deposit-request.entity.ts index 4375809..a64ffb0 100755 --- a/src/modules/payments/entities/deposit-request.entity.ts +++ b/src/modules/payments/entities/deposit-request.entity.ts @@ -14,7 +14,7 @@ export class DepositRequest extends BaseEntity { @ManyToOne(() => BankAccount, (bankAccount) => bankAccount.depositRequests, { nullable: false, onDelete: "RESTRICT" }) bankAccount: BankAccount; - @ManyToOne(() => User, { nullable: false, onDelete: "RESTRICT" }) + @ManyToOne(() => User, { nullable: false, onDelete: "SET NULL" }) user: User; @Column({ type: "varchar", length: 250, nullable: false }) diff --git a/src/modules/payments/entities/payment.entity.ts b/src/modules/payments/entities/payment.entity.ts index 7950461..2a3dd58 100755 --- a/src/modules/payments/entities/payment.entity.ts +++ b/src/modules/payments/entities/payment.entity.ts @@ -22,7 +22,7 @@ export class Payment extends BaseEntity { @Column({ type: "enum", enum: PaymentStatus, default: PaymentStatus.PENDING }) status: PaymentStatus; - @ManyToOne(() => User, (user) => user.payments, { nullable: false, onDelete: "RESTRICT" }) + @ManyToOne(() => User, (user) => user.payments, { nullable: false, onDelete: "SET NULL" }) user: User; @ManyToOne(() => PaymentGateway, { nullable: false, onDelete: "RESTRICT" }) diff --git a/src/modules/referrals/entities/referral-code.entity.ts b/src/modules/referrals/entities/referral-code.entity.ts index bc9c803..0b5081c 100755 --- a/src/modules/referrals/entities/referral-code.entity.ts +++ b/src/modules/referrals/entities/referral-code.entity.ts @@ -19,7 +19,7 @@ export class ReferralCode extends BaseEntity { expiresAt: Date; //*********************************** */ - @OneToOne(() => User, (user) => user.referralCode) + @OneToOne(() => User, (user) => user.referralCode, { onDelete: "CASCADE" }) @JoinColumn() user: User; diff --git a/src/modules/referrals/entities/referral.entity.ts b/src/modules/referrals/entities/referral.entity.ts index 480220c..fecbfb1 100755 --- a/src/modules/referrals/entities/referral.entity.ts +++ b/src/modules/referrals/entities/referral.entity.ts @@ -8,13 +8,13 @@ import { ReferralStatus } from "../enums/referral-status.enum"; @Entity() export class Referral extends BaseEntity { - @ManyToOne(() => User, (user) => user.referrals) + @ManyToOne(() => User, (user) => user.referrals, { onDelete: "CASCADE" }) referrer: User; - @ManyToOne(() => User, (user) => user.referredBy) + @ManyToOne(() => User, (user) => user.referredBy, { onDelete: "CASCADE" }) referredUser: User; - @ManyToOne(() => ReferralCode, (code) => code.referrals) + @ManyToOne(() => ReferralCode, (code) => code.referrals, { onDelete: "CASCADE" }) referralCode: ReferralCode; @OneToMany(() => ReferralReward, (reward) => reward.referral) diff --git a/src/modules/settings/entities/user-setting.entity.ts b/src/modules/settings/entities/user-setting.entity.ts index ca4a59c..9f1cbe4 100755 --- a/src/modules/settings/entities/user-setting.entity.ts +++ b/src/modules/settings/entities/user-setting.entity.ts @@ -18,6 +18,6 @@ export class UserSetting extends BaseEntity { @ManyToOne(() => NotificationSetting, (notifSetting) => notifSetting.userSettings, { nullable: false }) notificationSetting: NotificationSetting; - @ManyToOne(() => User, (user) => user.settings, { nullable: false }) + @ManyToOne(() => User, (user) => user.settings, { nullable: false, onDelete: "CASCADE" }) user: User; } diff --git a/src/modules/tickets/entities/ticket.entity.ts b/src/modules/tickets/entities/ticket.entity.ts index 880b4e2..2bf88ed 100755 --- a/src/modules/tickets/entities/ticket.entity.ts +++ b/src/modules/tickets/entities/ticket.entity.ts @@ -25,17 +25,17 @@ export class Ticket extends BaseEntity { @Column({ type: "enum", enum: TicketPriority, nullable: false }) priority: TicketPriority; - @ManyToOne(() => DanakService, (danakService) => danakService.tickets, { onDelete: "RESTRICT", nullable: true }) + @ManyToOne(() => DanakService, (danakService) => danakService.tickets, { onDelete: "SET NULL", nullable: true }) danakService: DanakService | null; - @ManyToOne(() => User, (user) => user.tickets, { nullable: true }) + @ManyToOne(() => User, (user) => user.tickets, { nullable: true, onDelete: "SET NULL" }) assignedTo: User | null; @ManyToOne(() => User, (user) => user.tickets, { onDelete: "CASCADE", nullable: false }) user: User; - @ManyToOne(() => TicketCategory, (category) => category.tickets, { onDelete: "RESTRICT", nullable: false }) - category: TicketCategory; + @ManyToOne(() => TicketCategory, (category) => category.tickets, { onDelete: "SET NULL", nullable: true }) + category: TicketCategory | null; @OneToMany(() => TicketMessage, (message) => message.ticket, { cascade: true }) messages: TicketMessage[];