@hed-hog/catalog 0.0.295 → 0.0.296

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 (53) hide show
  1. package/README.md +409 -409
  2. package/dist/catalog.controller.d.ts +4 -4
  3. package/dist/catalog.service.d.ts +4 -4
  4. package/hedhog/data/catalog_attribute.yaml +202 -202
  5. package/hedhog/data/catalog_attribute_option.yaml +109 -109
  6. package/hedhog/data/catalog_category.yaml +47 -47
  7. package/hedhog/data/catalog_category_attribute.yaml +209 -209
  8. package/hedhog/data/menu.yaml +133 -133
  9. package/hedhog/data/role.yaml +7 -7
  10. package/hedhog/data/route.yaml +72 -72
  11. package/hedhog/frontend/app/[resource]/page.tsx.ejs +391 -391
  12. package/hedhog/frontend/app/_components/catalog-ai-form-assist-dialog.tsx.ejs +340 -340
  13. package/hedhog/frontend/app/_components/catalog-resource-form-sheet.tsx.ejs +907 -907
  14. package/hedhog/frontend/app/_lib/catalog-resources.tsx.ejs +929 -929
  15. package/hedhog/frontend/messages/en.json +389 -389
  16. package/hedhog/frontend/messages/pt.json +389 -389
  17. package/hedhog/table/catalog_affiliate_program.yaml +41 -41
  18. package/hedhog/table/catalog_attribute.yaml +67 -67
  19. package/hedhog/table/catalog_attribute_group.yaml +18 -18
  20. package/hedhog/table/catalog_attribute_option.yaml +40 -40
  21. package/hedhog/table/catalog_brand.yaml +34 -34
  22. package/hedhog/table/catalog_category.yaml +40 -40
  23. package/hedhog/table/catalog_category_attribute.yaml +37 -37
  24. package/hedhog/table/catalog_click_event.yaml +50 -50
  25. package/hedhog/table/catalog_comparison.yaml +19 -19
  26. package/hedhog/table/catalog_comparison_highlight.yaml +39 -39
  27. package/hedhog/table/catalog_comparison_item.yaml +30 -30
  28. package/hedhog/table/catalog_content_relation.yaml +42 -42
  29. package/hedhog/table/catalog_import_run.yaml +33 -33
  30. package/hedhog/table/catalog_import_source.yaml +24 -24
  31. package/hedhog/table/catalog_merchant.yaml +29 -29
  32. package/hedhog/table/catalog_offer.yaml +83 -83
  33. package/hedhog/table/catalog_price_history.yaml +34 -34
  34. package/hedhog/table/catalog_product.yaml +30 -30
  35. package/hedhog/table/catalog_product_attribute_value.yaml +44 -44
  36. package/hedhog/table/catalog_product_category.yaml +13 -13
  37. package/hedhog/table/catalog_product_image.yaml +34 -34
  38. package/hedhog/table/catalog_product_score.yaml +38 -38
  39. package/hedhog/table/catalog_product_site.yaml +47 -47
  40. package/hedhog/table/catalog_product_tag.yaml +19 -19
  41. package/hedhog/table/catalog_score_criterion.yaml +42 -42
  42. package/hedhog/table/catalog_seo_page_rule.yaml +10 -10
  43. package/hedhog/table/catalog_similarity_rule.yaml +33 -33
  44. package/hedhog/table/catalog_site.yaml +21 -21
  45. package/hedhog/table/catalog_site_category.yaml +12 -12
  46. package/package.json +10 -10
  47. package/src/catalog-resource.config.ts +132 -132
  48. package/src/catalog.controller.ts +91 -91
  49. package/src/catalog.module.ts +16 -16
  50. package/src/catalog.service.ts +3 -3
  51. package/src/index.ts +1 -1
  52. package/src/language/en.json +4 -4
  53. package/src/language/pt.json +4 -4
