Files
goodgo-platform/apps/api/src/modules/payments/index.ts
Ho Ngoc Hai 312532b1cb fix(api): resolve NestJS DI + ValidationPipe bugs from type-only imports
- Remove `type` modifier from imports used as DI constructor params
  across ~235 files (@Injectable, @Controller, @Module, @Catch,
  @CommandHandler, @QueryHandler, @EventsHandler, @WebSocketGateway).
  TypeScript emitDecoratorMetadata strips type-only imports, leaving
  Reflect.metadata with Function placeholder and breaking Nest DI.
- Fix controllers: DTOs used with @Body/@Query/@Param must be runtime
  imports so ValidationPipe can whitelist properties. Previously
  returned 400 "property X should not exist" on every request.
- Register ProjectsModule in AppModule (was defined but never wired).
- Add approve()/reject() methods to TransferListingEntity referenced by
  ModerateTransferListingHandler.
- Export BankTransferConfirmedEvent from payments barrel for
  subscription activation handler.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 21:50:30 +07:00

30 lines
1.5 KiB
TypeScript

export { PaymentsModule } from './payments.module';
// Repositories
export { ESCROW_REPOSITORY, IEscrowRepository } from './domain/repositories/escrow.repository';
export { ORDER_REPOSITORY, IOrderRepository } from './domain/repositories/order.repository';
export { PAYMENT_REPOSITORY, IPaymentRepository } from './domain/repositories/payment.repository';
// Gateway
export { PAYMENT_GATEWAY_FACTORY, IPaymentGatewayFactory } from './infrastructure/services/payment-gateway.interface';
// Commands
export { CreatePaymentCommand } from './application/commands/create-payment/create-payment.command';
export type { CreatePaymentResult } from './application/commands/create-payment/create-payment.handler';
// Domain Events — Payment
export { PaymentCompletedEvent } from './domain/events/payment-completed.event';
export { PaymentFailedEvent } from './domain/events/payment-failed.event';
export { PaymentRefundedEvent } from './domain/events/payment-refunded.event';
export { BankTransferConfirmedEvent } from './domain/events/bank-transfer-confirmed.event';
// Domain Events — Order
export { OrderCreatedEvent } from './domain/events/order-created.event';
export { OrderCancelledEvent } from './domain/events/order-cancelled.event';
export { OrderPaidEvent } from './domain/events/order-paid.event';
// Domain Events — Escrow
export { EscrowDisputedEvent } from './domain/events/escrow-disputed.event';
export { EscrowHeldEvent } from './domain/events/escrow-held.event';
export { EscrowReleasedEvent } from './domain/events/escrow-released.event';