This commit is contained in:
2026-01-14 12:00:13 +03:30
parent 4ab9de447a
commit 081f2cf4a7
26 changed files with 75 additions and 34927 deletions
+2 -2
View File
@@ -7,7 +7,7 @@ import { JwtModule } from '@nestjs/jwt';
import { ConfigService } from '@nestjs/config';
import { AdminModule } from '../admin/admin.module';
import { TokensService } from './services/tokens.service';
import { RestaurantsModule } from '../restaurants/restaurants.module';
import { MikroOrmModule } from '@mikro-orm/nestjs';
import { User } from '../user/entities/user.entity';
import { AdminAuthGuard } from './guards/adminAuth.guard';
@@ -33,7 +33,7 @@ import { NotificationsModule } from '../notification/notifications.module';
inject: [ConfigService],
}),
forwardRef(() => AdminModule),
forwardRef(() => RestaurantsModule),
MikroOrmModule.forFeature([User, RefreshToken]),
forwardRef(() => NotificationsModule),
@@ -2,11 +2,7 @@ import { IsString, IsNotEmpty, IsOptional, IsObject } from 'class-validator';
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
export class SendNotificationDto {
@ApiProperty({ description: 'Restaurant ID (ULID)' })
@IsString()
@IsNotEmpty()
: string;
@ApiPropertyOptional({ description: 'User ID (ULID)' })
@IsString()
@IsOptional()
@@ -12,7 +12,6 @@ import { SmsProcessor } from './processors/sms.processor';
import { PushProcessor } from './processors/push.processor';
import { NotificationsController } from './controllers/notifications.controller';
import { User } from '../user/entities/user.entity';
import { Restaurant } from '../restaurants/entities/restaurant.entity';
import { AuthModule } from '../auth/auth.module';
import { ConfigService } from '@nestjs/config';
import { NotificationQueueNameEnum } from './constants/queue';
@@ -26,14 +25,13 @@ import { NotificationCrone } from './crone/notification.crone';
import { SmsService } from './services/sms.service';
import { SmsLog } from './entities/smsLogs.entity';
import { SmsLogRepository } from './repositories/sms-log.repository';
import { RestaurantsModule } from '../restaurants/restaurants.module';
import { SmsListeners } from './listeners/sms.listeners';
@Module({
imports: [
forwardRef(() => AuthModule),
JwtModule,
MikroOrmModule.forFeature([Notification, NotificationPreference, User, Restaurant, SmsLog]),
MikroOrmModule.forFeature([Notification, NotificationPreference, User, SmsLog]),
BullModule.registerQueue(
{ name: NotificationQueueNameEnum.SMS },
{ name: NotificationQueueNameEnum.PUSH },
@@ -52,7 +50,6 @@ import { SmsListeners } from './listeners/sms.listeners';
AdminModule,
forwardRef(() => UserModule),
UtilsModule,
forwardRef(() => RestaurantsModule),
],
controllers: [NotificationsController],
providers: [
+4 -10
View File
@@ -5,12 +5,8 @@ import { OrdersController } from './controllers/orders.controller';
import { Order } from './entities/order.entity';
import { OrderItem } from './entities/order-item.entity';
import { User } from '../user/entities/user.entity';
import { Restaurant } from '../restaurants/entities/restaurant.entity';
import { product } from '../products/entities/product.entity';
import { Product } from '../product/entities/product.entity';
import { UserAddress } from '../user/entities/user-address.entity';
import { PaymentMethod } from '../payment/entities/payment-method.entity';
import { CartModule } from '../cart/cart.module';
import { UtilsModule } from '../util/utils.module';
import { AuthModule } from '../auth/auth.module';
import { PaymentsModule } from '../payment/payments.module';
import { JwtModule } from '@nestjs/jwt';
@@ -19,20 +15,18 @@ import { OrderListeners } from './listeners/order.listeners';
import { OrdersCrone } from './crone/order.crone';
import { AdminModule } from '../admin/admin.module';
import { NotificationsModule } from '../notification/notifications.module';
import { InventoryModule } from '../inventory/inventory.module';
import { UserModule } from '../user/user.module';
import { UtilsModule } from '../util/utils.module';
@Module({
imports: [
MikroOrmModule.forFeature([Order, OrderItem, User, Restaurant, product, UserAddress, PaymentMethod]),
CartModule,
UtilsModule,
MikroOrmModule.forFeature([Order, OrderItem, User, Product, UserAddress]),
AuthModule,
forwardRef(() => PaymentsModule),
JwtModule,
AdminModule,
NotificationsModule,
InventoryModule,
UtilsModule,
forwardRef(() => UserModule)
],
controllers: [OrdersController],
+3 -10
View File
@@ -1,10 +1,6 @@
import { Module, forwardRef } from '@nestjs/common';
import { PaymentsService } from './services/payments.service';
import { MikroOrmModule } from '@mikro-orm/nestjs';
import { PaymentMethod } from './entities/payment-method.entity';
import { PaymentMethodRepository } from './repositories/payment-method.repository';
import { PaymentMethodService } from './services/payment-method.service';
import { Restaurant } from '../restaurants/entities/restaurant.entity';
import { PaymentsController } from './controllers/payments.controller';
import { AuthModule } from '../auth/auth.module';
import { JwtModule } from '@nestjs/jwt';
@@ -12,23 +8,20 @@ import { Payment } from './entities/payment.entity';
import { ZarinpalGateway } from './gateways/zarinpal.gateway';
import { GatewayManager } from './gateways/gateway.manager';
import { PaymentRepository } from './repositories/payment.repository';
import { InventoryModule } from '../inventory/inventory.module';
import { PaymentListeners } from './listeners/payment.listeners';
import { AdminModule } from '../admin/admin.module';
import { NotificationsModule } from '../notification/notifications.module';
import { OrdersModule } from '../order/orders.module';
@Module({
imports: [MikroOrmModule.forFeature([PaymentMethod, Payment, Restaurant]),
AuthModule, JwtModule, InventoryModule, AdminModule, NotificationsModule,
imports: [MikroOrmModule.forFeature([Payment]),
AuthModule, JwtModule, AdminModule, NotificationsModule,
forwardRef(() => OrdersModule)],
controllers: [PaymentsController],
providers: [PaymentsService, PaymentMethodService, PaymentMethodRepository,
providers: [PaymentsService,
PaymentRepository, ZarinpalGateway, GatewayManager, PaymentListeners],
exports: [
PaymentMethodRepository,
PaymentRepository,
PaymentMethodService,
PaymentsService,
// PaymentGatewayService,
],
+8 -41
View File
@@ -1,58 +1,25 @@
import { BullModule } from "@nestjs/bullmq";
import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { TICKET } from "./constant";
import { TicketCategory } from "./entities/ticket-category.entity";
import { TicketMessage } from "./entities/ticket-message.entity";
import { Ticket } from "./entities/ticket.entity";
import { ReferralStrategyFactory } from "./providers/referral-strategy.factory";
import { TicketsService } from "./providers/tickets.service";
import { TicketCategoryRepository } from "./repositories/tickets-category.repository";
import { TicketMessagesRepository } from "./repositories/tickets-message.repository";
import { TicketsRepository } from "./repositories/tickets.repository";
import { TicketsController } from "./tickets.controller";
import { AccessLogsModule } from "../access-logs/access-logs.module";
import { UsersModule } from "../users/users.module";
import { TicketMessageAttachment } from "./entities/ticket-message-attachment";
import { TicketMessageAttachmentsRepository } from "./repositories/ticket-message-attachment.repository";
import { DanakServicesModule } from "../danak-services/danak-services.module";
import { NotificationModule } from "../notifications/notifications.module";
import { ReferralService } from "./providers/referral.service";
import { GroupStrategy } from "./strategies/group.strategy";
import { RoundRobinStrategy } from "./strategies/round-robin.strategy";
import { SupportPlansModule } from "../support-plans/support-plans.module";
import { TicketProcessor } from "./queue/ticket.processor";
import { LoggerModule } from "../logger/logger.module";
import { MikroOrmModule } from "@mikro-orm/nestjs";
@Module({
imports: [
TypeOrmModule.forFeature([Ticket, TicketCategory, TicketMessageAttachment, TicketMessage]),
AccessLogsModule,
MikroOrmModule.forFeature([Ticket]),
BullModule.registerQueue({ name: TICKET.QUEUE_NAME }),
UsersModule,
DanakServicesModule,
NotificationModule,
SupportPlansModule,
LoggerModule,
],
providers: [
GroupStrategy,
RoundRobinStrategy,
ReferralStrategyFactory,
{
provide: ReferralService,
useFactory: (strategyFactory: ReferralStrategyFactory) => new ReferralService(strategyFactory),
inject: [ReferralStrategyFactory],
},
TicketsService,
TicketsRepository,
TicketCategoryRepository,
TicketMessagesRepository,
TicketMessageAttachmentsRepository,
TicketProcessor,
],
providers: [TicketsService, TicketsRepository, TicketMessagesRepository],
controllers: [TicketsController],
exports: [TicketsService],
})
export class TicketsModule {}
export class TicketsModule { }