import { Module, forwardRef } from '@nestjs/common';
import { CommerceController } from './commerce.controller';
import { WooCommerceWebhookController } from './woocommerce-webhook.controller';
import { PublicTrackingController } from './public-tracking.controller';
import { ProductsService } from './services/products.service';
import { SyncQueueService } from './services/sync-queue.service';
import { CartsService } from './services/carts.service';
import { OrdersService } from './services/orders.service';
import { OrderEventsService } from './services/order-events.service';
import { DeliveryTrackingService } from './services/delivery-tracking.service';
import { ConnectorModule } from '../connectors/connector.module';
import { PaymentModule } from '../payments/payment.module';
import { BusinessModule } from '../business/business.module';

@Module({
  imports: [ConnectorModule, forwardRef(() => PaymentModule), BusinessModule],
  providers: [ProductsService, SyncQueueService, CartsService, OrdersService, OrderEventsService, DeliveryTrackingService],
  controllers: [CommerceController, WooCommerceWebhookController, PublicTrackingController],
  exports: [ProductsService, SyncQueueService, CartsService, OrdersService, OrderEventsService, DeliveryTrackingService],
})
export class CommerceModule {}
