export type OfferType = 'native' | 'partner';
export type CommercialModel =
  | 'IRU'
  | 'SaaS'
  | 'managed_service'
  | 'reserved_capacity'
  | 'custom';
export type SupportOwner = 'sankofa' | 'partner' | 'shared';
export type FulfillmentMode = 'self_service' | 'request_only' | 'operator_provisioned';
export type BillingMode = 'subscription' | 'contract' | 'quote';
export type OfferStatus = 'active' | 'preview' | 'request_only';

export interface OfferMetadata {
  offerType: OfferType;
  commercialModel: CommercialModel;
  supportOwner: SupportOwner;
  fulfillmentMode: FulfillmentMode;
  billingMode: BillingMode;
  status: OfferStatus;
}

export const OFFER_TYPE_LABELS: Record<OfferType, string> = {
  native: 'Native offer',
  partner: 'Partner offer',
};

export const COMMERCIAL_MODEL_LABELS: Record<CommercialModel, string> = {
  IRU: 'IRU',
  SaaS: 'SaaS',
  managed_service: 'Managed service',
  reserved_capacity: 'Reserved capacity',
  custom: 'Custom commercial model',
};

export const SUPPORT_OWNER_LABELS: Record<SupportOwner, string> = {
  sankofa: 'Sankofa support',
  partner: 'Partner support',
  shared: 'Shared support',
};

export const FULFILLMENT_MODE_LABELS: Record<FulfillmentMode, string> = {
  self_service: 'Self-service',
  request_only: 'Request only',
  operator_provisioned: 'Operator provisioned',
};

export const BILLING_MODE_LABELS: Record<BillingMode, string> = {
  subscription: 'Subscription billing',
  contract: 'Contract billing',
  quote: 'Quote-based billing',
};

export const OFFER_STATUS_LABELS: Record<OfferStatus, string> = {
  active: 'Active',
  preview: 'Preview',
  request_only: 'Request only',
};
