/**
 * Channel lifecycle status
 */
export const ChannelStatus = {
  "DRAFT": "DRAFT",
  "ACTIVE": "ACTIVE",
  "INACTIVE": "INACTIVE"
} as const;
export type ChannelStatus = (typeof ChannelStatus)[keyof typeof ChannelStatus];

/**
 * Channel-order lifecycle status
 */
export const ChannelOrderStatus = {
  "PENDING_CONVERSION": "PENDING_CONVERSION",
  "CONVERTED": "CONVERTED",
  "EXCEPTION": "EXCEPTION",
  "CANCELLED_BY_CHANNEL": "CANCELLED_BY_CHANNEL"
} as const;
export type ChannelOrderStatus = (typeof ChannelOrderStatus)[keyof typeof ChannelOrderStatus];

/**
 * Listing lifecycle status
 */
export const ListingStatus = {
  "DRAFT": "DRAFT",
  "PAUSED": "PAUSED",
  "ACTIVE": "ACTIVE",
  "RETIRED": "RETIRED"
} as const;
export type ListingStatus = (typeof ListingStatus)[keyof typeof ListingStatus];

/**
 * Credit-note lifecycle status
 */
export const SalesCreditNoteStatus = {
  "DRAFT": "DRAFT",
  "ISSUED": "ISSUED"
} as const;
export type SalesCreditNoteStatus = (typeof SalesCreditNoteStatus)[keyof typeof SalesCreditNoteStatus];

/**
 * Sales-invoice lifecycle status
 */
export const SalesInvoiceStatus = {
  "DRAFT": "DRAFT",
  "ISSUED": "ISSUED",
  "SENT": "SENT",
  "CANCELLED": "CANCELLED"
} as const;
export type SalesInvoiceStatus = (typeof SalesInvoiceStatus)[keyof typeof SalesInvoiceStatus];

/**
 * Sales-order lifecycle status
 */
export const SalesOrderStatus = {
  "DRAFT": "DRAFT",
  "SUBMITTED": "SUBMITTED",
  "CONFIRMED": "CONFIRMED",
  "PARTIALLY_SHIPPED": "PARTIALLY_SHIPPED",
  "PARTIALLY_INVOICED": "PARTIALLY_INVOICED",
  "SHIPPED": "SHIPPED",
  "INVOICED": "INVOICED",
  "CREDIT_HOLD": "CREDIT_HOLD",
  "CANCELLED": "CANCELLED",
  "CLOSED": "CLOSED"
} as const;
export type SalesOrderStatus = (typeof SalesOrderStatus)[keyof typeof SalesOrderStatus];

/**
 * Payment-term lifecycle status
 */
export const SalesPaymentTermStatus = {
  "DRAFT": "DRAFT",
  "ACTIVE": "ACTIVE",
  "INACTIVE": "INACTIVE"
} as const;
export type SalesPaymentTermStatus = (typeof SalesPaymentTermStatus)[keyof typeof SalesPaymentTermStatus];

/**
 * Price-list lifecycle status
 */
export const SalesPriceListStatus = {
  "DRAFT": "DRAFT",
  "ACTIVE": "ACTIVE",
  "INACTIVE": "INACTIVE"
} as const;
export type SalesPriceListStatus = (typeof SalesPriceListStatus)[keyof typeof SalesPriceListStatus];

/**
 * Rule lifecycle status
 */
export const SalesPriceRuleStatus = {
  "DRAFT": "DRAFT",
  "ACTIVE": "ACTIVE",
  "INACTIVE": "INACTIVE"
} as const;
export type SalesPriceRuleStatus = (typeof SalesPriceRuleStatus)[keyof typeof SalesPriceRuleStatus];

/**
 * Shipment lifecycle status
 */
export const ShipmentStatus = {
  "DRAFT": "DRAFT",
  "POSTED": "POSTED"
} as const;
export type ShipmentStatus = (typeof ShipmentStatus)[keyof typeof ShipmentStatus];

/**
 * Sync-job lifecycle status
 */
export const SyncJobStatus = {
  "RUNNING": "RUNNING",
  "SUCCEEDED": "SUCCEEDED",
  "PARTIALLY_SUCCEEDED": "PARTIALLY_SUCCEEDED",
  "FAILED": "FAILED",
  "CANCELLED": "CANCELLED"
} as const;
export type SyncJobStatus = (typeof SyncJobStatus)[keyof typeof SyncJobStatus];
