/**
 * BOM type: MANUFACTURE, PHANTOM, KIT
 */
export const BillOfMaterialBomType = {
  "MANUFACTURE": "MANUFACTURE",
  "PHANTOM": "PHANTOM",
  "KIT": "KIT"
} as const;
export type BillOfMaterialBomType = (typeof BillOfMaterialBomType)[keyof typeof BillOfMaterialBomType];

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

/**
 * Variance type: MATERIAL_PRICE, MATERIAL_USAGE, LABOR_RATE, LABOR_EFFICIENCY, MACHINE_RATE, MACHINE_EFFICIENCY, SCRAP, YIELD
 */
export const CostVarianceLineVarianceType = {
  "MATERIAL_PRICE": "MATERIAL_PRICE",
  "MATERIAL_USAGE": "MATERIAL_USAGE",
  "LABOR_RATE": "LABOR_RATE",
  "LABOR_EFFICIENCY": "LABOR_EFFICIENCY",
  "MACHINE_RATE": "MACHINE_RATE",
  "MACHINE_EFFICIENCY": "MACHINE_EFFICIENCY",
  "SCRAP": "SCRAP",
  "YIELD": "YIELD"
} as const;
export type CostVarianceLineVarianceType = (typeof CostVarianceLineVarianceType)[keyof typeof CostVarianceLineVarianceType];

/**
 * Lifecycle status: COLLECTING, PENDING_VARIANCE_REVIEW, VARIANCE_REVIEWED, SETTLED
 */
export const ManufacturingCostSummaryStatus = {
  "COLLECTING": "COLLECTING",
  "PENDING_VARIANCE_REVIEW": "PENDING_VARIANCE_REVIEW",
  "VARIANCE_REVIEWED": "VARIANCE_REVIEWED",
  "SETTLED": "SETTLED"
} as const;
export type ManufacturingCostSummaryStatus = (typeof ManufacturingCostSummaryStatus)[keyof typeof ManufacturingCostSummaryStatus];

/**
 * Lifecycle status: DRAFT, RELEASED, IN_PROGRESS, COMPLETED, TECHNICALLY_COMPLETE, CLOSED, CANCELLED
 */
export const ProductionOrderStatus = {
  "DRAFT": "DRAFT",
  "RELEASED": "RELEASED",
  "CANCELLED": "CANCELLED",
  "IN_PROGRESS": "IN_PROGRESS",
  "COMPLETED": "COMPLETED",
  "TECHNICALLY_COMPLETE": "TECHNICALLY_COMPLETE",
  "CLOSED": "CLOSED"
} as const;
export type ProductionOrderStatus = (typeof ProductionOrderStatus)[keyof typeof ProductionOrderStatus];

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

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

/**
 * Method for absorbing overhead: PERCENT_OF_LABOR_COST, PERCENT_OF_MACHINE_COST, or FIXED_AMOUNT_PER_GOOD_UNIT
 */
export const WorkCenterOverheadAbsorptionMethod = {
  "PERCENT_OF_LABOR_COST": "PERCENT_OF_LABOR_COST",
  "PERCENT_OF_MACHINE_COST": "PERCENT_OF_MACHINE_COST",
  "FIXED_AMOUNT_PER_GOOD_UNIT": "FIXED_AMOUNT_PER_GOOD_UNIT"
} as const;
export type WorkCenterOverheadAbsorptionMethod = (typeof WorkCenterOverheadAbsorptionMethod)[keyof typeof WorkCenterOverheadAbsorptionMethod];

/**
 * Lifecycle status: PENDING, IN_PROGRESS, PAUSED, COMPLETE, CANCELLED
 */
export const WorkOrderStatus = {
  "PENDING": "PENDING",
  "IN_PROGRESS": "IN_PROGRESS",
  "PAUSED": "PAUSED",
  "COMPLETE": "COMPLETE",
  "CANCELLED": "CANCELLED"
} as const;
export type WorkOrderStatus = (typeof WorkOrderStatus)[keyof typeof WorkOrderStatus];

/**
 * Event type: STARTED, PAUSED, RESUMED, PROGRESS_REPORTED, COMPLETED
 */
export const WorkOrderExecutionEventEventType = {
  "STARTED": "STARTED",
  "PAUSED": "PAUSED",
  "RESUMED": "RESUMED",
  "PROGRESS_REPORTED": "PROGRESS_REPORTED",
  "COMPLETED": "COMPLETED"
} as const;
export type WorkOrderExecutionEventEventType = (typeof WorkOrderExecutionEventEventType)[keyof typeof WorkOrderExecutionEventEventType];
