Files
dbis_core/frontend/src/constants/offerTaxonomy.ts
defiQUG 6ebf71dda8 feat: SolaceNet gateway rails, IRU marketplace hardening, and docs
- Gateway adapter registry, rails routes, optional SOLACENET_GATEWAY_RAILS_ENFORCE; HTTP integration tests.
- IRU marketplace: rate limits, public routes, notifications/SMTP env docs; marketplace UI constants and flows.
- Quantum proxy legacy protocol types; debank/tezos/GSDS touch-ups; .env.example operator notes.
- SolaceNet doc set (gaps, runbooks, telecom schema example).

Tests: npm run test:iru-marketplace, npm run test:gateway (pass).
Note: full-repo tsc still reports unrelated legacy errors outside this change set.
Made-with: Cursor
2026-04-07 23:21:55 -07:00

58 lines
1.6 KiB
TypeScript

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',
};