feat: add relationships between user, notif, organ
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import { BaseEntity } from "src/common/entities/base.entity";
|
||||
import { Organ } from "src/modules/organ/entities/organ.entity";
|
||||
import { User } from "src/modules/users/entities/user.entity";
|
||||
import { Column, Entity, ManyToOne } from "typeorm";
|
||||
|
||||
@Entity('notifications')
|
||||
export class AppNotification extends BaseEntity {
|
||||
@Column({
|
||||
type: 'boolean'
|
||||
})
|
||||
isRead: boolean;
|
||||
|
||||
@ManyToOne(() => User, (user) => user.notifications)
|
||||
receiver: User;
|
||||
|
||||
@ManyToOne(() => Organ, (organ) => organ.sentNotifications)
|
||||
senderOrgan: Organ;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
import { Controller } from "@nestjs/common";
|
||||
|
||||
@Controller('notification')
|
||||
export class NotificationController {}
|
||||
@@ -6,6 +6,8 @@ import { SmsProcessor } from './processors/sms.processor';
|
||||
import { SMS_CONFIG, SMS_QUEUE } from './constants';
|
||||
import { smsConfigsProvider } from 'src/config/sms.config';
|
||||
import { HttpModule } from '@nestjs/axios';
|
||||
import { NotificationController } from './notification.controller';
|
||||
import { NotificationService } from './providers/notification.service';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -14,10 +16,16 @@ import { HttpModule } from '@nestjs/axios';
|
||||
name: SMS_QUEUE,
|
||||
}),
|
||||
],
|
||||
providers: [SmsService, smsConfigsProvider, SmsProducer, SmsProcessor],
|
||||
exports: [SmsProducer, SMS_CONFIG],
|
||||
controllers: [NotificationController],
|
||||
providers: [
|
||||
SmsService,
|
||||
smsConfigsProvider,
|
||||
SmsProducer,
|
||||
SmsProcessor,
|
||||
NotificationService,
|
||||
],
|
||||
exports: [SmsProducer, SMS_CONFIG, NotificationService],
|
||||
})
|
||||
export class NotificationModule {}
|
||||
|
||||
export { SMS_QUEUE };
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
|
||||
@Injectable()
|
||||
export class NotificationService {}
|
||||
@@ -1,5 +1,6 @@
|
||||
import { BaseEntity } from 'src/common/entities/base.entity';
|
||||
import { Complaint } from 'src/modules/complaint/entities/complaint.entity';
|
||||
import { AppNotification } from 'src/modules/notifications/entities/notification.entity';
|
||||
import { Column, Entity, OneToMany } from 'typeorm';
|
||||
|
||||
@Entity('organs')
|
||||
@@ -17,4 +18,7 @@ export class Organ extends BaseEntity {
|
||||
|
||||
@OneToMany(() => Complaint, (complaint) => complaint.organ)
|
||||
complaints: Complaint[];
|
||||
|
||||
@OneToMany(() => AppNotification, (notif) => notif.senderOrgan)
|
||||
sentNotifications: AppNotification;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { Entity, Column, ManyToMany, JoinTable, OneToMany } from 'typeorm';
|
||||
import { Entity, Column, OneToMany } from 'typeorm';
|
||||
import { BaseEntity } from 'src/common/entities/base.entity';
|
||||
import { Exclude } from 'class-transformer';
|
||||
import { UserRole } from './user-role.entity';
|
||||
import { Complaint } from 'src/modules/complaint/entities/complaint.entity';
|
||||
import { AppNotification } from 'src/modules/notifications/entities/notification.entity';
|
||||
|
||||
@Entity('users')
|
||||
export class User extends BaseEntity {
|
||||
@@ -39,4 +40,7 @@ export class User extends BaseEntity {
|
||||
cascade: true
|
||||
})
|
||||
complaints: Complaint[];
|
||||
|
||||
@OneToMany(() => AppNotification, (notif) => notif.receiver)
|
||||
notifications: AppNotification[];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user