import { ApiErrorMapper, ConflictApiError, ErrorToApiRule } from "@erp/core/api";
import { CustomerNotFoundError, isCustomerNotFoundError } from "../../domain";

// Crea una regla específica (prioridad alta para sobreescribir mensajes)
const customerNotFoundRule: ErrorToApiRule = {
  priority: 120,
  matches: (e) => isCustomerNotFoundError(e),
  build: (e) =>
    new ConflictApiError(
      (e as CustomerNotFoundError).message || "Customer with the provided id not exists."
    ),
};

// Cómo aplicarla: crea una nueva instancia del mapper con la regla extra
export const customersApiErrorMapper: ApiErrorMapper =
  ApiErrorMapper.default().register(customerNotFoundRule);