@@ -1,41 +1,41 @@
1
- columns:
2
- - type: pk
3
- - name: merchant_id
4
- type: fk
5
- isNullable: true
6
- references:
7
- table: catalog_merchant
8
- column: id
9
- onDelete: SET NULL
10
- - name: slug
11
- type: varchar
12
- length: 255
13
- - name: name
14
- type: varchar
15
- length: 255
16
- - name: network_type
17
- type: enum
18
- values: [amazon, mercado_livre, aliexpress, kabum, direct, network]
19
- default: direct
20
- - name: tracking_template
21
- type: text
22
- isNullable: true
23
- - name: commission_type
24
- type: enum
25
- values: [percentage, fixed]
26
- default: percentage
27
- - name: default_commission_value
28
- type: decimal
29
- precision: 8
30
- scale: 2
31
- default: 0
32
- - name: status
33
- type: enum
34
- values: [active, inactive]
35
- default: active
36
- - type: created_at
37
- - type: updated_at
38
- indices:
39
- - columns: [slug]
40
- isUnique: true
41
- - columns: [merchant_id, status]
1
+ columns:
2
+ - type: pk
3
+ - name: merchant_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: catalog_merchant
8
+ column: id
9
+ onDelete: SET NULL
10
+ - name: slug
11
+ type: varchar
12
+ length: 255
13
+ - name: name
14
+ type: varchar
15
+ length: 255
16
+ - name: network_type
17
+ type: enum
18
+ values: [amazon, mercado_livre, aliexpress, kabum, direct, network]
19
+ default: direct
20
+ - name: tracking_template
21
+ type: text
22
+ isNullable: true
23
+ - name: commission_type
24
+ type: enum
25
+ values: [percentage, fixed]
26
+ default: percentage
27
+ - name: default_commission_value
28
+ type: decimal
29
+ precision: 8
30
+ scale: 2
31
+ default: 0
32
+ - name: status
33
+ type: enum
34
+ values: [active, inactive]
35
+ default: active
36
+ - type: created_at
37
+ - type: updated_at
38
+ indices:
39
+ - columns: [slug]
40
+ isUnique: true
41
+ - columns: [merchant_id, status]
@@ -1,68 +1,68 @@
1
- columns:
2
- - type: pk
3
- - name: code
4
- type: varchar
5
- length: 120
6
- - name: group_id
7
- type: fk
8
- isNullable: true
9
- references:
10
- table: catalog_attribute_group
11
- column: id
12
- onDelete: SET NULL
13
- - name: group_name
14
- type: varchar
15
- length: 255
16
- isNullable: true
17
- - name: slug
18
- type: varchar
19
- length: 255
20
- - name: name
21
- type: varchar
22
- length: 255
23
- - name: description
24
- type: text
25
- isNullable: true
26
- - name: data_type
27
- type: enum
28
- values: [text, long_text, number, boolean, option]
29
- default: text
30
- - name: unit
31
- type: varchar
32
- length: 63
33
- isNullable: true
34
- - name: comparison_mode
35
- type: enum
36
- values: [neutral, higher_better, lower_better, boolean_true_better, exact_match]
37
- default: neutral
38
- - name: is_filterable
39
- type: boolean
1
+ columns:
2
+ - type: pk
3
+ - name: code
4
+ type: varchar
5
+ length: 120
6
+ - name: group_id
7
+ type: fk
8
+ isNullable: true
9
+ references:
10
+ table: catalog_attribute_group
11
+ column: id
12
+ onDelete: SET NULL
13
+ - name: group_name
14
+ type: varchar
15
+ length: 255
16
+ isNullable: true
17
+ - name: slug
18
+ type: varchar
19
+ length: 255
20
+ - name: name
21
+ type: varchar
22
+ length: 255
23
+ - name: description
24
+ type: text
25
+ isNullable: true
26
+ - name: data_type
27
+ type: enum
28
+ values: [text, long_text, number, boolean, option]
29
+ default: text
30
+ - name: unit
31
+ type: varchar
32
+ length: 63
33
+ isNullable: true
34
+ - name: comparison_mode
35
+ type: enum
36
+ values: [neutral, higher_better, lower_better, boolean_true_better, exact_match]
37
+ default: neutral
38
+ - name: is_filterable
39
+ type: boolean
40
40
  default: false
