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 { SMS_CONFIG, SMS_QUEUE } from './constants';
|
||||||
import { smsConfigsProvider } from 'src/config/sms.config';
|
import { smsConfigsProvider } from 'src/config/sms.config';
|
||||||
import { HttpModule } from '@nestjs/axios';
|
import { HttpModule } from '@nestjs/axios';
|
||||||
|
import { NotificationController } from './notification.controller';
|
||||||
|
import { NotificationService } from './providers/notification.service';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -14,10 +16,16 @@ import { HttpModule } from '@nestjs/axios';
|
|||||||
name: SMS_QUEUE,
|
name: SMS_QUEUE,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
providers: [SmsService, smsConfigsProvider, SmsProducer, SmsProcessor],
|
controllers: [NotificationController],
|
||||||
exports: [SmsProducer, SMS_CONFIG],
|
providers: [
|
||||||
|
SmsService,
|
||||||
|
smsConfigsProvider,
|
||||||
|
SmsProducer,
|
||||||
|
SmsProcessor,
|
||||||
|
NotificationService,
|
||||||
|
],
|
||||||
|
exports: [SmsProducer, SMS_CONFIG, NotificationService],
|
||||||
})
|
})
|
||||||
export class NotificationModule {}
|
export class NotificationModule {}
|
||||||
|
|
||||||
export { SMS_QUEUE };
|
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 { BaseEntity } from 'src/common/entities/base.entity';
|
||||||
import { Complaint } from 'src/modules/complaint/entities/complaint.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';
|
import { Column, Entity, OneToMany } from 'typeorm';
|
||||||
|
|
||||||
@Entity('organs')
|
@Entity('organs')
|
||||||
@@ -17,4 +18,7 @@ export class Organ extends BaseEntity {
|
|||||||
|
|
||||||
@OneToMany(() => Complaint, (complaint) => complaint.organ)
|
@OneToMany(() => Complaint, (complaint) => complaint.organ)
|
||||||
complaints: Complaint[];
|
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 { BaseEntity } from 'src/common/entities/base.entity';
|
||||||
import { Exclude } from 'class-transformer';
|
import { Exclude } from 'class-transformer';
|
||||||
import { UserRole } from './user-role.entity';
|
import { UserRole } from './user-role.entity';
|
||||||
import { Complaint } from 'src/modules/complaint/entities/complaint.entity';
|
import { Complaint } from 'src/modules/complaint/entities/complaint.entity';
|
||||||
|
import { AppNotification } from 'src/modules/notifications/entities/notification.entity';
|
||||||
|
|
||||||
@Entity('users')
|
@Entity('users')
|
||||||
export class User extends BaseEntity {
|
export class User extends BaseEntity {
|
||||||
@@ -39,4 +40,7 @@ export class User extends BaseEntity {
|
|||||||
cascade: true
|
cascade: true
|
||||||
})
|
})
|
||||||
complaints: Complaint[];
|
complaints: Complaint[];
|
||||||
|
|
||||||
|
@OneToMany(() => AppNotification, (notif) => notif.receiver)
|
||||||
|
notifications: AppNotification[];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user