@hed-hog/catalog 0.0.291 → 0.0.293

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 (36) hide show
  1. package/hedhog/data/menu.yaml +233 -233
  2. package/hedhog/data/role.yaml +7 -7
  3. package/hedhog/data/route.yaml +56 -56
  4. package/hedhog/table/catalog_affiliate_program.yaml +41 -41
  5. package/hedhog/table/catalog_attribute.yaml +53 -53
  6. package/hedhog/table/catalog_attribute_group.yaml +18 -18
  7. package/hedhog/table/catalog_brand.yaml +34 -34
  8. package/hedhog/table/catalog_category_attribute.yaml +36 -36
  9. package/hedhog/table/catalog_click_event.yaml +50 -50
  10. package/hedhog/table/catalog_comparison.yaml +65 -65
  11. package/hedhog/table/catalog_comparison_highlight.yaml +39 -39
  12. package/hedhog/table/catalog_comparison_item.yaml +30 -30
  13. package/hedhog/table/catalog_content_relation.yaml +42 -42
  14. package/hedhog/table/catalog_import_run.yaml +33 -33
  15. package/hedhog/table/catalog_import_source.yaml +24 -24
  16. package/hedhog/table/catalog_merchant.yaml +29 -29
  17. package/hedhog/table/catalog_offer.yaml +83 -83
  18. package/hedhog/table/catalog_price_history.yaml +34 -34
  19. package/hedhog/table/catalog_product.yaml +76 -76
  20. package/hedhog/table/catalog_product_attribute_value.yaml +60 -60
  21. package/hedhog/table/catalog_product_category.yaml +26 -26
  22. package/hedhog/table/catalog_product_image.yaml +34 -34
  23. package/hedhog/table/catalog_product_score.yaml +38 -38
  24. package/hedhog/table/catalog_product_site.yaml +47 -47
  25. package/hedhog/table/catalog_product_tag.yaml +19 -19
  26. package/hedhog/table/catalog_score_criterion.yaml +37 -37
  27. package/hedhog/table/catalog_seo_page_rule.yaml +51 -51
  28. package/hedhog/table/catalog_similarity_rule.yaml +28 -28
  29. package/hedhog/table/catalog_site.yaml +40 -40
  30. package/hedhog/table/catalog_site_category.yaml +26 -26
  31. package/package.json +6 -6
  32. package/src/catalog.controller.ts +82 -82
  33. package/src/catalog.module.ts +12 -12
  34. package/src/index.ts +1 -1
  35. package/src/language/en.json +4 -4
  36. package/src/language/pt.json +4 -4
