@snabcentr/client-core 2.64.2 → 2.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/cart/internal/sc-i-cart-item-dto.d.ts +2 -2
  2. package/catalog/classes/index.d.ts +1 -0
  3. package/catalog/classes/sc-catalog-item.d.ts +31 -0
  4. package/catalog/dto/index.d.ts +0 -2
  5. package/catalog/dto/sc-category.d.ts +18 -51
  6. package/catalog/dto/sc-product.d.ts +26 -51
  7. package/catalog/dto/sc-virtual-category.d.ts +13 -30
  8. package/catalog/interfaces/index.d.ts +4 -0
  9. package/catalog/interfaces/sc-i-catalog-item.d.ts +16 -0
  10. package/catalog/interfaces/sc-i-category.d.ts +29 -0
  11. package/catalog/{internal/sc-i-product-dto.d.ts → interfaces/sc-i-product.d.ts} +8 -27
  12. package/catalog/interfaces/sc-i-virtual-category.d.ts +20 -0
  13. package/catalog/internal/index.d.ts +0 -4
  14. package/catalog/services/sc-catalog.service.d.ts +3 -2
  15. package/catalog/services/sc-favorite.service.d.ts +1 -1
  16. package/common/classes/index.d.ts +9 -0
  17. package/common/classes/sc-catalogable-item.d.ts +17 -0
  18. package/common/classes/sc-coded-identity.d.ts +17 -0
  19. package/common/classes/sc-deletable-named-identity.d.ts +17 -0
  20. package/common/classes/sc-hidden-catalogable-item.d.ts +17 -0
  21. package/common/classes/sc-identity.d.ts +25 -0
  22. package/common/classes/sc-image.d.ts +6 -8
  23. package/common/classes/sc-named-identity.d.ts +17 -0
  24. package/common/classes/sc-primary-catalogable-item.d.ts +17 -0
  25. package/common/classes/sc-reference.d.ts +21 -0
  26. package/common/classes/sc-updatable-named-identity.d.ts +17 -0
  27. package/common/index.d.ts +1 -1
  28. package/common/interfaces/index.d.ts +16 -0
  29. package/common/interfaces/sc-i-catalogable-item.d.ts +10 -0
  30. package/common/interfaces/sc-i-coded-identity.d.ts +10 -0
  31. package/common/interfaces/sc-i-created-at.d.ts +9 -0
  32. package/common/interfaces/sc-i-date-period.d.ts +6 -0
  33. package/common/interfaces/sc-i-deletable-named-identity.d.ts +7 -0
  34. package/common/interfaces/sc-i-deleted-at.d.ts +9 -0
  35. package/common/interfaces/sc-i-file.d.ts +13 -0
  36. package/common/interfaces/sc-i-hidden-catalogable-item.d.ts +10 -0
  37. package/common/interfaces/sc-i-identity.d.ts +13 -0
  38. package/common/interfaces/sc-i-image.d.ts +1 -1
  39. package/common/interfaces/sc-i-named-identity.d.ts +7 -0
  40. package/common/interfaces/sc-i-named.d.ts +9 -0
  41. package/common/interfaces/sc-i-primary-catalogable-item.d.ts +10 -0
  42. package/common/interfaces/sc-i-reference.d.ts +14 -0
  43. package/common/interfaces/sc-i-typed-nullable-range.d.ts +13 -0
  44. package/common/interfaces/sc-i-updatable-named-identity.d.ts +7 -0
  45. package/common/interfaces/sc-i-updated-at.d.ts +9 -0
  46. package/config/index.d.ts +0 -1
  47. package/esm2022/cart/internal/sc-i-cart-item-dto.mjs +1 -1
  48. package/esm2022/catalog/classes/index.mjs +2 -1
  49. package/esm2022/catalog/classes/sc-catalog-item.mjs +19 -0
  50. package/esm2022/catalog/dto/index.mjs +1 -3
  51. package/esm2022/catalog/dto/sc-category.mjs +20 -38
  52. package/esm2022/catalog/dto/sc-product.mjs +27 -32
  53. package/esm2022/catalog/dto/sc-virtual-category.mjs +11 -14
  54. package/esm2022/catalog/interfaces/index.mjs +5 -1
  55. package/esm2022/catalog/interfaces/sc-i-catalog-item.mjs +2 -0
  56. package/esm2022/catalog/interfaces/sc-i-category.mjs +3 -0
  57. package/esm2022/catalog/interfaces/sc-i-product.mjs +3 -0
  58. package/esm2022/catalog/interfaces/sc-i-virtual-category.mjs +2 -0
  59. package/esm2022/catalog/internal/index.mjs +1 -5
  60. package/esm2022/catalog/services/sc-catalog.service.mjs +1 -1
  61. package/esm2022/catalog/services/sc-favorite.service.mjs +2 -2
  62. package/esm2022/catalog/services/sc-recommendation.service.mjs +1 -1
  63. package/esm2022/common/classes/index.mjs +10 -1
  64. package/esm2022/common/classes/sc-catalogable-item.mjs +16 -0
  65. package/esm2022/common/classes/sc-coded-identity.mjs +21 -0
  66. package/esm2022/common/classes/sc-deletable-named-identity.mjs +18 -0
  67. package/esm2022/common/classes/sc-hidden-catalogable-item.mjs +16 -0
  68. package/esm2022/common/classes/sc-identity.mjs +23 -0
  69. package/esm2022/common/classes/sc-image.mjs +7 -9
  70. package/esm2022/common/classes/sc-named-identity.mjs +21 -0
  71. package/esm2022/common/classes/sc-primary-catalogable-item.mjs +16 -0
  72. package/esm2022/common/classes/sc-reference.mjs +17 -0
  73. package/esm2022/common/classes/sc-updatable-named-identity.mjs +18 -0
  74. package/esm2022/common/index.mjs +2 -2
  75. package/esm2022/common/interfaces/index.mjs +17 -1
  76. package/esm2022/common/interfaces/sc-i-catalogable-item.mjs +2 -0
  77. package/esm2022/common/interfaces/sc-i-coded-identity.mjs +2 -0
  78. package/esm2022/common/interfaces/sc-i-created-at.mjs +2 -0
  79. package/esm2022/common/interfaces/sc-i-date-period.mjs +2 -0
  80. package/esm2022/common/interfaces/sc-i-deletable-named-identity.mjs +2 -0
  81. package/esm2022/common/interfaces/sc-i-deleted-at.mjs +2 -0
  82. package/esm2022/common/interfaces/sc-i-file.mjs +2 -0
  83. package/esm2022/common/interfaces/sc-i-hidden-catalogable-item.mjs +2 -0
  84. package/esm2022/common/interfaces/sc-i-identity.mjs +2 -0
  85. package/esm2022/common/interfaces/sc-i-image.mjs +1 -1
  86. package/esm2022/common/interfaces/sc-i-named-identity.mjs +2 -0
  87. package/esm2022/common/interfaces/sc-i-named.mjs +2 -0
  88. package/esm2022/common/interfaces/sc-i-primary-catalogable-item.mjs +2 -0
  89. package/esm2022/common/interfaces/sc-i-reference.mjs +2 -0
  90. package/esm2022/common/interfaces/sc-i-typed-nullable-range.mjs +2 -0
  91. package/esm2022/common/interfaces/sc-i-updatable-named-identity.mjs +2 -0
  92. package/esm2022/common/interfaces/sc-i-updated-at.mjs +2 -0
  93. package/esm2022/config/index.mjs +1 -2
  94. package/esm2022/configurator/services/sc-configurator.service.mjs +1 -1
  95. package/esm2022/guards/index.mjs +1 -2
  96. package/esm2022/helpers/sc-image-helper.mjs +13 -3
  97. package/esm2022/helpers/sc-units-helper.mjs +1 -1
  98. package/esm2022/news/classes/index.mjs +1 -5
  99. package/esm2022/news/classes/sc-news.mjs +13 -12
  100. package/esm2022/news/index.mjs +4 -7
  101. package/esm2022/news/interfaces/index.mjs +3 -0
  102. package/esm2022/news/interfaces/sc-i-news-tile.mjs +2 -0
  103. package/esm2022/news/interfaces/sc-i-news.mjs +2 -0
  104. package/esm2022/news/services/index.mjs +2 -0
  105. package/esm2022/news/services/sc-news.service.mjs +2 -2
  106. package/esm2022/news/tokens/index.mjs +2 -0
  107. package/esm2022/public-api.mjs +2 -6
  108. package/esm2022/search/services/sc-search.service.mjs +5 -5
  109. package/esm2022/seo/classes/index.mjs +2 -0
  110. package/esm2022/seo/classes/schema-org-factory.mjs +269 -0
  111. package/esm2022/seo/index.mjs +5 -0
  112. package/esm2022/seo/interfaces/index.mjs +5 -0
  113. package/esm2022/seo/interfaces/sc-i-default-page-meta.mjs +2 -0
  114. package/esm2022/seo/interfaces/sc-i-schema-org-breadcrumb-list.mjs +2 -0
  115. package/esm2022/seo/interfaces/sc-i-seo-resource.mjs +2 -0
  116. package/esm2022/seo/interfaces/sc-i-seo.mjs +2 -0
  117. package/esm2022/seo/services/index.mjs +2 -0
  118. package/esm2022/seo/services/sc-seo.service.mjs +206 -0
  119. package/esm2022/seo/types/index.mjs +2 -0
  120. package/esm2022/seo/types/robots-tag-type.mjs +2 -0
  121. package/esm2022/tokens/sc-default-page-meta.mjs +1 -1
  122. package/fesm2022/snabcentr-client-core.mjs +782 -588
  123. package/fesm2022/snabcentr-client-core.mjs.map +1 -1
  124. package/guards/index.d.ts +0 -1
  125. package/helpers/sc-image-helper.d.ts +1 -1
  126. package/helpers/sc-units-helper.d.ts +1 -1
  127. package/news/classes/index.d.ts +0 -1
  128. package/news/classes/sc-news.d.ts +18 -13
  129. package/news/index.d.ts +3 -3
  130. package/news/interfaces/index.d.ts +2 -0
  131. package/news/interfaces/sc-i-news-tile.d.ts +22 -0
  132. package/news/interfaces/sc-i-news.d.ts +11 -0
  133. package/news/services/index.d.ts +1 -0
  134. package/news/services/sc-news.service.d.ts +4 -3
  135. package/news/tokens/index.d.ts +1 -0
  136. package/package.json +1 -1
  137. package/public-api.d.ts +1 -2
  138. package/search/services/sc-search.service.d.ts +5 -4
  139. package/seo/classes/index.d.ts +1 -0
  140. package/seo/classes/schema-org-factory.d.ts +88 -0
  141. package/seo/index.d.ts +4 -0
  142. package/seo/interfaces/index.d.ts +4 -0
  143. package/seo/interfaces/sc-i-default-page-meta.d.ts +17 -0
  144. package/seo/interfaces/sc-i-schema-org-breadcrumb-list.d.ts +34 -0
  145. package/seo/interfaces/sc-i-seo-resource.d.ts +14 -0
  146. package/{catalog/dto → seo/interfaces}/sc-i-seo.d.ts +3 -14
  147. package/seo/services/index.d.ts +1 -0
  148. package/seo/services/sc-seo.service.d.ts +125 -0
  149. package/seo/types/index.d.ts +1 -0
  150. package/tokens/sc-default-page-meta.d.ts +1 -1
  151. package/catalog/dto/sc-i-seo-resource.d.ts +0 -10
  152. package/catalog/dto/sc-seo-resource.d.ts +0 -22
  153. package/catalog/internal/sc-i-category-dto.d.ts +0 -48
  154. package/catalog/internal/sc-i-seo-resource-dto.d.ts +0 -10
  155. package/catalog/internal/sc-i-virtual-category-dto.d.ts +0 -37
  156. package/config/sc-i-default-page-meta.d.ts +0 -17
  157. package/esm2022/catalog/dto/sc-i-seo-resource.mjs +0 -2
  158. package/esm2022/catalog/dto/sc-i-seo.mjs +0 -2
  159. package/esm2022/catalog/dto/sc-seo-resource.mjs +0 -23
  160. package/esm2022/catalog/internal/sc-i-category-dto.mjs +0 -3
  161. package/esm2022/catalog/internal/sc-i-product-dto.mjs +0 -2
  162. package/esm2022/catalog/internal/sc-i-seo-resource-dto.mjs +0 -2
  163. package/esm2022/catalog/internal/sc-i-virtual-category-dto.mjs +0 -2
  164. package/esm2022/config/sc-i-default-page-meta.mjs +0 -2
  165. package/esm2022/guards/catalog-seo.guard.mjs +0 -71
  166. package/esm2022/news/classes/sc-news-tile.mjs +0 -2
  167. package/esm2022/news/internal/sc-i-news-dto.mjs +0 -2
  168. package/esm2022/sc-json-ld/index.mjs +0 -3
  169. package/esm2022/sc-json-ld/sc-json-ld.component.mjs +0 -49
  170. package/esm2022/sc-json-ld/sc-json-ld.module.mjs +0 -19
  171. package/esm2022/services/index.mjs +0 -3
  172. package/esm2022/services/sc-seo.service.mjs +0 -271
  173. package/esm2022/services/types/robots-tag-type.mjs +0 -2
  174. package/guards/catalog-seo.guard.d.ts +0 -14
  175. package/news/classes/sc-news-tile.d.ts +0 -25
  176. package/news/internal/sc-i-news-dto.d.ts +0 -30
  177. package/sc-json-ld/index.d.ts +0 -2
  178. package/sc-json-ld/sc-json-ld.component.d.ts +0 -31
  179. package/sc-json-ld/sc-json-ld.module.d.ts +0 -10
  180. package/services/index.d.ts +0 -2
  181. package/services/sc-seo.service.d.ts +0 -184
  182. /package/{services → seo}/types/robots-tag-type.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { ScIProductDTO } from '../../catalog/internal/sc-i-product-dto';