41
- - name: is_sortable
42
- type: boolean
43
- default: false
44
- - name: is_comparable
45
- type: boolean
46
- default: true
47
- - name: is_required_default
48
- type: boolean
49
- default: false
50
- - name: status
51
- type: enum
52
- values: [active, inactive]
53
- default: active
54
- - name: display_order
55
- type: int
56
- default: 0
57
- - type: created_at
58
- - type: updated_at
59
- indices:
60
- - columns: [code]
61
- isUnique: true
62
- - columns: [slug]
63
- isUnique: true
64
- - columns: [group_id, display_order]
65
- - columns: [group_name, display_order]
66
- - columns: [data_type]
67
- - columns: [is_filterable]
68
- - columns: [status]
41
+ - name: is_sortable
42
+ type: boolean
43
+ default: false
44
+ - name: is_comparable
45
+ type: boolean
46
+ default: true
47
+ - name: is_required_default
48
+ type: boolean
49
+ default: false
50
+ - name: status
51
+ type: enum
52
+ values: [active, inactive]
53
+ default: active
54
+ - name: display_order
55
+ type: int
56
+ default: 0
57
+ - type: created_at
58
+ - type: updated_at
59
+ indices:
60
+ - columns: [code]
61
+ isUnique: true
62
+ - columns: [slug]
63
+ isUnique: true
64
+ - columns: [group_id, display_order]
65
+ - columns: [group_name, display_order]
66
+ - columns: [data_type]
67
+ - columns: [is_filterable]
68
+ - columns: [status]
@@ -1,18 +1,18 @@
1
- columns:
2
- - type: pk
3
- - name: slug
4
- type: varchar
5
- length: 255
6
- - name: name
7
- type: varchar
8
- length: 255
9
- - name: status
10
- type: enum
11
- values: [active, inactive]
12
- default: active
13
- - type: created_at
14
- - type: updated_at
15
- indices:
16
- - columns: [slug]
17
- isUnique: true
18
- - columns: [status]
1
+ columns:
2
+ - type: pk
3
+ - name: slug
4
+ type: varchar
5
+ length: 255
6
+ - name: name
7
+ type: varchar
8
+ length: 255
9
+ - name: status
10
+ type: enum
11
+ values: [active, inactive]
12
+ default: active
13
+ - type: created_at
14
+ - type: updated_at
15
+ indices:
16
+ - columns: [slug]
17
+ isUnique: true
18
+ - columns: [status]
@@ -1,40 +1,40 @@
1
- columns:
2
- - type: pk
3
- - name: attribute_id
4
- type: fk
5
- references:
6
- table: catalog_attribute
7
- column: id
8
- onDelete: CASCADE
9
- - name: slug
10
- type: varchar
11
- length: 255
12
- - name: label
13
- type: varchar
14
- length: 255
15
- - name: option_value
16
- type: varchar
17
- length: 255
18
- - name: normalized_value
19
- type: varchar
20
- length: 255
21
- isNullable: true
22
- - name: sort_order
23
- type: int
24
- default: 0
25
- - name: status
26
- type: enum
27
- values: [active, inactive]
28
- default: active
29
- - name: is_default
30
- type: boolean
31
- default: false
32
- - type: created_at
33
- - type: updated_at
34
- indices:
35
- - columns: [attribute_id, slug]
36
- isUnique: true
37
- - columns: [attribute_id, option_value]
38
- isUnique: true
39
- - columns: [attribute_id, sort_order]
40
- - columns: [status]
1
+ columns:
2
+ - type: pk
3
+ - name: attribute_id
4
+ type: fk
5
+ references:
6
+ table: catalog_attribute
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: slug
10
+ type: varchar
11
+ length: 255
12
+ - name: label
13
+ type: varchar
14
+ length: 255
15
+ - name: option_value
16
+ type: varchar
17
+ length: 255
18
+ - name: normalized_value
19
+ type: varchar
20
+ length: 255
21
+ isNullable: true
22
+ - name: sort_order
23
+ type: int
24
+ default: 0
25
+ - name: status
26
+ type: enum
27
+ values: [active, inactive]
28
+ default: active
29
+ - name: is_default
30
+ type: boolean
31
+ default: false
32
+ - type: created_at
33
+ - type: updated_at
34
+ indices:
35
+ - columns: [attribute_id, slug]
36
+ isUnique: true
37
+ - columns: [attribute_id, option_value]
38
+ isUnique: true
39
+ - columns: [attribute_id, sort_order]
40
+ - columns: [status]
@@ -1,34 +1,34 @@
1
- columns:
2
- - type: pk
3
- - name: slug
4
- type: varchar
5
- length: 255
6
- - name: name
7
- type: varchar
8
- length: 255
9
- - name: normalized_name
10
- type: varchar
11
- length: 255
12
- - name: logo_file_id
13
- type: fk
14
- isNullable: true
15
- references:
16
- table: file
17
- column: id
18
- onDelete: SET NULL
19
- - name: status
20
- type: enum
21
- values: [active, inactive]
22
- default: active
23
- - name: website_url
24
- type: varchar
25
- length: 500
26
- isNullable: true
27
- - type: created_at
28
- - type: updated_at
29
- indices:
30
- - columns: [slug]
31
- isUnique: true
32
- - columns: [normalized_name]
33
- - columns: [logo_file_id]
34
- - columns: [status]
1
+ columns:
2
+ - type: pk
3
+ - name: slug
4
+ type: varchar
5
+ length: 255
6
+ - name: name
7
+ type: varchar
8
+ length: 255
9
+ - name: normalized_name
10
+ type: varchar
11
+ length: 255
12
+ - name: logo_file_id
13
+ type: fk
14
+ isNullable: true
15
+ references:
16
+ table: file
17
+ column: id
18
+ onDelete: SET NULL
19
+ - name: status
20
+ type: enum
21
+ values: [active, inactive]
22
+ default: active
23
+ - name: website_url
24
+ type: varchar
25
+ length: 500
26
+ isNullable: true
27
+ - type: created_at
28
+ - type: updated_at
29
+ indices:
30
+ - columns: [slug]
31
+ isUnique: true
32
+ - columns: [normalized_name]
33
+ - columns: [logo_file_id]
34
+ - columns: [status]
@@ -1,40 +1,40 @@
1
- columns:
2
- - type: pk
3
- - name: parent_category_id
4
- type: fk
5
- isNullable: true
6
- references:
7
- table: catalog_category
8
- column: id
9
- onDelete: SET NULL
10
- - name: slug
11
- type: varchar
12
- length: 255
13
- - name: name
14
- type: varchar
15
- length: 255
16
- - name: normalized_name
17
- type: varchar
18
- length: 255
19
- isNullable: true
20
- - name: description
21
- type: text
22
- isNullable: true
23
- - name: comparison_enabled
24
- type: boolean
25
- default: true
26
- - name: status
27
- type: enum
28
- values: [active, inactive]
29
- default: active
30
- - name: sort_order
31
- type: int
32
- default: 0
33
- - type: created_at
34
- - type: updated_at
35
- indices:
36
- - columns: [slug]
37
- isUnique: true
38
- - columns: [parent_category_id, sort_order]
39
- - columns: [status]
40
- - columns: [comparison_enabled]
1
+ columns:
2
+ - type: pk
3
+ - name: parent_category_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: catalog_category
8
+ column: id
9
+ onDelete: SET NULL
10
+ - name: slug
11
+ type: varchar
12
+ length: 255
13
+ - name: name
14
+ type: varchar
15
+ length: 255
16
+ - name: normalized_name
17
+ type: varchar
18
+ length: 255
19
+ isNullable: true
20
+ - name: description
21
+ type: text
22
+ isNullable: true
23
+ - name: comparison_enabled
24
+ type: boolean
25
+ default: true
26
+ - name: status
27
+ type: enum
28
+ values: [active, inactive]
29
+ default: active
30
+ - name: sort_order
31
+ type: int
32
+ default: 0
33
+ - type: created_at
34
+ - type: updated_at
35
+ indices:
36
+ - columns: [slug]
37
+ isUnique: true
38
+ - columns: [parent_category_id, sort_order]
39
+ - columns: [status]
40
+ - columns: [comparison_enabled]
@@ -1,42 +1,42 @@
1
- columns:
2
- - type: pk
3
- - name: catalog_category_id
4
- type: fk
5
- references:
6
- table: catalog_category
7
- column: id
8
- onDelete: CASCADE
9
- - name: attribute_id
1
+ columns:
2
+ - type: pk
3
+ - name: catalog_category_id
4
+ type: fk
5
+ references:
6
+ table: catalog_category
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: attribute_id
10
10
  type: fk
