import { ApiEndpointsConfig } from './api-endpoints.model'; import { BrandingConfig } from './branding.model'; import { CatalogConfig } from './catalog-config.model'; import { CompanyConfig } from './company.model'; import { FeatureFlagsConfig } from './feature-flags.model'; import { MarketplaceFeaturesConfig } from './features-config.model'; import { FooterConfig } from './footer-config.model'; import { HeaderConfig } from './header-config.model'; import { PlatformLayoutConfig } from './layout.model'; import { LocalizationConfig } from './localization.model'; import { NavigationConfig } from './navigation.model'; import { PageConfig } from './page.model'; import { PermissionsConfig } from './permissions.model'; import { PlatformModulesConfig } from './platform-modules.model'; import { ProductPageConfig } from './product-page-config.model'; import { SellerConfig } from './seller.model'; import { SeoConfig } from './seo.model'; import { StaticPagesConfig } from './static-page.model'; import { TenantConfig } from './tenant.model'; import { ThemeConfig } from './theme.model'; import { UserExperienceConfig } from './user-experience-config.model'; import { WidgetRegistryConfig } from './widget-registry.model'; export interface BootstrapConfig { schemaVersion: string; generatedAt: string; published: boolean; tenant: TenantConfig; branding: BrandingConfig; theme: ThemeConfig; company: CompanyConfig; featureFlags: FeatureFlagsConfig; features?: MarketplaceFeaturesConfig; apiEndpoints: ApiEndpointsConfig; localization: LocalizationConfig; seo: SeoConfig; permissions: PermissionsConfig; header?: HeaderConfig; catalog?: CatalogConfig; layout?: PlatformLayoutConfig; navigation: NavigationConfig; footer?: FooterConfig; productPage?: ProductPageConfig; userExperience?: UserExperienceConfig; pages: PageConfig[]; staticPages?: StaticPagesConfig; widgetRegistry?: WidgetRegistryConfig; /** * Optional platform capability modules (e.g. Seller Management). Absent or * `undefined` means every module is disabled - existing marketplaces that * never send this field continue to behave exactly as today. See ADR-011. */ modules?: PlatformModulesConfig; /** * Present only when `modules.sellerManagement.enabled` is true and the * resolved request scope is beneath a specific seller. Absent for every * marketplace-level request, including all existing marketplaces. The * frontend never resolves this itself (ADR-001, ADR-011) - it only reads * whatever the backend already decided. */ seller?: SellerConfig; }