1
+ import { ScIProduct } from '../../catalog/interfaces/sc-i-product';
2
2
  import { ScIConfiguratorSearchProductBase } from '../../configurator/dto/sc-i-configurator-search-product-base';
3
3
  /**
4
4
  * DTO единичной позиции товара/услуги в корзине.
@@ -13,7 +13,7 @@ export interface ScICartItemDTO {
13
13
  /**
14
14
  * Данные о товаре. Равен `null` если товар отсутствует.
15
15
  */
16
- product: ScIProductDTO | null;
16
+ product: ScIProduct | null;
17
17
  /**
18
18
  * Количество товара/услуги.
19
19
  */
@@ -1,2 +1,3 @@
1
1
  export * from './sc-cached-data';
2
2
  export * from './sc-cached-item';
3
+ export * from './sc-catalog-item';
@@ -0,0 +1,31 @@
1
+ import { ScCatalogableItem } from '../../common/classes/sc-catalogable-item';
2
+ import { ScISeo } from '../../seo/interfaces/sc-i-seo';
3
+ import { ScIProperties } from '../dto/sc-i-properties';
4
+ import { ScICatalogItem } from '../interfaces/sc-i-catalog-item';
5
+ /**
6
+ * Данные об элементе каталога.
7
+ */
8
+ export declare class ScCatalogItem<P> extends ScCatalogableItem implements ScICatalogItem<P> {
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ parentCategory?: P;
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ properties?: ScIProperties;
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ seo?: ScISeo;
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ image?: string;
25
+ /**
26
+ * Инициализирует экземпляр класса {@link ScCatalogItem}.
27
+ *
28
+ * @param data Данные для первоначальной инициализации.
29
+ */
30
+ constructor(data?: ScICatalogItem<P>);
31
+ }
@@ -1,9 +1,7 @@
1
1
  export * from './sc-i-discount';
