Assist_Design/apps/bff/src/modules/orders/orders.module.ts
barsa a6bc9666e1 Enhance Dashboard and Notification Features
- Introduced MeStatus module to aggregate customer status, integrating dashboard summary, payment methods, internet eligibility, and residence card verification.
- Updated dashboard hooks to utilize MeStatus for improved data fetching and error handling.
- Enhanced notification handling across various modules, including cancellation notifications for internet and SIM services, ensuring timely user alerts.
- Refactored related schemas and services to support new dashboard tasks and notification types, improving overall user engagement and experience.
2025-12-23 17:53:08 +09:00

76 lines
3.2 KiB
TypeScript

import { Module } from "@nestjs/common";
import { OrdersController } from "./orders.controller.js";
import { CheckoutController } from "./controllers/checkout.controller.js";
import { IntegrationsModule } from "@bff/integrations/integrations.module.js";
import { MappingsModule } from "@bff/modules/id-mappings/mappings.module.js";
import { UsersModule } from "@bff/modules/users/users.module.js";
import { CoreConfigModule } from "@bff/core/config/config.module.js";
import { DatabaseModule } from "@bff/core/database/database.module.js";
import { CatalogModule } from "@bff/modules/catalog/catalog.module.js";
import { CacheModule } from "@bff/infra/cache/cache.module.js";
import { VerificationModule } from "@bff/modules/verification/verification.module.js";
import { NotificationsModule } from "@bff/modules/notifications/notifications.module.js";
// Clean modular order services
import { OrderValidator } from "./services/order-validator.service.js";
import { OrderBuilder } from "./services/order-builder.service.js";
import { OrderItemBuilder } from "./services/order-item-builder.service.js";
import { OrderPricebookService } from "./services/order-pricebook.service.js";
import { OrderOrchestrator } from "./services/order-orchestrator.service.js";
import { PaymentValidatorService } from "./services/payment-validator.service.js";
import { CheckoutService } from "./services/checkout.service.js";
import { CheckoutSessionService } from "./services/checkout-session.service.js";
import { OrderEventsService } from "./services/order-events.service.js";
import { OrdersCacheService } from "./services/orders-cache.service.js";
// Clean modular fulfillment services
import { OrderFulfillmentValidator } from "./services/order-fulfillment-validator.service.js";
import { OrderFulfillmentOrchestrator } from "./services/order-fulfillment-orchestrator.service.js";
import { OrderFulfillmentErrorService } from "./services/order-fulfillment-error.service.js";
import { SimFulfillmentService } from "./services/sim-fulfillment.service.js";
import { ProvisioningQueueService } from "./queue/provisioning.queue.js";
import { ProvisioningProcessor } from "./queue/provisioning.processor.js";
import { OrderFieldConfigModule } from "./config/order-field-config.module.js";
@Module({
imports: [
IntegrationsModule,
MappingsModule,
UsersModule,
CoreConfigModule,
DatabaseModule,
CatalogModule,
CacheModule,
VerificationModule,
NotificationsModule,
OrderFieldConfigModule,
],
controllers: [OrdersController, CheckoutController],
providers: [
// Shared services
PaymentValidatorService,
OrderEventsService,
// Order creation services (modular)
OrderValidator,
OrderBuilder,
OrderItemBuilder,
OrderPricebookService,
OrderOrchestrator,
OrdersCacheService,
CheckoutService,
CheckoutSessionService,
// Order fulfillment services (modular)
OrderFulfillmentValidator,
OrderFulfillmentOrchestrator,
OrderFulfillmentErrorService,
SimFulfillmentService,
// Async provisioning queue
ProvisioningQueueService,
ProvisioningProcessor,
],
exports: [OrderOrchestrator, CheckoutService, ProvisioningQueueService, OrdersCacheService],
})
export class OrdersModule {}