/**
 * Period type
 */
export const AccountingPeriodPeriodType = {
  "OPERATING": "OPERATING",
  "ADJUSTMENT": "ADJUSTMENT"
} as const;
export type AccountingPeriodPeriodType = (typeof AccountingPeriodPeriodType)[keyof typeof AccountingPeriodPeriodType];

/**
 * Accounting period lifecycle status
 */
export const AccountingPeriodStatus = {
  "NEVER_OPENED": "NEVER_OPENED",
  "OPEN": "OPEN",
  "CLOSED": "CLOSED",
  "PERMANENTLY_CLOSED": "PERMANENTLY_CLOSED"
} as const;
export type AccountingPeriodStatus = (typeof AccountingPeriodStatus)[keyof typeof AccountingPeriodStatus];

/**
 * Journal entry lifecycle status (DRAFT, CANCELLED, POSTED)
 */
export const JournalEntryStatus = {
  "DRAFT": "DRAFT",
  "CANCELLED": "CANCELLED",
  "POSTED": "POSTED"
} as const;
export type JournalEntryStatus = (typeof JournalEntryStatus)[keyof typeof JournalEntryStatus];

/**
 * Optional source document type that produced the accounting entry
 */
export const JournalEntrySourceDocumentType = {
  "ACCOUNT_PAYABLE_DOCUMENT": "ACCOUNT_PAYABLE_DOCUMENT",
  "PURCHASE_BILL": "PURCHASE_BILL",
  "SALES_INVOICE": "SALES_INVOICE",
  "INVENTORY_EXECUTION": "INVENTORY_EXECUTION",
  "PRODUCTION_ORDER": "PRODUCTION_ORDER",
  "YEAR_END_CLOSE": "YEAR_END_CLOSE"
} as const;
export type JournalEntrySourceDocumentType = (typeof JournalEntrySourceDocumentType)[keyof typeof JournalEntrySourceDocumentType];