2
2
  export * from './sc-i-product-images';
3
- export * from './sc-i-seo';
4
3
  export * from './sc-i-properties';
5
4
  export * from './sc-category';
6
5
  export * from './sc-product';
7
6
  export * from './sc-virtual-category';
8
- export * from './sc-seo-resource';
9
7
  export * from './sc-i-product-notify-when-in-stock';
@@ -1,13 +1,12 @@
1
1
  import { ScIConfiguratorSettingsBase } from '../../configurator/dto/sc-i-configurator-settings-base';
2
- import { ScICategoryDTO } from '../internal/sc-i-category-dto';
2
+ import { ScCatalogItem } from '../classes/sc-catalog-item';
3
+ import { ScICategory } from '../interfaces/sc-i-category';
4
+ import { ScIProduct } from '../interfaces/sc-i-product';
3
5
  import { ScIFilterTreeCategory } from '../internal/sc-i-filter-tree-category';
4
- import { ScIProperties } from './sc-i-properties';
5
- import { ScProduct } from './sc-product';
6
- import { ScSeoResource } from './sc-seo-resource';
7
6
  /**
8
7
  * Модель данных категории товаров.
9
8
  */
10
- export declare class ScCategory extends ScSeoResource implements ScICategoryDTO {
9
+ export declare class ScCategory extends ScCatalogItem<ScICategory> implements ScICategory {
11
10
  /**
12
11
  * Признак, что категория является избранной для клиента.
13
12
  *
@@ -15,57 +14,35 @@ export declare class ScCategory extends ScSeoResource implements ScICategoryDTO
15
14
  */
16
15
  get isFavorite(): boolean;
17
16
  /**
18
- * Идентификатор категории.
17
+ * @inheritDoc
19
18
  */
20
- id: number;
19
+ isHidden: boolean;
21
20
  /**
22
- * Символьное обозначение (slug) категории.
23
- */
24
- slug: string;
25
- /**
26
- * Название категории.
27
- */
28
- name: string;
29
- /**
30
- * Признак того, что категория является основной для некоторого товара или услуги.
21
+ * @inheritDoc
31
22
  */
32
23
  isPrimary?: boolean;
33
24
  /**
34
- * Список свойств. Число свойств в объекте не ограничено.
25
+ * @inheritDoc
35
26
  */
36
- properties?: ScIProperties;
27
+ categories?: ScICategory[];
37
28
  /**
38
- * Объект родительской категории.
29
+ * @inheritDoc
39
30
  */
40
- parentCategory?: ScCategory;
31
+ products?: ScIProduct[];
41
32
  /**
42
- * Список дочерних категорий.
33
+ * @inheritDoc
43
34
  */
44
- categories?: ScCategory[];
35
+ hasChild?: boolean;
45
36
  /**
46
- * Признак наличия дочерних категорий.
37
+ * @inheritDoc
47
38
  */
48
- hasChild?: boolean;
39
+ configuratorSettings?: ScIConfiguratorSettingsBase;
49
40
  /**
50
41
  * Дата загрузки категории.
51
42
  *
52
43
  * @deprecated
53
44
  */
54
45
  loadedAt?: Date;
55
- /**
56
- * Признак, что информация о категории загружается.
57
- *
58
- * @deprecated
59
- */
60
- isLoading: boolean;
61
- /**
62
- * Список товаров в категории.
63
- */
64
- products?: ScProduct[];
65
- /**
66
- * Настройки конфигуратора.
67
- */
68
- configuratorSettings?: ScIConfiguratorSettingsBase;
69
46
  /**
70
47
  * Признак, что в категории необходимо отобразить конфигуратор.
71
48
  */
@@ -76,12 +53,6 @@ export declare class ScCategory extends ScSeoResource implements ScICategoryDTO
76
53
  * @deprecated
77
54
  */
78
55
  filter?: ScIFilterTreeCategory | '*';
79
- /**
80
- * Признак, что категория является скелетоном.
81
- *
82
- * @deprecated
83
- */
84
- isSkeleton: boolean;
85
56
  /**
86
57
  * Признак, что категория является избранной для клиента.
87
58
  */
@@ -89,9 +60,9 @@ export declare class ScCategory extends ScSeoResource implements ScICategoryDTO
89
60
  /**
90
61
  * Инициализирует экземпляр класса {@link ScCategory}.
91
62
  *
92
- * @param categoryDTO DTO с данными о категории товаров.
63
+ * @param data DTO с данными о категории товаров.
93
64
  */
94
- constructor(categoryDTO: ScICategoryDTO);
65
+ constructor(data: ScICategory);
95
66
  /**
96
67
  * Возвращает среднюю стоимость м2.
97
68
  */
@@ -100,10 +71,6 @@ export declare class ScCategory extends ScSeoResource implements ScICategoryDTO
100
71
  * Признак, что в категории есть товары для отображения.
101
72
  */
102
73
  get isNotHiddenProducts(): boolean;
103
- /**
104
- * Признак, что в категории или вложенных подкатегориях есть товары для отображения.
105
- */
106
- get isNotHiddenProductsIncludeSubcategories(): boolean;
107
74
  /**
108
75
  * Признак, что категория является избранной для клиента.
109
76
  *
@@ -155,7 +122,7 @@ export declare class ScCategory extends ScSeoResource implements ScICategoryDTO
155
122
  * @param sortFcn Функция сортировки товаров.
156
123
  * @deprecated
157
124
  */
158
- sortProduct(sortFcn: ((a: ScProduct, b: ScProduct) => number) | undefined): void;
125
+ sortProduct(sortFcn: ((a: ScIProduct, b: ScIProduct) => number) | undefined): void;
159
126
  /**
160
127
  * Устанавливает флаг избранных товаров клиента всем вложенным позициям на основе флага из родительской категории.
161
128
  *
@@ -3,105 +3,84 @@ import { ScICurrency } from '../../references/dto/sc-i-currency';
3
3
  import { ScIProductUnit } from '../../references/dto/sc-i-product-unit';
4
4
  import { ScIWarehouseStockCount } from '../../warehouse/dto/sc-i-warehouse-stock-count';
5
5
  import { ScIWarehouse } from '../../warehouse/dto/sc-warehouse';
6
- import { ScIProductDTO } from '../internal/sc-i-product-dto';
6
+ import { ScCatalogItem } from '../classes/sc-catalog-item';
7
+ import { ScICategory } from '../interfaces/sc-i-category';
8
+ import { ScIProduct } from '../interfaces/sc-i-product';
7
9
  import { ScPriceHistory } from '../types/sc-price-history';
8
- import { ScCategory } from './sc-category';
9
10
  import { ScIDiscount } from './sc-i-discount';
10
11
  import { ScIProductImages } from './sc-i-product-images';
11
- import { ScIProperties } from './sc-i-properties';
12
- import { ScSeoResource } from './sc-seo-resource';
13
12
  /**
14
13
  * Модель данных товара/услуги.
15
14
  */
16
- export declare class ScProduct extends ScSeoResource implements ScIProductDTO {
15
+ export declare class ScProduct extends ScCatalogItem<ScICategory> implements ScIProduct {
17
16
  /**
18
- * Идентификатор товара/услуги.
17
+ * @inheritDoc
19
18
  */
20
- id: number;
19
+ isHidden: boolean;
21
20
  /**
22
- * Символьное обозначение (slug) товара.
23
- */
24
- slug: string;
25
- /**
26
- * Артикул.
27
- */
28
- code: string;
29
- /**
30
- * Артикул поставщика.
21
+ * @inheritDoc
31
22
  */
32
23
  supplierSku?: string;
33
24
  /**
34
- * Название товара.
35
- */
36
- name: string;
37
- /**
38
- * Стоимость товара или услуги в валюте.
25
+ * С@inheritDoc
39
26
  */
40
27
  cost?: number;
41
28
  /**
42
- * Стоимость товара или услуги в рублях.
29
+ * @inheritDoc
43
30
  */
44
31
  costRub?: number;
45
32
  /**
46
- * Дата установки цены.
33
+ * @inheritDoc
47
34
  */
48
35
  costDate?: string;
49
36
  /**
50
- * Валюта товара или услуги.
37
+ * @inheritDoc
51
38
  */
52
39
  currency: ScICurrency;
53
40
  /**
54
- * Единица измерения.
41
+ * @inheritDoc
55
42
  */
56
43
  unit: ScIProductUnit;
57
44
  /**
58
- * Минимальное количество товара для заказа.
45
+ * @inheritDoc
59
46
  */
60
47
  minCount?: number;
61
48
  /**
62
- * Данные о количество товара, доступном на складах.
49
+ * @inheritDoc
63
50
  */
64
51
  stockCount?: ScIWarehouseStockCount[];
65
52
  /**
66
- * Признак товара "Под заказ".
53
+ * @inheritDoc
67
54
  */
68
55
  onOrder?: boolean;
69
56
  /**
70
- * Норма упаковки.
57
+ * @inheritDoc
71
58
  */
72
59
  pack?: string;
73
60
  /**
74
- * Признак, что товар, услуга или категория являются избранными для клиента.
61
+ * @inheritDoc
75
62
  */
76
63
  isFavorite: boolean;
77
64
  /**
78
- * Признак, что товар или услуга, был ранее заказан.
65
+ * @inheritDoc
79
66
  */
80
67
  isPreviouslyOrdered?: boolean;
81
68
  /**
82
- * Список изображений.
69
+ * @inheritDoc
83
70
  */
84
71
  readonly images?: readonly ScIProductImages[];
85
72
  /**
86
- * Список категорий товара.
73
+ * @inheritDoc
87
74
  */
88
- categories: ScCategory[];
75
+ categories: ScICategory[];
89
76
  /**
90
- * Список свойств. Число свойств в объекте не ограничено.
91
- */
92
- properties?: ScIProperties;
93
- /**
94
- * Данные о клиентской скидке.
77
+ * @inheritDoc
95
78
  */
96
79
  discount?: ScIDiscount;
97
80
  /**
98
- * Родительская категория, в которой находится товар или услуга.
99
- */
100
- parentCategory?: ScCategory;
101
- /**
102
- * Основная категория для товара или услуги.
81
+ * @inheritDoc
103
82
  */
104
- primaryCategory?: ScCategory;
83
+ primaryCategory?: ScICategory;
105
84
  /**
106
85
  * Признак наличия изображения у товара.
107
86
  */
@@ -130,17 +109,13 @@ export declare class ScProduct extends ScSeoResource implements ScIProductDTO {
130
109
  * Признак необходимости игнорировать проверку минимального количества и кратности при добавлении товара в корзину и создании заказа.
131
110
  */
132
111
  ignoreMinCountCheck: boolean;
133
- /**
134
- * Признак того, что продукт является скрытым.
135
- */
136
- isHidden?: boolean;
137
112
  /**
138
113
  * Инициализирует экземпляр класса {@link ScProduct}.
139
114
  *
140
- * @param productDTO Данные о продукте.
115
+ * @param data Данные о продукте.
141
116
  * @param ord Порядок следования продукта в списке.
142
117
  */
143
- constructor(productDTO: ScIProductDTO | null, ord?: number);
118
+ constructor(data: ScIProduct | null, ord?: number);
144
119
  /**
145
120
  * Стоимость товара или услуги с валютой и единицей измерения.
146
121
  */
@@ -1,44 +1,27 @@
1
- import { ScIVirtualCategoryDTO } from '../internal/sc-i-virtual-category-dto';
2
- import { ScCategory } from './sc-category';
3
- import { ScIProperties } from './sc-i-properties';
4
- import { ScProduct } from './sc-product';
5
- import { ScSeoResource } from './sc-seo-resource';
1
+ import { ScCatalogItem } from '../classes/sc-catalog-item';
2
+ import { ScICategory } from '../interfaces/sc-i-category';
3
+ import { ScIProduct } from '../interfaces/sc-i-product';
4
+ import { ScIVirtualCategory } from '../interfaces/sc-i-virtual-category';
6
5
  /**
7
6
  * Данные о виртуальной категории.
8
7
  */
9
- export declare class ScVirtualCategory extends ScSeoResource implements ScIVirtualCategoryDTO {
8
+ export declare class ScVirtualCategory extends ScCatalogItem<ScIVirtualCategory> implements ScIVirtualCategory {
10
9
  /**
11
- * Название категории.
10
+ * @inheritDoc
12
11
  */
13
- name: string;
12
+ childCategories?: ScIVirtualCategory[];
14
13
  /**
15
- * Символьный идентификатор виртуальной категории.
14
+ * @inheritDoc
16
15
  */
17
- slug: string;
16
+ products?: ScIProduct[];
18
17
  /**
19
- * Список свойств. Число свойств в объекте не ограничено.
18
+ * @inheritDoc
20
19
  */
21
- properties?: ScIProperties;
22
- /**
23
- * Данные о родительской виртуальной категории.
24
- */
25
- parentCategory?: ScVirtualCategory;
26
- /**
27
- * Список дочерних виртуальных категорий.
28
- */
29
- childCategories?: ScVirtualCategory[];
30
- /**
31
- * Список продуктов привязанных к виртуальной категории.
32
- */
33
- products?: ScProduct[];
34
- /**
35
- * Список категорий продуктов привязанных к виртуальной категории.
36
- */
37
- productCategories?: ScCategory[];
20
+ productCategories?: ScICategory[];
38
21
  /**
39
22
  * Инициализирует экземпляр класса {@link ScVirtualCategory}.
40
23
  *
41
- * @param virtualCategoryDTO Данные о виртуальной категории.
24
+ * @param data Данные о виртуальной категории.
42
25
  */
43
- constructor(virtualCategoryDTO: ScIVirtualCategoryDTO);
26
+ constructor(data: ScIVirtualCategory);
44
27
  }
@@ -1,3 +1,7 @@
1
+ export * from './sc-i-catalog-item';
2
+ export * from './sc-i-product';
3
+ export * from './sc-i-category';
4
+ export * from './sc-i-virtual-category';
1
5
  export * from './sc-i-category-product-params';
2
6
  export * from './sc-i-category-products-pagination-params';
3
7
  export * from './sc-catalog-filter';
@@ -0,0 +1,16 @@
1
+ import { ScICatalogableItem } from '../../common/interfaces/sc-i-catalogable-item';
2
+ import { ScISeoResource } from '../../seo/interfaces/sc-i-seo-resource';
3
+ import { ScIProperties } from '../dto/sc-i-properties';
4
+ /**
5
+ * Данные об элементе каталога.
6
+ */
7
+ export interface ScICatalogItem<P> extends ScICatalogableItem, ScISeoResource {
8
+ /**
9
+ * Данные о родительской категории.
10
+ */
11
+ parentCategory?: P;
12
+ /**
13
+ * Список свойств. Число свойств в объекте не ограничено.
14
+ */
15
+ properties?: ScIProperties;
16
+ }
@@ -0,0 +1,29 @@
1
+ import { ScIPrimaryCatalogableItem } from '../../common/interfaces/sc-i-primary-catalogable-item';
2
+ import { ScIConfiguratorSearchProductBase } from '../../configurator/dto/sc-i-configurator-search-product-base';
3
+ import { ScICatalogItem } from './sc-i-catalog-item';
4
+ import { ScIProduct } from './sc-i-product';
5
+ /**
6
+ * Данные о категории товаров.
7
+ */
8
+ export interface ScICategory extends ScICatalogItem<ScICategory>, ScIPrimaryCatalogableItem {
9
+ /**
10
+ * Признак, что категория являются избранной для клиента.
11
+ */
12
+ isFavorite?: boolean;
13
+ /**
14
+ * Список дочерних категорий.
15
+ */
16
+ categories?: ScICategory[];
17
+ /**
18
+ * Список товаров в категории.
19
+ */
20
+ products?: ScIProduct[];
21
+ /**
22
+ * Признак наличия дочерних категорий.
23
+ */
24
+ hasChild?: boolean;
25
+ /**
26
+ * Параметры введенные в конфигуратор, при добавлении позиции в корзину.
27
+ */
28
+ configuratorSettings?: ScIConfiguratorSearchProductBase;
29
+ }
@@ -1,35 +1,20 @@
1
+ import { ScIHiddenCatalogableItem } from '../../common/interfaces/sc-i-hidden-catalogable-item';
1
2
  import { ScICurrency } from '../../references/dto/sc-i-currency';
2
3
  import { ScIProductUnit } from '../../references/dto/sc-i-product-unit';
4
+ import { ScISeoResource } from '../../seo/interfaces/sc-i-seo-resource';
3
5
  import { ScIWarehouseStockCount } from '../../warehouse/dto/sc-i-warehouse-stock-count';
4
6
  import { ScIDiscount } from '../dto/sc-i-discount';
5
7
  import { ScIProductImages } from '../dto/sc-i-product-images';
6
- import { ScIProperties } from '../dto/sc-i-properties';
7
- import { ScICategoryDTO } from './sc-i-category-dto';
8
- import { ScISeoResourceDTO } from './sc-i-seo-resource-dto';
8
+ import { ScICatalogItem } from './sc-i-catalog-item';
9
+ import { ScICategory } from './sc-i-category';
9
10
  /**
10
11
  * Модель данных для товаров каталога.
11
12
  */
12
- export interface ScIProductDTO extends ScISeoResourceDTO {
13
- /**
14
- * Идентификатор товара/услуги.
15
- */
16
- id: number;
17
- /**
18
- * Символьное обозначение (slug) категории.
19
- */
20
- slug: string;
21
- /**
22
- * Артикул.
23
- */
24
- code: string;
13
+ export interface ScIProduct extends ScICatalogItem<ScICategory>, ScIHiddenCatalogableItem, ScISeoResource {
25
14
  /**
26
15
  * Артикул поставщика.
27
16
  */
28
17
  supplierSku?: string;
29
- /**
30
- * Название товара.
31
- */
32
- name: string;
33
18
  /**
34
19
  * Стоимость товара или услуги в валюте.
35
20
  */
@@ -81,17 +66,13 @@ export interface ScIProductDTO extends ScISeoResourceDTO {
81
66
  /**
82
67
  * Список категорий товара.
83
68
  */
84
- categories: ScICategoryDTO[];
85
- /**
86
- * Список свойств. Число свойств в объекте не ограничено.
87
- */
88
- properties?: ScIProperties;
69
+ categories: ScICategory[];
89
70
  /**
90
71
  * Данные о клиентской скидке.
91
72
  */
92
73
  discount?: ScIDiscount;
93
74
  /**
94
- * Признак того, что продукт является скрытым.
75
+ * Основная категория для товара или услуги.
95
76
  */
96
- isHidden?: boolean;
77
+ primaryCategory?: ScICategory;
97
78
  }
@@ -0,0 +1,20 @@
1
+ import { ScICatalogItem } from './sc-i-catalog-item';
2
+ import { ScICategory } from './sc-i-category';
3
+ import { ScIProduct } from './sc-i-product';
4
+ /**
5
+ * Данные о виртуальной категории.
6
+ */
7
+ export interface ScIVirtualCategory extends ScICatalogItem<ScIVirtualCategory> {
8
+ /**
9
+ * Список дочерних виртуальных категорий.
10
+ */
11
+ childCategories?: ScIVirtualCategory[];
12
+ /**
13
+ * Список продуктов привязанных к виртуальной категории.
14
+ */
15
+ products?: ScIProduct[];
16
+ /**
17
+ * Список категорий продуктов привязанных к виртуальной категории.
18
+ */
19
+ productCategories?: ScICategory[];
20
+ }
@@ -1,5 +1 @@
1
- export * from './sc-i-category-dto';
2
1
  export * from './sc-i-filter-tree-category';
3
- export * from './sc-i-product-dto';
4
- export * from './sc-i-virtual-category-dto';
5
- export * from './sc-i-seo-resource-dto';
@@ -11,6 +11,7 @@ import { ScIProductNotifyWhenInStock } from '../dto/sc-i-product-notify-when-in-
11
11
  import { ScProduct } from '../dto/sc-product';
12
12
  import { ScVirtualCategory } from '../dto/sc-virtual-category';
13
13
  import { ScMimeTypes } from '../enums/sc-mime-types';
14
+ import { ScICategory } from '../interfaces/sc-i-category';
14
15
  import { ScICategoryProductParams } from '../interfaces/sc-i-category-product-params';
15
16
  import { ScICategoryProductPaginationParams } from '../interfaces/sc-i-category-products-pagination-params';
16
17
  import { ScPriceHistory } from '../types/sc-price-history';
@@ -111,7 +112,7 @@ export declare class ScCatalogService {
111
112
  /**
112
113
  * Возвращает {@link Observable} корневых категорий с настройками отображения, чтобы реагировать на изменения.
113
114
  */
114
- getFilteredRootCategories$(): Observable<ScCategory[]>;
115
+ getFilteredRootCategories$(): Observable<ScICategory[]>;
115
116
  /**
116
117
  * Возвращает {@link Observable} содержимого виртуальной категории.
117
118
  *
@@ -131,7 +132,7 @@ export declare class ScCatalogService {
131
132
  /**
132
133
  * Создает запрос получения корневых категорий.
133
134
  */
134
- getRootCategories$(): Observable<ScCategory[] | null>;
135
+ getRootCategories$(): Observable<ScICategory[] | null>;
135
136
  /**
136
137
  * Раскрывает каталог до указанной категории.
137
138
  *
@@ -1,5 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
- import { ScCategory } from '../dto';
2
+ import { ScCategory } from '../dto/sc-category';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Сервис для работы с избранными товарами и категориями.
@@ -1 +1,10 @@
1
+ export * from './sc-identity';
2
+ export * from './sc-named-identity';
3
+ export * from './sc-coded-identity';
4
+ export * from './sc-reference';
5
+ export * from './sc-updatable-named-identity';
6
+ export * from './sc-deletable-named-identity';
1
7
  export * from './sc-image';
8
+ export * from './sc-catalogable-item';
9
+ export * from './sc-hidden-catalogable-item';
10
+ export * from './sc-primary-catalogable-item';
@@ -0,0 +1,17 @@
1
+ import { ScICatalogableItem } from '../interfaces/sc-i-catalogable-item';
2
+ import { ScCodedIdentity } from './sc-coded-identity';
3
+ /**
4
+ * Данные об элементе каталога.
5
+ */
6
+ export declare class ScCatalogableItem extends ScCodedIdentity implements ScICatalogableItem {
7
+ /**
8
+ * @inheritDoc
9
+ */
10
+ slug: string;
11
+ /**
12
+ * Инициализирует экземпляр класса {@link ScCatalogableItem}.
13
+ *
14
+ * @param data Данные для первоначальной инициализации.
15
+ */
16
+ protected constructor(data?: ScICatalogableItem);
17
+ }
@@ -0,0 +1,17 @@
1
+ import { ScICodedIdentity } from '../interfaces/sc-i-coded-identity';
2
+ import { ScNamedIdentity } from './sc-named-identity';
3
+ /**
4
+ * Базовая идентифицируемая сущность содержащая название и артикул.
5
+ */
6
+ export declare class ScCodedIdentity<T = number> extends ScNamedIdentity<T> implements ScICodedIdentity<T> {
7
+ /**
8
+ * @inheritDoc
9
+ */
10
+ code: string;
11
+ /**
12
+ * Инициализирует экземпляр класса {@link ScCodedIdentity}.
13
+ *
14
+ * @param data Данные для первоначальной инициализации.
15
+ */
16
+ constructor(data?: Partial<ScICodedIdentity<T>>);
17
+ }
@@ -0,0 +1,17 @@
1
+ import { ScIDeletableNamedIdentity } from '../interfaces/sc-i-deletable-named-identity';
2
+ import { ScUpdatableNamedIdentity } from './sc-updatable-named-identity';
3
+ /**
4
+ * Базовая идентифицируемая сущность содержащая название, дату изменения и удаления.
5
+ */
6
+ export declare abstract class ScDeletableNamedIdentity extends ScUpdatableNamedIdentity implements ScIDeletableNamedIdentity {
7
+ /**
8
+ * @inheritDoc
9
+ */
10
+ deletedAt?: Date;
11
+ /**
12
+ * Инициализирует экземпляр класса {@link ScUpdatableNamedIdentity}.
13
+ *
14
+ * @param data Данные для первоначальной инициализации.
15
+ */
16
+ protected constructor(data?: ScIDeletableNamedIdentity);
17
+ }