update: the cascade option for user raltaions to other entities

This commit is contained in:
mahyargdz
2025-04-29 22:43:45 +03:30
parent d3b6cdfbf7
commit c46cad7ecc
7 changed files with 12 additions and 12 deletions
@@ -14,7 +14,7 @@ export class Invoice extends BaseEntity {
@Column({ type: "int", generated: "identity", insert: false }) @Column({ type: "int", generated: "identity", insert: false })
numericId: number; numericId: number;
@ManyToOne(() => User, (user) => user.invoices, { nullable: true, onDelete: "RESTRICT" }) @ManyToOne(() => User, (user) => user.invoices, { nullable: true, onDelete: "SET NULL" })
user: User; user: User;
@Column({ type: "decimal", precision: 16, scale: 2, nullable: false, transformer: new DecimalTransformer() }) @Column({ type: "decimal", precision: 16, scale: 2, nullable: false, transformer: new DecimalTransformer() })
@@ -14,7 +14,7 @@ export class DepositRequest extends BaseEntity {
@ManyToOne(() => BankAccount, (bankAccount) => bankAccount.depositRequests, { nullable: false, onDelete: "RESTRICT" }) @ManyToOne(() => BankAccount, (bankAccount) => bankAccount.depositRequests, { nullable: false, onDelete: "RESTRICT" })
bankAccount: BankAccount; bankAccount: BankAccount;
@ManyToOne(() => User, { nullable: false, onDelete: "RESTRICT" }) @ManyToOne(() => User, { nullable: false, onDelete: "SET NULL" })
user: User; user: User;
@Column({ type: "varchar", length: 250, nullable: false }) @Column({ type: "varchar", length: 250, nullable: false })
@@ -22,7 +22,7 @@ export class Payment extends BaseEntity {
@Column({ type: "enum", enum: PaymentStatus, default: PaymentStatus.PENDING }) @Column({ type: "enum", enum: PaymentStatus, default: PaymentStatus.PENDING })
status: PaymentStatus; status: PaymentStatus;
@ManyToOne(() => User, (user) => user.payments, { nullable: false, onDelete: "RESTRICT" }) @ManyToOne(() => User, (user) => user.payments, { nullable: false, onDelete: "SET NULL" })
user: User; user: User;
@ManyToOne(() => PaymentGateway, { nullable: false, onDelete: "RESTRICT" }) @ManyToOne(() => PaymentGateway, { nullable: false, onDelete: "RESTRICT" })
@@ -19,7 +19,7 @@ export class ReferralCode extends BaseEntity {
expiresAt: Date; expiresAt: Date;
//*********************************** */ //*********************************** */
@OneToOne(() => User, (user) => user.referralCode) @OneToOne(() => User, (user) => user.referralCode, { onDelete: "CASCADE" })
@JoinColumn() @JoinColumn()
user: User; user: User;
@@ -8,13 +8,13 @@ import { ReferralStatus } from "../enums/referral-status.enum";
@Entity() @Entity()
export class Referral extends BaseEntity { export class Referral extends BaseEntity {
@ManyToOne(() => User, (user) => user.referrals) @ManyToOne(() => User, (user) => user.referrals, { onDelete: "CASCADE" })
referrer: User; referrer: User;
@ManyToOne(() => User, (user) => user.referredBy) @ManyToOne(() => User, (user) => user.referredBy, { onDelete: "CASCADE" })
referredUser: User; referredUser: User;
@ManyToOne(() => ReferralCode, (code) => code.referrals) @ManyToOne(() => ReferralCode, (code) => code.referrals, { onDelete: "CASCADE" })
referralCode: ReferralCode; referralCode: ReferralCode;
@OneToMany(() => ReferralReward, (reward) => reward.referral) @OneToMany(() => ReferralReward, (reward) => reward.referral)
@@ -18,6 +18,6 @@ export class UserSetting extends BaseEntity {
@ManyToOne(() => NotificationSetting, (notifSetting) => notifSetting.userSettings, { nullable: false }) @ManyToOne(() => NotificationSetting, (notifSetting) => notifSetting.userSettings, { nullable: false })
notificationSetting: NotificationSetting; notificationSetting: NotificationSetting;
@ManyToOne(() => User, (user) => user.settings, { nullable: false }) @ManyToOne(() => User, (user) => user.settings, { nullable: false, onDelete: "CASCADE" })
user: User; user: User;
} }
@@ -25,17 +25,17 @@ export class Ticket extends BaseEntity {
@Column({ type: "enum", enum: TicketPriority, nullable: false }) @Column({ type: "enum", enum: TicketPriority, nullable: false })
priority: TicketPriority; priority: TicketPriority;
@ManyToOne(() => DanakService, (danakService) => danakService.tickets, { onDelete: "RESTRICT", nullable: true }) @ManyToOne(() => DanakService, (danakService) => danakService.tickets, { onDelete: "SET NULL", nullable: true })
danakService: DanakService | null; danakService: DanakService | null;
@ManyToOne(() => User, (user) => user.tickets, { nullable: true }) @ManyToOne(() => User, (user) => user.tickets, { nullable: true, onDelete: "SET NULL" })
assignedTo: User | null; assignedTo: User | null;
@ManyToOne(() => User, (user) => user.tickets, { onDelete: "CASCADE", nullable: false }) @ManyToOne(() => User, (user) => user.tickets, { onDelete: "CASCADE", nullable: false })
user: User; user: User;
@ManyToOne(() => TicketCategory, (category) => category.tickets, { onDelete: "RESTRICT", nullable: false }) @ManyToOne(() => TicketCategory, (category) => category.tickets, { onDelete: "SET NULL", nullable: true })
category: TicketCategory; category: TicketCategory | null;
@OneToMany(() => TicketMessage, (message) => message.ticket, { cascade: true }) @OneToMany(() => TicketMessage, (message) => message.ticket, { cascade: true })
messages: TicketMessage[]; messages: TicketMessage[];