Files
mercadodevida/project/src/modules/orders/index.ts
2026-08-22 07:09:03 +02:00

29 lines
1.1 KiB
TypeScript

/** Public API of the orders module. */
import type pg from 'pg';
import { OrderService } from './application/order-service.js';
import { PgOrderRepository } from './infrastructure/pg-order-repository.js';
import { NoOpOrderEventPublisher } from './infrastructure/no-op-event-publisher.js';
export { registerOrdersRoutes, type OrdersRoutesDeps } from './api/orders.routes.js';
export { OrderService } from './application/order-service.js';
export { OrderStateTransitionError, OrderNotFoundError } from './domain/errors.js';
export { ALLOWED_TRANSITIONS, isTransitionAllowed } from './domain/order.js';
export {
sendOrderStatusEmail,
buildOrderStatusEmail,
ORDER_STATE_LABELS,
type OrderStatusNotificationInput,
} from './infrastructure/order-status-mailer.js';
export type {
OrderEvent,
OrderEventPublisher,
OrderRepository,
OrderServicePort,
CreateOrderCommand,
} from './domain/ports.js';
export type { Order, OrderItem, OrderItemInput, OrderState, OrderView } from './domain/order.js';
export function createOrderService(pool: pg.Pool): OrderService {
return new OrderService(new PgOrderRepository(pool), new NoOpOrderEventPublisher());
}