From 0f1ebbab7e8018541e29c6c4f71361d23bdc1830 Mon Sep 17 00:00:00 2001 From: sdarbinyan Date: Fri, 3 Jul 2026 01:31:24 +0400 Subject: [PATCH] phase-3: add bootstrap-aligned mock configuration payloads --- src/assets/mock/bootstrap/bootstrap.json | 253 ++++++++++++++++++++++ src/assets/mock/bootstrap/branding.json | 11 + src/assets/mock/bootstrap/categories.json | 16 ++ src/assets/mock/bootstrap/company.json | 18 ++ src/assets/mock/bootstrap/features.json | 13 ++ src/assets/mock/bootstrap/footer.json | 30 +++ src/assets/mock/bootstrap/homepage.json | 51 +++++ src/assets/mock/bootstrap/navigation.json | 45 ++++ src/assets/mock/bootstrap/products.json | 34 +++ src/assets/mock/bootstrap/settings.json | 75 +++++++ src/assets/mock/bootstrap/tenant.json | 15 ++ src/assets/mock/bootstrap/theme.json | 39 ++++ 12 files changed, 600 insertions(+) create mode 100644 src/assets/mock/bootstrap/bootstrap.json create mode 100644 src/assets/mock/bootstrap/branding.json create mode 100644 src/assets/mock/bootstrap/categories.json create mode 100644 src/assets/mock/bootstrap/company.json create mode 100644 src/assets/mock/bootstrap/features.json create mode 100644 src/assets/mock/bootstrap/footer.json create mode 100644 src/assets/mock/bootstrap/homepage.json create mode 100644 src/assets/mock/bootstrap/navigation.json create mode 100644 src/assets/mock/bootstrap/products.json create mode 100644 src/assets/mock/bootstrap/settings.json create mode 100644 src/assets/mock/bootstrap/tenant.json create mode 100644 src/assets/mock/bootstrap/theme.json diff --git a/src/assets/mock/bootstrap/bootstrap.json b/src/assets/mock/bootstrap/bootstrap.json new file mode 100644 index 0000000..d27321b --- /dev/null +++ b/src/assets/mock/bootstrap/bootstrap.json @@ -0,0 +1,253 @@ +{ + "schemaVersion": "1.0.0", + "generatedAt": "2026-07-03T00:00:00Z", + "tenant": { + "id": "tenant-default-001", + "slug": "default", + "code": "DEFAULT", + "host": "default.local", + "name": "Default Tenant", + "websiteBaseUrl": "https://default.local", + "builderBaseUrl": "https://builder.default.local", + "backofficeBaseUrl": "https://backoffice.default.local", + "defaultLocale": "ru", + "supportedLocales": ["ru", "en", "hy"], + "defaultCurrency": "RUB", + "supportedCurrencies": ["RUB", "USD", "EUR", "AMD"], + "timezone": "Europe/Moscow" + }, + "branding": { + "brandName": "Marketplace Platform Demo", + "legalName": "Marketplace Platform LLC", + "slogan": "Composable commerce for every tenant", + "logoUrl": "/assets/images/dexar-logo.svg", + "logoCompactUrl": "/assets/images/dexar-logo-small.svg", + "faviconUrl": "/favicon.ico", + "appIconUrl": "/assets/icons/icon-192x192.png", + "supportEmail": "support@example.com", + "supportPhone": "+7-900-000-00-00" + }, + "theme": { + "themeId": "default-light", + "mode": "light", + "palette": { + "primary": "#497671", + "secondary": "#a1b4b5", + "accent": "#a7ceca", + "success": "#10b981", + "warning": "#f59e0b", + "danger": "#ef4444", + "info": "#3b82f6", + "textPrimary": "#1e3c38", + "textSecondary": "#667a77", + "backgroundPrimary": "#ffffff", + "backgroundSecondary": "#f5f5f5", + "border": "#d3dad9" + }, + "typography": { + "primaryFontFamily": "DM Sans, sans-serif", + "headingFontFamily": "DM Sans, sans-serif", + "baseFontSize": 16 + }, + "spacing": { + "unit": 4, + "scale": [0, 4, 8, 12, 16, 24, 32, 48] + }, + "borderRadiusScale": { + "sm": "8px", + "md": "12px", + "lg": "16px", + "xl": "22px" + }, + "shadows": { + "sm": "0 2px 8px rgba(0,0,0,0.1)", + "md": "0 4px 12px rgba(0,0,0,0.15)", + "lg": "0 12px 32px rgba(73,118,113,0.2)" + }, + "iconSet": "default" + }, + "company": { + "companyName": "Marketplace Platform LLC", + "registrationNumber": "1027700000000", + "taxId": "7700000000", + "address": { + "country": "Russia", + "region": "Moscow", + "city": "Moscow", + "street": "Tverskaya 1", + "postalCode": "125009" + }, + "contacts": { + "email": "info@example.com", + "phone": "+7-900-000-00-00", + "telegram": "@platform_support", + "website": "https://default.local" + } + }, + "featureFlags": { + "wishlist": true, + "compare": true, + "reviews": true, + "blog": false, + "chat": false, + "analytics": true, + "notifications": true, + "coupons": true, + "loyalty": false, + "giftCards": false, + "invoices": true + }, + "apiEndpoints": { + "bootstrap": { + "path": "/bootstrap", + "method": "GET", + "timeoutMs": 10000 + }, + "website": {}, + "builder": {}, + "backoffice": {} + }, + "localization": { + "defaultLocale": "ru", + "supportedLocales": ["ru", "en", "hy"], + "currencyByLocale": { + "ru": "RUB", + "en": "USD", + "hy": "AMD" + }, + "dictionaries": [ + { + "locale": "ru", + "dictionaryUrl": "/assets/i18n/ru.json", + "version": "1.0.0" + }, + { + "locale": "en", + "dictionaryUrl": "/assets/i18n/en.json", + "version": "1.0.0" + }, + { + "locale": "hy", + "dictionaryUrl": "/assets/i18n/hy.json", + "version": "1.0.0" + } + ] + }, + "seo": { + "default": { + "title": "Marketplace Platform", + "description": "Configuration-driven multi-tenant marketplace platform", + "robots": "index,follow" + }, + "byPageKey": { + "home": { + "title": "Marketplace Platform - Home", + "description": "Home page generated from configuration", + "canonicalUrl": "https://default.local/", + "robots": "index,follow" + } + } + }, + "permissions": { + "definitions": [ + { + "key": "builder.pages.edit", + "description": "Edit pages in builder" + }, + { + "key": "backoffice.products.read", + "description": "Read products in backoffice" + } + ], + "roles": [ + { + "role": "builder_admin", + "permissions": ["builder.pages.edit"] + }, + { + "role": "backoffice_manager", + "permissions": ["backoffice.products.read"] + } + ] + }, + "navigation": { + "header": [ + { + "id": "nav-home", + "labelKey": "nav.home", + "route": "/", + "icon": "home", + "order": 1 + }, + { + "id": "nav-search", + "labelKey": "nav.search", + "route": "/search", + "icon": "search", + "order": 2 + }, + { + "id": "nav-cart", + "labelKey": "nav.cart", + "route": "/cart", + "icon": "cart", + "order": 3 + } + ], + "footer": [ + { + "id": "footer-about", + "labelKey": "nav.about", + "route": "/about", + "order": 1 + }, + { + "id": "footer-contacts", + "labelKey": "nav.contacts", + "route": "/contacts", + "order": 2 + }, + { + "id": "footer-privacy", + "labelKey": "nav.privacy", + "route": "/privacy-policy", + "order": 3 + } + ] + }, + "pages": [ + { + "id": "page-home", + "key": "home", + "title": "Home", + "route": { + "path": "/", + "exact": true + }, + "layout": "default-public", + "seoKey": "home", + "visible": true, + "sections": [ + { + "id": "section-hero", + "type": "hero", + "order": 1, + "visible": true, + "widgets": [ + { + "id": "widget-hero-main", + "type": "hero", + "version": "1.0.0", + "visible": true, + "props": { + "title": "Welcome to Marketplace Platform", + "subtitle": "Configuration-driven multi-tenant commerce", + "ctaLabel": "Start Shopping" + } + } + ] + } + ] + } + ] +} diff --git a/src/assets/mock/bootstrap/branding.json b/src/assets/mock/bootstrap/branding.json new file mode 100644 index 0000000..1d44dd0 --- /dev/null +++ b/src/assets/mock/bootstrap/branding.json @@ -0,0 +1,11 @@ +{ + "brandName": "Marketplace Platform Demo", + "legalName": "Marketplace Platform LLC", + "slogan": "Composable commerce for every tenant", + "logoUrl": "/assets/images/dexar-logo.svg", + "logoCompactUrl": "/assets/images/dexar-logo-small.svg", + "faviconUrl": "/favicon.ico", + "appIconUrl": "/assets/icons/icon-192x192.png", + "supportEmail": "support@example.com", + "supportPhone": "+7-900-000-00-00" +} diff --git a/src/assets/mock/bootstrap/categories.json b/src/assets/mock/bootstrap/categories.json new file mode 100644 index 0000000..eac9d5f --- /dev/null +++ b/src/assets/mock/bootstrap/categories.json @@ -0,0 +1,16 @@ +[ + { + "id": "cat-001", + "title": "Electronics", + "description": "Phones, laptops and accessories", + "imageUrl": "https://images.unsplash.com/photo-1498049794561-7780e7231661?w=400&h=300&fit=crop", + "itemsCount": 120 + }, + { + "id": "cat-002", + "title": "Clothing", + "description": "Fashion for everyone", + "imageUrl": "https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=400&h=300&fit=crop", + "itemsCount": 80 + } +] diff --git a/src/assets/mock/bootstrap/company.json b/src/assets/mock/bootstrap/company.json new file mode 100644 index 0000000..47b9e0a --- /dev/null +++ b/src/assets/mock/bootstrap/company.json @@ -0,0 +1,18 @@ +{ + "companyName": "Marketplace Platform LLC", + "registrationNumber": "1027700000000", + "taxId": "7700000000", + "address": { + "country": "Russia", + "region": "Moscow", + "city": "Moscow", + "street": "Tverskaya 1", + "postalCode": "125009" + }, + "contacts": { + "email": "info@example.com", + "phone": "+7-900-000-00-00", + "telegram": "@platform_support", + "website": "https://default.local" + } +} diff --git a/src/assets/mock/bootstrap/features.json b/src/assets/mock/bootstrap/features.json new file mode 100644 index 0000000..740588c --- /dev/null +++ b/src/assets/mock/bootstrap/features.json @@ -0,0 +1,13 @@ +{ + "wishlist": true, + "compare": true, + "reviews": true, + "blog": false, + "chat": false, + "analytics": true, + "notifications": true, + "coupons": true, + "loyalty": false, + "giftCards": false, + "invoices": true +} diff --git a/src/assets/mock/bootstrap/footer.json b/src/assets/mock/bootstrap/footer.json new file mode 100644 index 0000000..ad2cecf --- /dev/null +++ b/src/assets/mock/bootstrap/footer.json @@ -0,0 +1,30 @@ +{ + "id": "page-footer", + "key": "footer", + "title": "Footer", + "route": { + "path": "/_footer" + }, + "layout": "footer-layout", + "visible": true, + "sections": [ + { + "id": "section-footer-links", + "type": "footer-links", + "order": 1, + "visible": true, + "widgets": [ + { + "id": "widget-footer-nav", + "type": "footer-navigation", + "version": "1.0.0", + "visible": true, + "props": { + "columns": 3, + "showPayments": true + } + } + ] + } + ] +} diff --git a/src/assets/mock/bootstrap/homepage.json b/src/assets/mock/bootstrap/homepage.json new file mode 100644 index 0000000..d1224a9 --- /dev/null +++ b/src/assets/mock/bootstrap/homepage.json @@ -0,0 +1,51 @@ +{ + "id": "page-home", + "key": "home", + "title": "Home", + "route": { + "path": "/", + "exact": true + }, + "layout": "default-public", + "seoKey": "home", + "visible": true, + "sections": [ + { + "id": "section-hero", + "type": "hero", + "order": 1, + "visible": true, + "widgets": [ + { + "id": "widget-hero-main", + "type": "hero", + "version": "1.0.0", + "visible": true, + "props": { + "title": "Welcome to Marketplace Platform", + "subtitle": "Configuration-driven multi-tenant commerce", + "ctaLabel": "Start Shopping" + } + } + ] + }, + { + "id": "section-featured-products", + "type": "content-grid", + "order": 2, + "visible": true, + "widgets": [ + { + "id": "widget-featured-carousel", + "type": "product-carousel", + "version": "1.0.0", + "visible": true, + "props": { + "title": "Featured Products", + "source": "products.featured" + } + } + ] + } + ] +} diff --git a/src/assets/mock/bootstrap/navigation.json b/src/assets/mock/bootstrap/navigation.json new file mode 100644 index 0000000..5efdf26 --- /dev/null +++ b/src/assets/mock/bootstrap/navigation.json @@ -0,0 +1,45 @@ +{ + "header": [ + { + "id": "nav-home", + "labelKey": "nav.home", + "route": "/", + "icon": "home", + "order": 1 + }, + { + "id": "nav-search", + "labelKey": "nav.search", + "route": "/search", + "icon": "search", + "order": 2 + }, + { + "id": "nav-cart", + "labelKey": "nav.cart", + "route": "/cart", + "icon": "cart", + "order": 3 + } + ], + "footer": [ + { + "id": "footer-about", + "labelKey": "nav.about", + "route": "/about", + "order": 1 + }, + { + "id": "footer-contacts", + "labelKey": "nav.contacts", + "route": "/contacts", + "order": 2 + }, + { + "id": "footer-privacy", + "labelKey": "nav.privacy", + "route": "/privacy-policy", + "order": 3 + } + ] +} diff --git a/src/assets/mock/bootstrap/products.json b/src/assets/mock/bootstrap/products.json new file mode 100644 index 0000000..125f16d --- /dev/null +++ b/src/assets/mock/bootstrap/products.json @@ -0,0 +1,34 @@ +[ + { + "id": "prod-001", + "sku": "SKU-001", + "title": "Demo Product 1", + "subtitle": "Platform product mock", + "imageUrl": "https://images.unsplash.com/photo-1511707171634-5f897ff02aa9?w=600&h=400&fit=crop", + "badges": ["new"], + "tags": ["featured"], + "rating": 4.8, + "reviewsCount": 15, + "price": { + "amount": 149990, + "currency": "RUB", + "originalAmount": 169990 + }, + "stockStatus": "in_stock" + }, + { + "id": "prod-002", + "sku": "SKU-002", + "title": "Demo Product 2", + "imageUrl": "https://images.unsplash.com/photo-1496181133206-80ce9b88a853?w=600&h=400&fit=crop", + "badges": ["sale"], + "tags": ["bestseller"], + "rating": 4.6, + "reviewsCount": 8, + "price": { + "amount": 89990, + "currency": "RUB" + }, + "stockStatus": "low_stock" + } +] diff --git a/src/assets/mock/bootstrap/settings.json b/src/assets/mock/bootstrap/settings.json new file mode 100644 index 0000000..368d8c4 --- /dev/null +++ b/src/assets/mock/bootstrap/settings.json @@ -0,0 +1,75 @@ +{ + "localization": { + "defaultLocale": "ru", + "supportedLocales": ["ru", "en", "hy"], + "currencyByLocale": { + "ru": "RUB", + "en": "USD", + "hy": "AMD" + }, + "dictionaries": [ + { + "locale": "ru", + "dictionaryUrl": "/assets/i18n/ru.json", + "version": "1.0.0" + }, + { + "locale": "en", + "dictionaryUrl": "/assets/i18n/en.json", + "version": "1.0.0" + }, + { + "locale": "hy", + "dictionaryUrl": "/assets/i18n/hy.json", + "version": "1.0.0" + } + ] + }, + "seo": { + "default": { + "title": "Marketplace Platform", + "description": "Configuration-driven multi-tenant marketplace platform", + "robots": "index,follow" + }, + "byPageKey": { + "home": { + "title": "Marketplace Platform - Home", + "description": "Home page generated from configuration", + "canonicalUrl": "https://default.local/", + "robots": "index,follow" + } + } + }, + "permissions": { + "definitions": [ + { + "key": "builder.pages.edit", + "description": "Edit pages in builder" + }, + { + "key": "backoffice.products.read", + "description": "Read products in backoffice" + } + ], + "roles": [ + { + "role": "builder_admin", + "permissions": ["builder.pages.edit"] + }, + { + "role": "backoffice_manager", + "permissions": ["backoffice.products.read"] + } + ] + }, + "apiEndpoints": { + "bootstrap": { + "path": "/bootstrap", + "method": "GET", + "timeoutMs": 10000 + }, + "website": {}, + "builder": {}, + "backoffice": {} + } +} diff --git a/src/assets/mock/bootstrap/tenant.json b/src/assets/mock/bootstrap/tenant.json new file mode 100644 index 0000000..6e1d7f8 --- /dev/null +++ b/src/assets/mock/bootstrap/tenant.json @@ -0,0 +1,15 @@ +{ + "id": "tenant-default-001", + "slug": "default", + "code": "DEFAULT", + "host": "default.local", + "name": "Default Tenant", + "websiteBaseUrl": "https://default.local", + "builderBaseUrl": "https://builder.default.local", + "backofficeBaseUrl": "https://backoffice.default.local", + "defaultLocale": "ru", + "supportedLocales": ["ru", "en", "hy"], + "defaultCurrency": "RUB", + "supportedCurrencies": ["RUB", "USD", "EUR", "AMD"], + "timezone": "Europe/Moscow" +} diff --git a/src/assets/mock/bootstrap/theme.json b/src/assets/mock/bootstrap/theme.json new file mode 100644 index 0000000..0e481cb --- /dev/null +++ b/src/assets/mock/bootstrap/theme.json @@ -0,0 +1,39 @@ +{ + "themeId": "default-light", + "mode": "light", + "palette": { + "primary": "#497671", + "secondary": "#a1b4b5", + "accent": "#a7ceca", + "success": "#10b981", + "warning": "#f59e0b", + "danger": "#ef4444", + "info": "#3b82f6", + "textPrimary": "#1e3c38", + "textSecondary": "#667a77", + "backgroundPrimary": "#ffffff", + "backgroundSecondary": "#f5f5f5", + "border": "#d3dad9" + }, + "typography": { + "primaryFontFamily": "DM Sans, sans-serif", + "headingFontFamily": "DM Sans, sans-serif", + "baseFontSize": 16 + }, + "spacing": { + "unit": 4, + "scale": [0, 4, 8, 12, 16, 24, 32, 48] + }, + "borderRadiusScale": { + "sm": "8px", + "md": "12px", + "lg": "16px", + "xl": "22px" + }, + "shadows": { + "sm": "0 2px 8px rgba(0,0,0,0.1)", + "md": "0 4px 12px rgba(0,0,0,0.15)", + "lg": "0 12px 32px rgba(73,118,113,0.2)" + }, + "iconSet": "default" +}