/**
 * Adjustment type: CORRECTION or SCRAP
 */
export const InventoryAdjustmentAdjustmentType = {
  "CORRECTION": "CORRECTION",
  "SCRAP": "SCRAP"
} as const;
export type InventoryAdjustmentAdjustmentType = (typeof InventoryAdjustmentAdjustmentType)[keyof typeof InventoryAdjustmentAdjustmentType];

/**
 * Lifecycle status: DRAFT, PENDING_APPROVAL, APPROVED, REJECTED, CONFIRMED
 */
export const InventoryAdjustmentStatus = {
  "DRAFT": "DRAFT",
  "PENDING_APPROVAL": "PENDING_APPROVAL",
  "APPROVED": "APPROVED",
  "REJECTED": "REJECTED",
  "CONFIRMED": "CONFIRMED"
} as const;
export type InventoryAdjustmentStatus = (typeof InventoryAdjustmentStatus)[keyof typeof InventoryAdjustmentStatus];

/**
 * Count type: FULL (entire warehouse) or CYCLE (specific locations)
 */
export const InventoryCountCountType = {
  "FULL": "FULL",
  "CYCLE": "CYCLE"
} as const;
export type InventoryCountCountType = (typeof InventoryCountCountType)[keyof typeof InventoryCountCountType];

/**
 * Lifecycle status: PLANNED, IN_PROGRESS, COMPLETED, CANCELLED
 */
export const InventoryCountStatus = {
  "PLANNED": "PLANNED",
  "IN_PROGRESS": "IN_PROGRESS",
  "COMPLETED": "COMPLETED",
  "CANCELLED": "CANCELLED"
} as const;
export type InventoryCountStatus = (typeof InventoryCountStatus)[keyof typeof InventoryCountStatus];

/**
 * Review status: PENDING, APPROVED, REJECTED, RECOUNT
 */
export const InventoryCountLineStatus = {
  "PENDING": "PENDING",
  "APPROVED": "APPROVED",
  "REJECTED": "REJECTED",
  "RECOUNT": "RECOUNT"
} as const;
export type InventoryCountLineStatus = (typeof InventoryCountLineStatus)[keyof typeof InventoryCountLineStatus];

/**
 * Consumption status: ACTIVE or FULLY_CONSUMED
 */
export const LotStatus = {
  "ACTIVE": "ACTIVE",
  "FULLY_CONSUMED": "FULLY_CONSUMED"
} as const;
export type LotStatus = (typeof LotStatus)[keyof typeof LotStatus];

/**
 * Lifecycle status: AVAILABLE, ISSUED, RETURNED, SCRAPPED
 */
export const SerialNumberStatus = {
  "AVAILABLE": "AVAILABLE",
  "ISSUED": "ISSUED",
  "RETURNED": "RETURNED",
  "SCRAPPED": "SCRAPPED"
} as const;
export type SerialNumberStatus = (typeof SerialNumberStatus)[keyof typeof SerialNumberStatus];

/**
 * Movement type: GOODS_RECEIPT, GOODS_ISSUE, INTERNAL_TRANSFER, BLOCK, UNBLOCK
 */
export const StockMovementMovementType = {
  "GOODS_RECEIPT": "GOODS_RECEIPT",
  "GOODS_ISSUE": "GOODS_ISSUE",
  "INTERNAL_TRANSFER": "INTERNAL_TRANSFER",
  "BLOCK": "BLOCK",
  "UNBLOCK": "UNBLOCK"
} as const;
export type StockMovementMovementType = (typeof StockMovementMovementType)[keyof typeof StockMovementMovementType];

/**
 * Lifecycle status: DRAFT, CONFIRMED, DONE, CANCELLED
 */
export const StockMovementStatus = {
  "DRAFT": "DRAFT",
  "CONFIRMED": "CONFIRMED",
  "DONE": "DONE",
  "CANCELLED": "CANCELLED"
} as const;
export type StockMovementStatus = (typeof StockMovementStatus)[keyof typeof StockMovementStatus];

/**
 * Location type: zone or bin
 */
export const StorageLocationLocationType = {
  "zone": "zone",
  "bin": "bin"
} as const;
export type StorageLocationLocationType = (typeof StorageLocationLocationType)[keyof typeof StorageLocationLocationType];

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

/**
 * Costing method: FIFO, AVCO, or STANDARD_COST
 */
export const ValuationPolicyCostingMethod = {
  "FIFO": "FIFO",
  "AVCO": "AVCO",
  "STANDARD_COST": "STANDARD_COST"
} as const;
export type ValuationPolicyCostingMethod = (typeof ValuationPolicyCostingMethod)[keyof typeof ValuationPolicyCostingMethod];

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