- 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
58 lines
1.6 KiB
TypeScript
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',
|
|
};
|