11
11
  references:
12
12
  table: catalog_attribute
13
13
  column: id
14
14
  onDelete: CASCADE
15
- - name: is_required
16
- type: boolean
17
- default: false
18
- - name: is_highlight
19
- type: boolean
20
- default: false
21
- - name: is_filter_visible
22
- type: boolean
23
- default: true
24
- - name: is_comparison_visible
25
- type: boolean
26
- default: true
27
- - name: sort_order
28
- type: int
29
- default: 0
30
- - name: weight
31
- type: int
32
- default: 1
33
- - name: facet_mode
34
- type: enum
35
- values: [default, range, select, hidden]
36
- default: default
37
- - type: created_at
38
- - type: updated_at
39
- indices:
40
- - columns: [catalog_category_id, attribute_id]
41
- isUnique: true
42
- - columns: [catalog_category_id, sort_order]
15
+ - name: is_required
16
+ type: boolean
17
+ default: false
18
+ - name: is_highlight
19
+ type: boolean
20
+ default: false
21
+ - name: is_filter_visible
22
+ type: boolean
23
+ default: true
24
+ - name: is_comparison_visible
25
+ type: boolean
26
+ default: true
27
+ - name: sort_order
28
+ type: int
29
+ default: 0
30
+ - name: weight
31
+ type: int
32
+ default: 1
33
+ - name: facet_mode
34
+ type: enum
35
+ values: [default, range, select, hidden]
36
+ default: default
37
+ - type: created_at
38
+ - type: updated_at
39
+ indices:
40
+ - columns: [catalog_category_id, attribute_id]
41
+ isUnique: true
42
+ - columns: [catalog_category_id, sort_order]
@@ -1,50 +1,50 @@
1
- columns:
2
- - type: pk
3
- - name: offer_id
4
- type: fk
5
- references:
6
- table: catalog_offer
7
- column: id
8
- onDelete: CASCADE
9
- - name: product_id
10
- type: fk
11
- references:
12
- table: catalog_product
13
- column: id
14
- onDelete: CASCADE
15
- - name: site_id
16
- type: fk
17
- references:
18
- table: catalog_site
19
- column: id
20
- onDelete: CASCADE
21
- - name: comparison_id
22
- type: fk
23
- isNullable: true
24
- references:
25
- table: catalog_comparison
26
- column: id
27
- onDelete: SET NULL
28
- - name: clicked_at
29
- type: datetime
30
- - name: placement
31
- type: varchar
32
- length: 120
33
- isNullable: true
34
- - name: utm_json
35
- type: json
36
- isNullable: true
37
- - name: session_hash
38
- type: varchar
39
- length: 255
40
- isNullable: true
41
- - name: referrer_host
42
- type: varchar
43
- length: 255
44
- isNullable: true
45
- - type: created_at
46
- - type: updated_at
47
- indices:
48
- - columns: [offer_id, clicked_at]
49
- - columns: [site_id, clicked_at]
50
- - columns: [comparison_id, clicked_at]
1
+ columns:
2
+ - type: pk
3
+ - name: offer_id
4
+ type: fk
5
+ references:
6
+ table: catalog_offer
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: product_id
10
+ type: fk
11
+ references:
12
+ table: catalog_product
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: site_id
16
+ type: fk
17
+ references:
18
+ table: catalog_site
19
+ column: id
20
+ onDelete: CASCADE
21
+ - name: comparison_id
22
+ type: fk
23
+ isNullable: true
24
+ references:
25
+ table: catalog_comparison
26
+ column: id
27
+ onDelete: SET NULL
28
+ - name: clicked_at
29
+ type: datetime
30
+ - name: placement
31
+ type: varchar
32
+ length: 120
33
+ isNullable: true
34
+ - name: utm_json
35
+ type: json
36
+ isNullable: true
37
+ - name: session_hash
38
+ type: varchar
39
+ length: 255
40
+ isNullable: true
41
+ - name: referrer_host
42
+ type: varchar
43
+ length: 255
44
+ isNullable: true
45
+ - type: created_at
46
+ - type: updated_at
47
+ indices:
48
+ - columns: [offer_id, clicked_at]
49
+ - columns: [site_id, clicked_at]
50
+ - columns: [comparison_id, clicked_at]