// @generated — do not edit
import { createDomainError } from "@tailor-platform/erp-kit/core";

export const CompanyNotFoundError = createDomainError(
  "CompanyNotFoundError", "COA_MANAGEMENT_COMPANY_NOT_FOUND",
  (identifier: string) => `Referenced company does not exist: ${identifier}`,
);

export const CompanyInactiveError = createDomainError(
  "CompanyInactiveError", "COA_MANAGEMENT_COMPANY_INACTIVE",
  (identifier: string) => `Referenced company is not in ACTIVE status: ${identifier}`,
);

export const DuplicateAccountCodeError = createDomainError(
  "DuplicateAccountCodeError", "COA_MANAGEMENT_DUPLICATE_ACCOUNT_CODE",
  (identifier: string) => `An account with the same code already exists in the company: ${identifier}`,
);

export const NameRequiredError = createDomainError(
  "NameRequiredError", "COA_MANAGEMENT_NAME_REQUIRED",
  (identifier: string) => `Name is empty, whitespace-only, or not provided: ${identifier}`,
);

export const InvalidAccountCodeError = createDomainError(
  "InvalidAccountCodeError", "COA_MANAGEMENT_INVALID_ACCOUNT_CODE",
  (identifier: string) => `Account code is not a valid numeric identifier: ${identifier}`,
);

export const AccountNotFoundError = createDomainError(
  "AccountNotFoundError", "COA_MANAGEMENT_ACCOUNT_NOT_FOUND",
  (identifier: string) => `Specified account ID does not exist: ${identifier}`,
);

export const InvalidStateTransitionError = createDomainError(
  "InvalidStateTransitionError", "COA_MANAGEMENT_INVALID_STATE_TRANSITION",
  (identifier: string) => `Requested state transition is not allowed from the current status: ${identifier}`,
);

export const OpenBalancesExistError = createDomainError(
  "OpenBalancesExistError", "COA_MANAGEMENT_OPEN_BALANCES_EXIST",
  (identifier: string) => `Pre-deactivation hook reports open or unreconciled balances: ${identifier}`,
);
