/**
 * Allocation type
 */
export const AllocationCycleAllocationType = {
  "ASSESSMENT": "ASSESSMENT",
  "DISTRIBUTION": "DISTRIBUTION"
} as const;
export type AllocationCycleAllocationType = (typeof AllocationCycleAllocationType)[keyof typeof AllocationCycleAllocationType];

/**
 * Allocation cycle lifecycle status
 */
export const AllocationCycleStatus = {
  "DRAFT": "DRAFT",
  "VALIDATED": "VALIDATED",
  "EXECUTED": "EXECUTED",
  "POSTED": "POSTED",
  "REVERSED": "REVERSED"
} as const;
export type AllocationCycleStatus = (typeof AllocationCycleStatus)[keyof typeof AllocationCycleStatus];

/**
 * Budget lifecycle status
 */
export const BudgetStatus = {
  "DRAFT": "DRAFT",
  "SUBMITTED": "SUBMITTED",
  "APPROVED": "APPROVED",
  "ACTIVE": "ACTIVE",
  "CLOSED": "CLOSED"
} as const;
export type BudgetStatus = (typeof BudgetStatus)[keyof typeof BudgetStatus];

/**
 * Cost element type
 */
export const CostElementType = {
  "PRIMARY": "PRIMARY",
  "SECONDARY": "SECONDARY"
} as const;
export type CostElementType = (typeof CostElementType)[keyof typeof CostElementType];

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

/**
 * Internal order type
 */
export const InternalOrderOrderType = {
  "OVERHEAD": "OVERHEAD",
  "INVESTMENT": "INVESTMENT",
  "ACCRUAL": "ACCRUAL"
} as const;
export type InternalOrderOrderType = (typeof InternalOrderOrderType)[keyof typeof InternalOrderOrderType];

/**
 * Internal order lifecycle status
 */
export const InternalOrderStatus = {
  "CREATED": "CREATED",
  "RELEASED": "RELEASED",
  "TECHNICALLY_COMPLETED": "TECHNICALLY_COMPLETED",
  "CLOSED": "CLOSED"
} as const;
export type InternalOrderStatus = (typeof InternalOrderStatus)[keyof typeof InternalOrderStatus];

/**
 * Plan version type
 */
export const PlanVersionType = {
  "BUDGET": "BUDGET",
  "FORECAST": "FORECAST",
  "SIMULATION": "SIMULATION"
} as const;
export type PlanVersionType = (typeof PlanVersionType)[keyof typeof PlanVersionType];

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

/**
 * Variance report lifecycle status
 */
export const VarianceReportStatus = {
  "DRAFT": "DRAFT",
  "FINAL": "FINAL"
} as const;
export type VarianceReportStatus = (typeof VarianceReportStatus)[keyof typeof VarianceReportStatus];

/**
 * Direction of the variance
 */
export const VarianceReportLineVarianceDirection = {
  "FAVORABLE": "FAVORABLE",
  "UNFAVORABLE": "UNFAVORABLE"
} as const;
export type VarianceReportLineVarianceDirection = (typeof VarianceReportLineVarianceDirection)[keyof typeof VarianceReportLineVarianceDirection];
