feat(product): implement sprint 9 product engagement module

This commit is contained in:
sdarbinyan
2026-07-09 00:45:36 +04:00
parent 10251f2fc6
commit 3ef0bd711d
59 changed files with 2060 additions and 74 deletions

View File

@@ -8,6 +8,7 @@ import { LocalizationConfig } from './localization.model';
import { NavigationConfig } from './navigation.model';
import { PageConfig } from './page.model';
import { PermissionsConfig } from './permissions.model';
import { ProductPageConfig } from './product-page-config.model';
import { SeoConfig } from './seo.model';
import { StaticPagesConfig } from './static-page.model';
import { TenantConfig } from './tenant.model';
@@ -29,6 +30,7 @@ export interface BootstrapConfig {
layout?: PlatformLayoutConfig;
navigation: NavigationConfig;
footer?: FooterConfig;
productPage?: ProductPageConfig;
pages: PageConfig[];
staticPages?: StaticPagesConfig;
widgetRegistry?: WidgetRegistryConfig;

View File

@@ -9,6 +9,7 @@ export * from './localization.model';
export * from './navigation.model';
export * from './page.model';
export * from './permissions.model';
export * from './product-page-config.model';
export * from './section.model';
export * from './seo.model';
export * from './static-page.model';

View File

@@ -0,0 +1,50 @@
export interface ProductSectionConfig {
enabled?: boolean;
}
export interface ProductRatingConfig extends ProductSectionConfig {}
export interface ProductReviewsConfig extends ProductSectionConfig {
pageSize?: number;
showSummary?: boolean;
}
export interface ProductQuestionsConfig extends ProductSectionConfig {
pageSize?: number;
}
export interface ProductTabsConfig extends ProductSectionConfig {
items?: Array<'description' | 'specifications' | 'reviews' | 'questions' | 'delivery' | 'warranty'>;
}
export interface ProductRelatedConfig extends ProductSectionConfig {}
export interface ProductPageConfig {
rating?: ProductRatingConfig;
reviews?: ProductReviewsConfig;
questions?: ProductQuestionsConfig;
tabs?: ProductTabsConfig;
relatedProducts?: ProductRelatedConfig;
}
export const DEFAULT_PRODUCT_PAGE_CONFIG: Required<ProductPageConfig> = {
rating: {
enabled: true
},
reviews: {
enabled: true,
pageSize: 5,
showSummary: true
},
questions: {
enabled: true,
pageSize: 5
},
tabs: {
enabled: true,
items: ['description', 'specifications', 'reviews', 'questions', 'delivery', 'warranty']
},
relatedProducts: {
enabled: true
}
};