@@ -1,60 +1,60 @@
1
- columns:
2
- - type: pk
3
- - name: product_id
4
- type: fk
5
- references:
6
- table: catalog_product
7
- column: id
8
- onDelete: CASCADE
9
- - name: attribute_id
10
- type: fk
11
- references:
12
- table: catalog_attribute
13
- column: id
14
- onDelete: CASCADE
15
- - name: value_text
16
- type: text
17
- isNullable: true
18
- - name: value_number
19
- type: decimal
20
- precision: 14
21
- scale: 4
22
- isNullable: true
23
- - name: value_boolean
24
- type: boolean
25
- isNullable: true
26
- - name: value_json
27
- type: json
28
- isNullable: true
29
- - name: value_unit
30
- type: varchar
31
- length: 63
32
- isNullable: true
33
- - name: normalized_text
34
- type: varchar
35
- length: 255
36
- isNullable: true
37
- - name: normalized_number
38
- type: decimal
39
- precision: 14
40
- scale: 4
41
- isNullable: true
42
- - name: source_type
43
- type: enum
44
- values: [manual, import, computed]
45
- default: manual
46
- - name: confidence_score
47
- type: decimal
48
- precision: 5
49
- scale: 2
50
- isNullable: true
51
- - name: is_verified
52
- type: boolean
53
- default: false
54
- - type: created_at
55
- - type: updated_at
56
- indices:
57
- - columns: [product_id, attribute_id]
58
- isUnique: true
59
- - columns: [attribute_id, normalized_number]
60
- - columns: [attribute_id, normalized_text]
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: catalog_product
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: attribute_id
10
+ type: fk
11
+ references:
12
+ table: catalog_attribute
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: value_text
16
+ type: text
17
+ isNullable: true
18
+ - name: value_number
19
+ type: decimal
20
+ precision: 14
21
+ scale: 4
22
+ isNullable: true
23
+ - name: value_boolean
24
+ type: boolean
25
+ isNullable: true
26
+ - name: value_json
27
+ type: json
28
+ isNullable: true
29
+ - name: value_unit
30
+ type: varchar
31
+ length: 63
32
+ isNullable: true
33
+ - name: normalized_text
34
+ type: varchar
35
+ length: 255
36
+ isNullable: true
37
+ - name: normalized_number
38
+ type: decimal
39
+ precision: 14
40
+ scale: 4
41
+ isNullable: true
42
+ - name: source_type
43
+ type: enum
44
+ values: [manual, import, computed]
45
+ default: manual
46
+ - name: confidence_score
47
+ type: decimal
48
+ precision: 5
49
+ scale: 2
50
+ isNullable: true
51
+ - name: is_verified
52
+ type: boolean
53
+ default: false
54
+ - type: created_at
55
+ - type: updated_at
56
+ indices:
57
+ - columns: [product_id, attribute_id]
58
+ isUnique: true
59
+ - columns: [attribute_id, normalized_number]
60
+ - columns: [attribute_id, normalized_text]
@@ -1,26 +1,26 @@
1
- columns:
2
- - type: pk
3
- - name: product_id
4
- type: fk
5
- references:
6
- table: catalog_product
7
- column: id
8
- onDelete: CASCADE
9
- - name: category_id
10
- type: fk
11
- references:
12
- table: category
13
- column: id
14
- onDelete: CASCADE
15
- - name: is_primary
16
- type: boolean
17
- default: false
18
- - name: sort_order
19
- type: int
20
- default: 0
21
- - type: created_at
22
- - type: updated_at
23
- indices:
24
- - columns: [product_id, category_id]
25
- isUnique: true
26
- - columns: [product_id, is_primary]
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: catalog_product
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: category_id
10
+ type: fk
11
+ references:
12
+ table: category
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: is_primary
16
+ type: boolean
17
+ default: false
18
+ - name: sort_order
19
+ type: int
20
+ default: 0
21
+ - type: created_at
22
+ - type: updated_at
23
+ indices:
24
+ - columns: [product_id, category_id]
25
+ isUnique: true
26
+ - columns: [product_id, is_primary]
@@ -1,34 +1,34 @@
1
- columns:
2
- - type: pk
3
- - name: product_id
4
- type: fk
5
- references:
6
- table: catalog_product
7
- column: id
8
- onDelete: CASCADE
9
- - name: file_id
10
- type: fk
11
- references:
12
- table: file
13
- column: id
14
- onDelete: CASCADE
15
- - name: role
16
- type: enum
17
- values: [primary, gallery, thumbnail, lifestyle, technical]
18
- default: gallery
19
- - name: sort_order
20
- type: int
21
- default: 0
22
- - name: is_primary
23
- type: boolean
24
- default: false
25
- - name: alt_text
26
- type: varchar
27
- length: 255
28
- isNullable: true
29
- - type: created_at
30
- - type: updated_at
31
- indices:
32
- - columns: [product_id, sort_order]
33
- - columns: [product_id, is_primary]
34
- - columns: [file_id]
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: catalog_product
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: file_id
10
+ type: fk
11
+ references:
12
+ table: file
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: role
16
+ type: enum
17
+ values: [primary, gallery, thumbnail, lifestyle, technical]
18
+ default: gallery
19
+ - name: sort_order
20
+ type: int
21
+ default: 0
22
+ - name: is_primary
23
+ type: boolean
24
+ default: false
25
+ - name: alt_text
26
+ type: varchar
27
+ length: 255
28
+ isNullable: true
29
+ - type: created_at
30
+ - type: updated_at
31
+ indices:
32
+ - columns: [product_id, sort_order]
33
+ - columns: [product_id, is_primary]
34
+ - columns: [file_id]
@@ -1,38 +1,38 @@
1
- columns:
2
- - type: pk
3
- - name: product_id
4
- type: fk
5
- references:
6
- table: catalog_product
7
- column: id
8
- onDelete: CASCADE
9
- - name: criterion_id
10
- type: fk
11
- references:
12
- table: catalog_score_criterion
13
- column: id
14
- onDelete: CASCADE
15
- - name: score_value
16
- type: decimal
17
- precision: 5
18
- scale: 2
19
- - name: score_label
20
- type: varchar
21
- length: 255
22
- isNullable: true
23
- - name: summary
24
- type: text
25
- isNullable: true
26
- - name: calculation_source
27
- type: varchar
28
- length: 255
29
- isNullable: true
30
- - name: is_manual_override
31
- type: boolean
32
- default: false
33
- - type: created_at
34
- - type: updated_at
35
- indices:
36
- - columns: [product_id, criterion_id]
37
- isUnique: true
38
- - columns: [criterion_id, score_value]
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: catalog_product
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: criterion_id
10
+ type: fk
11
+ references:
12
+ table: catalog_score_criterion
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: score_value
16
+ type: decimal
17
+ precision: 5
18
+ scale: 2
19
+ - name: score_label
20
+ type: varchar
21
+ length: 255
22
+ isNullable: true
23
+ - name: summary
24
+ type: text
25
+ isNullable: true
26
+ - name: calculation_source
27
+ type: varchar
28
+ length: 255
29
+ isNullable: true
30
+ - name: is_manual_override
31
+ type: boolean
32
+ default: false
33
+ - type: created_at
34
+ - type: updated_at
35
+ indices:
36
+ - columns: [product_id, criterion_id]
37
+ isUnique: true
38
+ - columns: [criterion_id, score_value]
@@ -1,47 +1,47 @@
1
- columns:
2
- - type: pk
3
- - name: product_id
4
- type: fk
5
- references:
6
- table: catalog_product
7
- column: id
8
- onDelete: CASCADE
9
- - name: site_id
10
- type: fk
11
- references:
12
- table: catalog_site
13
- column: id
14
- onDelete: CASCADE
15
- - name: publication_status
16
- type: enum
17
- values: [draft, published, hidden]
18
- default: draft
19
- - name: canonical_slug
20
- type: varchar
21
- length: 255
22
- - name: is_featured
23
- type: boolean
24
- default: false
25
- - name: visibility_score
26
- type: int
27
- default: 0
28
- - name: override_brand_name
29
- type: varchar
30
- length: 255
31
- isNullable: true
32
- - name: seo_title
33
- type: varchar
34
- length: 255
35
- isNullable: true
36
- - name: seo_description
37
- type: varchar
38
- length: 500
39
- isNullable: true
40
- - type: created_at
41
- - type: updated_at
42
- indices:
43
- - columns: [site_id, product_id]
44
- isUnique: true
45
- - columns: [site_id, canonical_slug]
46
- isUnique: true
47
- - columns: [site_id, publication_status]
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: catalog_product
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: site_id
10
+ type: fk
11
+ references:
12
+ table: catalog_site
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: publication_status
16
+ type: enum
17
+ values: [draft, published, hidden]
18
+ default: draft
19
+ - name: canonical_slug
20
+ type: varchar
21
+ length: 255
22
+ - name: is_featured
23
+ type: boolean
24
+ default: false
25
+ - name: visibility_score
26
+ type: int
27
+ default: 0
28
+ - name: override_brand_name
29
+ type: varchar
30
+ length: 255
31
+ isNullable: true
32
+ - name: seo_title
33
+ type: varchar
34
+ length: 255
35
+ isNullable: true
36
+ - name: seo_description
37
+ type: varchar
38
+ length: 500
39
+ isNullable: true
40
+ - type: created_at
41
+ - type: updated_at
42
+ indices:
43
+ - columns: [site_id, product_id]
44
+ isUnique: true
45
+ - columns: [site_id, canonical_slug]
46
+ isUnique: true
47
+ - columns: [site_id, publication_status]
@@ -1,19 +1,19 @@
1
- columns:
2
- - type: pk
3
- - name: product_id
4
- type: fk
5
- references:
6
- table: catalog_product
7
- column: id
8
- onDelete: CASCADE
9
- - name: tag_id
10
- type: fk
11
- references:
12
- table: tag
13
- column: id
14
- onDelete: CASCADE
15
- - type: created_at
16
- - type: updated_at
17
- indices:
18
- - columns: [product_id, tag_id]
19
- isUnique: true
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: catalog_product
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: tag_id
10
+ type: fk
11
+ references:
12
+ table: tag
13
+ column: id
14
+ onDelete: CASCADE
15
+ - type: created_at
16
+ - type: updated_at
17
+ indices:
18
+ - columns: [product_id, tag_id]
19
+ isUnique: true
@@ -1,37 +1,37 @@
1
- columns:
2
- - type: pk
3
- - name: category_id
4
- type: fk
5
- references:
6
- table: category
7
- column: id
8
- onDelete: CASCADE
9
- - name: slug
10
- type: varchar
11
- length: 255
12
- - name: name
13
- type: varchar
14
- length: 255
15
- - name: weight
16
- type: int
17
- default: 1
18
- - name: score_type
19
- type: enum
20
- values: [manual, weighted, formula]
21
- default: manual
22
- - name: formula_json
23
- type: json
24
- isNullable: true
25
- - name: display_order
26
- type: int
27
- default: 0
28
- - name: status
29
- type: enum
30
- values: [active, inactive]
31
- default: active
32
- - type: created_at
33
- - type: updated_at
34
- indices:
35
- - columns: [category_id, slug]
36
- isUnique: true
37
- - columns: [category_id, status]
1
+ columns:
2
+ - type: pk
3
+ - name: category_id
4
+ type: fk
5
+ references:
6
+ table: category
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: slug
10
+ type: varchar
11
+ length: 255
12
+ - name: name
13
+ type: varchar
14
+ length: 255
15
+ - name: weight
16
+ type: int
17
+ default: 1
18
+ - name: score_type
19
+ type: enum
20
+ values: [manual, weighted, formula]
21
+ default: manual
22
+ - name: formula_json
23
+ type: json
24
+ isNullable: true
25
+ - name: display_order
26
+ type: int
27
+ default: 0
28
+ - name: status
29
+ type: enum
30
+ values: [active, inactive]
31
+ default: active
32
+ - type: created_at
33
+ - type: updated_at
34
+ indices:
35
+ - columns: [category_id, slug]
36
+ isUnique: true
37
+ - columns: [category_id, status]
@@ -1,51 +1,51 @@
1
- columns:
2
- - type: pk
3
- - name: site_id
4
- type: fk
5
- references:
6
- table: catalog_site
7
- column: id
8
- onDelete: CASCADE
9
- - name: category_id
10
- type: fk
11
- isNullable: true
12
- references:
13
- table: category
14
- column: id
15
- onDelete: SET NULL
16
- - name: page_type
17
- type: enum
18
- values: [comparison, best_of, cost_benefit, attribute, price_range, brand, use_case]
19
- default: comparison
20
- - name: rule_slug
21
- type: varchar
22
- length: 255
23
- - name: status
24
- type: enum
25
- values: [active, inactive]
26
- default: active
27
- - name: generation_query_json
28
- type: json
29
- isNullable: true
30
- - name: min_product_count
31
- type: int
32
- default: 2
33
- - name: min_attribute_coverage
34
- type: int
35
- default: 1
36
- - name: canonical_strategy
37
- type: enum
38
- values: [self, parent, custom]
39
- default: self
40
- - name: priority
41
- type: int
42
- default: 0
43
- - name: template_json
44
- type: json
45
- isNullable: true
46
- - type: created_at
47
- - type: updated_at
48
- indices:
49
- - columns: [site_id, rule_slug]
50
- isUnique: true
51
- - columns: [site_id, page_type, status]
1
+ columns:
2
+ - type: pk
3
+ - name: site_id
4
+ type: fk
5
+ references:
6
+ table: catalog_site
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: category_id
10
+ type: fk
11
+ isNullable: true
12
+ references:
13
+ table: category
14
+ column: id
15
+ onDelete: SET NULL
16
+ - name: page_type
17
+ type: enum
18
+ values: [comparison, best_of, cost_benefit, attribute, price_range, brand, use_case]
19
+ default: comparison
20
+ - name: rule_slug
21
+ type: varchar
22
+ length: 255
23
+ - name: status
24
+ type: enum
25
+ values: [active, inactive]
26
+ default: active
27
+ - name: generation_query_json
28
+ type: json
29
+ isNullable: true
30
+ - name: min_product_count
31
+ type: int
32
+ default: 2
33
+ - name: min_attribute_coverage
34
+ type: int
35
+ default: 1
36
+ - name: canonical_strategy
37
+ type: enum
38
+ values: [self, parent, custom]
39
+ default: self
40
+ - name: priority
41
+ type: int
42
+ default: 0
43
+ - name: template_json
44
+ type: json
45
+ isNullable: true
46
+ - type: created_at
47
+ - type: updated_at
48
+ indices:
49
+ - columns: [site_id, rule_slug]
50
+ isUnique: true
51
+ - columns: [site_id, page_type, status]
@@ -1,28 +1,28 @@
1
- columns:
2
- - type: pk
3
- - name: category_id
4
- type: fk
5
- references:
6
- table: category
7
- column: id
8
- onDelete: CASCADE
9
- - name: rule_type
10
- type: enum
11
- values: [same_category, compatible_category, shared_attribute, manual]
12
- default: same_category
13
- - name: rule_json
14
- type: json
15
- isNullable: true
16
- - name: min_similarity_score
17
- type: decimal
18
- precision: 5
19
- scale: 2
20
- default: 0
21
- - name: status
22
- type: enum
23
- values: [active, inactive]
24
- default: active
25
- - type: created_at
26
- - type: updated_at
27
- indices:
28
- - columns: [category_id, status]
1
+ columns:
2
+ - type: pk
3
+ - name: category_id
4
+ type: fk
5
+ references:
6
+ table: category
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: rule_type
10
+ type: enum
11
+ values: [same_category, compatible_category, shared_attribute, manual]
12
+ default: same_category
13
+ - name: rule_json
14
+ type: json
15
+ isNullable: true
16
+ - name: min_similarity_score
17
+ type: decimal
18
+ precision: 5
19
+ scale: 2
20
+ default: 0
21
+ - name: status
22
+ type: enum
23
+ values: [active, inactive]
24
+ default: active
25
+ - type: created_at
26
+ - type: updated_at
27
+ indices:
28
+ - columns: [category_id, status]