/**
 * Purchase-order lifecycle status
 */
export const PurchaseOrderOrderStatus = {
  "DRAFT": "DRAFT",
  "SUBMITTED": "SUBMITTED",
  "ORDERED": "ORDERED",
  "CANCELLED": "CANCELLED",
  "CLOSED": "CLOSED"
} as const;
export type PurchaseOrderOrderStatus = (typeof PurchaseOrderOrderStatus)[keyof typeof PurchaseOrderOrderStatus];

/**
 * Receipt fulfillment status — set on approval
 */
export const PurchaseOrderReceiptStatus = {
  "NOT_RECEIVED": "NOT_RECEIVED",
  "PARTIALLY_RECEIVED": "PARTIALLY_RECEIVED",
  "RECEIVED": "RECEIVED"
} as const;
export type PurchaseOrderReceiptStatus = (typeof PurchaseOrderReceiptStatus)[keyof typeof PurchaseOrderReceiptStatus];

/**
 * Billing fulfillment status — set on approval
 */
export const PurchaseOrderBillingStatus = {
  "NOT_BILLED": "NOT_BILLED",
  "PARTIALLY_BILLED": "PARTIALLY_BILLED",
  "BILLED": "BILLED"
} as const;
export type PurchaseOrderBillingStatus = (typeof PurchaseOrderBillingStatus)[keyof typeof PurchaseOrderBillingStatus];

/**
 * Whether the changed field belongs to the PO header or one of its lines
 */
export const PurchaseOrderFieldChangeRecordType = {
  "HEADER": "HEADER",
  "LINE": "LINE"
} as const;
export type PurchaseOrderFieldChangeRecordType = (typeof PurchaseOrderFieldChangeRecordType)[keyof typeof PurchaseOrderFieldChangeRecordType];

/**
 * ADDED, MODIFIED, or REMOVED — describes the nature of the change
 */
export const PurchaseOrderFieldChangeChangeKind = {
  "ADDED": "ADDED",
  "MODIFIED": "MODIFIED",
  "REMOVED": "REMOVED"
} as const;
export type PurchaseOrderFieldChangeChangeKind = (typeof PurchaseOrderFieldChangeChangeKind)[keyof typeof PurchaseOrderFieldChangeChangeKind];

/**
 * Lifecycle status: ACTIVE, INACTIVE
 */
export const PurchasePriceListStatus = {
  "ACTIVE": "ACTIVE",
  "INACTIVE": "INACTIVE"
} as const;
export type PurchasePriceListStatus = (typeof PurchasePriceListStatus)[keyof typeof PurchasePriceListStatus];

/**
 * Lifecycle status: ACTIVE, INACTIVE
 */
export const PurchasePriceRuleStatus = {
  "ACTIVE": "ACTIVE",
  "INACTIVE": "INACTIVE"
} as const;
export type PurchasePriceRuleStatus = (typeof PurchasePriceRuleStatus)[keyof typeof PurchasePriceRuleStatus];

/**
 * Purchase-requisition lifecycle status
 */
export const PurchaseRequisitionStatus = {
  "DRAFT": "DRAFT",
  "SUBMITTED": "SUBMITTED",
  "APPROVED": "APPROVED",
  "CONVERTED": "CONVERTED",
  "CLOSED": "CLOSED",
  "CANCELLED": "CANCELLED"
} as const;
export type PurchaseRequisitionStatus = (typeof PurchaseRequisitionStatus)[keyof typeof PurchaseRequisitionStatus];
