import { defineEnum } from './define-enum';

export const GROUP_DEAL_STATE = [
  'COLLECTING',
  'THRESHOLD_MET',
  'EXECUTING',
  'PARTIAL_PENDING',
  'SUCCEEDED',
  'FAILED',
  'VENDOR_HONORED',
  'EXTENDED',
] as const;

export const groupDealState = defineEnum({
  name: 'group_deal_state',
  values: GROUP_DEAL_STATE,
  meta: {
    COLLECTING:      { order: 0, labelKey: 'collecting' },
    THRESHOLD_MET:   { order: 1, labelKey: 'threshold_met' },
    EXECUTING:       { order: 2, labelKey: 'executing' },
    PARTIAL_PENDING: { order: 3, labelKey: 'partial_pending' },
    SUCCEEDED:       { order: 4, labelKey: 'succeeded' },
    FAILED:          { order: 5, labelKey: 'failed' },
    VENDOR_HONORED:  { order: 6, labelKey: 'vendor_honored' },
    EXTENDED:        { order: 7, labelKey: 'extended' },
  },
});

export type GroupDealState = (typeof GROUP_DEAL_STATE)[number];
