@winible/winible-typed 2.51.3 → 2.52.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 (212) hide show
  1. package/README.md +104 -104
  2. package/dist/event-collector-models/conversion-log.js +49 -0
  3. package/dist/event-collector-models/conversion-log.js.map +1 -0
  4. package/dist/event-collector-models/event-send-log.js +54 -0
  5. package/dist/event-collector-models/event-send-log.js.map +1 -0
  6. package/dist/event-collector-models/index.js +15 -0
  7. package/dist/event-collector-models/index.js.map +1 -0
  8. package/dist/event-collector-models/send-log.js +75 -0
  9. package/dist/event-collector-models/send-log.js.map +1 -0
  10. package/dist/event-collector-models/ts-sequelize.js +64 -0
  11. package/dist/event-collector-models/ts-sequelize.js.map +1 -0
  12. package/dist/index.js +19 -19
  13. package/dist/migrations/20230104055346-oddsjam.js +500 -500
  14. package/dist/migrations/20230104233909-markets.js +27 -27
  15. package/dist/migrations/20230105005418-sportsbook.js +23 -23
  16. package/dist/migrations/20230106044910-player-result.js +58 -58
  17. package/dist/migrations/20230206061925-stale.js +12 -12
  18. package/dist/migrations/20230313175015-league-user.js +28 -28
  19. package/dist/migrations/20230405141245-deprecate-agencies.js +8 -8
  20. package/dist/migrations/20230405142440-deprecate-unused-tables.js +22 -22
  21. package/dist/migrations/20230410144940-deprecate-consent-people.js +8 -8
  22. package/dist/migrations/20230410174328-deprecate-consent-people-table.js +8 -8
  23. package/dist/migrations/20230410181920-migrate-credit-payments-to-transactions.js +8 -8
  24. package/dist/migrations/20230410202433-migrate-credit-payments-fields.js +11 -11
  25. package/dist/migrations/20230410211059-deprecate-credit-purchases.js +8 -8
  26. package/dist/migrations/20230410212035-deprecate-dashboard_user_permissions.js +9 -9
  27. package/dist/migrations/20230410212324-deprecate-non-breaking-tables.js +33 -33
  28. package/dist/migrations/20230411054826-create-users-table.js +140 -140
  29. package/dist/migrations/20230411202848-migrate_transactions_table.js +23 -23
  30. package/dist/migrations/20230411203543-migrate_league_users.js +8 -8
  31. package/dist/migrations/20230411205324-migrate_league.js +12 -12
  32. package/dist/migrations/20230411221159-migrate_media.js +8 -8
  33. package/dist/migrations/20230411221327-migrate_media_asset.js +9 -9
  34. package/dist/migrations/20230411221842-migrate_media_asset_fields.js +9 -9
  35. package/dist/migrations/20230411222018-migrate_notifications.js +24 -24
  36. package/dist/migrations/20230412190423-migrate_purchased_contents.js +9 -9
  37. package/dist/migrations/20230412202031-migrate_other_fields.js +26 -26
  38. package/dist/migrations/20230412213952-deprecate_phone_users_and_phone_owners.js +26 -26
  39. package/dist/migrations/20241123184623-recurly-payment-monitoring-whitelist.js +33 -0
  40. package/dist/migrations/20241123184623-recurly-payment-monitoring-whitelist.js.map +1 -0
  41. package/dist/migrations/20241123184623-whitelist.js +36 -36
  42. package/dist/migrations/20241204220824-pumping-risk-score-monitoring-table.js +47 -47
  43. package/dist/migrations/20241205003230-failed-transactions.js +67 -67
  44. package/dist/migrations/20241216145328-password-tokens.js +33 -33
  45. package/dist/scripts/cleanupRecurlyPlans.js +49 -49
  46. package/dist/scripts/deleteMalformedImages.js +86 -86
  47. package/dist/scripts/test.js +17 -17
  48. package/dist/src/index.js +8 -8
  49. package/dist/src/recurlyInstance.js +32 -32
  50. package/dist/src/types.js +86 -86
  51. package/dist/support/index.js +18 -18
  52. package/dist/support/slack-client.js +50 -50
  53. package/dist/support/uploadcare.js +142 -142
  54. package/dist/support/utils.js +68 -68
  55. package/dist/typed-model/affiliate-code.js +97 -97
  56. package/dist/typed-model/affiliate-links-types.js +28 -28
  57. package/dist/typed-model/application.js +89 -89
  58. package/dist/typed-model/bet.js +111 -111
  59. package/dist/typed-model/campaign-message.js +75 -78
  60. package/dist/typed-model/campaign-message.js.map +1 -1
  61. package/dist/typed-model/campaign-template.js +62 -67
  62. package/dist/typed-model/campaign-template.js.map +1 -1
  63. package/dist/typed-model/campaign.js +80 -78
  64. package/dist/typed-model/campaign.js.map +1 -1
  65. package/dist/typed-model/cancellation_offer.js +70 -70
  66. package/dist/typed-model/cancellation_reason.js +98 -98
  67. package/dist/typed-model/content-like.js +69 -69
  68. package/dist/typed-model/coupon_redemptions.js +64 -64
  69. package/dist/typed-model/creator-service-fee.js +50 -50
  70. package/dist/typed-model/discord-integration-log.js +62 -62
  71. package/dist/typed-model/discord-integration.js +128 -128
  72. package/dist/typed-model/failed-transactions.js +95 -95
  73. package/dist/typed-model/featured-creator.js +51 -51
  74. package/dist/typed-model/free-subscription-plan.js +66 -66
  75. package/dist/typed-model/index.js +129 -139
  76. package/dist/typed-model/index.js.map +1 -1
  77. package/dist/typed-model/integration.js +58 -58
  78. package/dist/typed-model/league-on-users.js +59 -59
  79. package/dist/typed-model/league.js +34 -34
  80. package/dist/typed-model/limited-offer.js +58 -58
  81. package/dist/typed-model/media-asset.js +63 -63
  82. package/dist/typed-model/media.js +54 -54
  83. package/dist/typed-model/migration-token.js +52 -52
  84. package/dist/typed-model/notification-preference.js +58 -58
  85. package/dist/typed-model/notification.js +89 -89
  86. package/dist/typed-model/organization.js +57 -57
  87. package/dist/typed-model/password-tokens.js +36 -36
  88. package/dist/typed-model/pb-sequelize.js +43 -43
  89. package/dist/typed-model/permission.js +36 -36
  90. package/dist/typed-model/post.js +128 -128
  91. package/dist/typed-model/post_on_integrations.js +81 -81
  92. package/dist/typed-model/posts-on-users.js +92 -92
  93. package/dist/typed-model/private-feed-users.js +42 -42
  94. package/dist/typed-model/pumping-risk-score-monitoring.js +54 -54
  95. package/dist/typed-model/recurly-account.js +33 -33
  96. package/dist/typed-model/recurly-payment-monitoring-whitelist.js +45 -0
  97. package/dist/typed-model/recurly-payment-monitoring-whitelist.js.map +1 -0
  98. package/dist/typed-model/sample.js +24 -24
  99. package/dist/typed-model/segment.js +51 -52
  100. package/dist/typed-model/segment.js.map +1 -1
  101. package/dist/typed-model/sms-custom-message.js +46 -46
  102. package/dist/typed-model/sport-on-posts.js +58 -58
  103. package/dist/typed-model/sport.js +29 -29
  104. package/dist/typed-model/store.js +152 -152
  105. package/dist/typed-model/stores_on_organizations.js +55 -55
  106. package/dist/typed-model/subscriber-discord-integration.js +82 -82
  107. package/dist/typed-model/subscriber-telegram-integration.js +82 -82
  108. package/dist/typed-model/subscribers-on-creators.js +80 -80
  109. package/dist/typed-model/subscription-coupon.js +96 -96
  110. package/dist/typed-model/subscription-plan-on-post.js +54 -54
  111. package/dist/typed-model/subscription-plan-on-users.js +143 -143
  112. package/dist/typed-model/subscription-plan.js +121 -121
  113. package/dist/typed-model/subscription-pricing-option-on-coupons.js +54 -54
  114. package/dist/typed-model/subscription-pricing-option.js +77 -77
  115. package/dist/typed-model/telegram-integration-code.js +38 -38
  116. package/dist/typed-model/telegram-integration-invite-link.js +38 -38
  117. package/dist/typed-model/telegram-integration-log.js +62 -62
  118. package/dist/typed-model/telegram-integration.js +109 -109
  119. package/dist/typed-model/transaction.js +109 -109
  120. package/dist/typed-model/trigger.js +63 -65
  121. package/dist/typed-model/trigger.js.map +1 -1
  122. package/dist/typed-model/user-cookie-preference.js +53 -53
  123. package/dist/typed-model/user-review.js +66 -66
  124. package/dist/typed-model/user-transaction-location.js +89 -89
  125. package/dist/typed-model/user.js +210 -210
  126. package/dist/typed-model/users-on-permissions.js +71 -71
  127. package/dist/typed-model/users_on_creators.js +70 -70
  128. package/dist/typed-model/users_on_organizations.js +55 -55
  129. package/dist/typed-model/whitelist.js +48 -48
  130. package/dist/typed-model/withdrawal.js +32 -32
  131. package/dist/webhooks/index.js +47 -47
  132. package/dist/webhooks/payment/index.js +8 -8
  133. package/dist/webhooks/payment/refund.js +38 -38
  134. package/index.ts +3 -3
  135. package/package.json +78 -79
  136. package/src/index.ts +1 -1
  137. package/src/recurlyInstance.ts +6 -6
  138. package/src/types.ts +139 -139
  139. package/support/index.ts +2 -2
  140. package/support/slack-client.ts +43 -43
  141. package/support/uploadcare.ts +191 -191
  142. package/support/utils.ts +72 -72
  143. package/typed-model/affiliate-code.ts +133 -133
  144. package/typed-model/affiliate-links-types.ts +45 -45
  145. package/typed-model/application.ts +124 -124
  146. package/typed-model/bet.ts +149 -149
  147. package/typed-model/campaign-message.ts +112 -115
  148. package/typed-model/campaign-template.ts +83 -89
  149. package/typed-model/campaign.ts +119 -121
  150. package/typed-model/cancellation_offer.ts +94 -94
  151. package/typed-model/cancellation_reason.ts +135 -135
  152. package/typed-model/content-like.ts +95 -95
  153. package/typed-model/coupon_redemptions.ts +90 -90
  154. package/typed-model/creator-service-fee.ts +69 -69
  155. package/typed-model/discord-integration-log.ts +87 -87
  156. package/typed-model/discord-integration.ts +164 -164
  157. package/typed-model/failed-transactions.ts +123 -123
  158. package/typed-model/featured-creator.ts +75 -75
  159. package/typed-model/free-subscription-plan.ts +97 -97
  160. package/typed-model/index.ts +61 -67
  161. package/typed-model/integration.ts +83 -83
  162. package/typed-model/league-on-users.ts +81 -81
  163. package/typed-model/league.ts +53 -53
  164. package/typed-model/limited-offer.ts +80 -80
  165. package/typed-model/media-asset.ts +87 -87
  166. package/typed-model/media.ts +80 -80
  167. package/typed-model/migration-token.ts +75 -75
  168. package/typed-model/notification-preference.ts +85 -85
  169. package/typed-model/notification.ts +135 -135
  170. package/typed-model/organization.ts +80 -80
  171. package/typed-model/password-tokens.ts +55 -55
  172. package/typed-model/pb-sequelize.ts +44 -44
  173. package/typed-model/permission.ts +62 -62
  174. package/typed-model/post.ts +170 -170
  175. package/typed-model/post_on_integrations.ts +104 -104
  176. package/typed-model/posts-on-users.ts +122 -122
  177. package/typed-model/private-feed-users.ts +63 -63
  178. package/typed-model/pumping-risk-score-monitoring.ts +73 -73
  179. package/typed-model/recurly-account.ts +51 -51
  180. package/typed-model/sample.ts +41 -41
  181. package/typed-model/segment.ts +79 -80
  182. package/typed-model/sms-custom-message.ts +66 -66
  183. package/typed-model/sport-on-posts.ts +80 -80
  184. package/typed-model/sport.ts +46 -46
  185. package/typed-model/store.ts +203 -203
  186. package/typed-model/stores_on_organizations.ts +78 -78
  187. package/typed-model/subscriber-discord-integration.ts +109 -109
  188. package/typed-model/subscriber-telegram-integration.ts +109 -109
  189. package/typed-model/subscribers-on-creators.ts +107 -107
  190. package/typed-model/subscription-coupon.ts +133 -133
  191. package/typed-model/subscription-plan-on-post.ts +77 -77
  192. package/typed-model/subscription-plan-on-users.ts +201 -201
  193. package/typed-model/subscription-plan.ts +173 -173
  194. package/typed-model/subscription-pricing-option-on-coupons.ts +78 -78
  195. package/typed-model/subscription-pricing-option.ts +106 -106
  196. package/typed-model/telegram-integration-code.ts +60 -60
  197. package/typed-model/telegram-integration-invite-link.ts +59 -59
  198. package/typed-model/telegram-integration-log.ts +86 -86
  199. package/typed-model/telegram-integration.ts +141 -141
  200. package/typed-model/transaction.ts +159 -159
  201. package/typed-model/trigger.ts +93 -95
  202. package/typed-model/user-cookie-preference.ts +71 -71
  203. package/typed-model/user-review.ts +87 -87
  204. package/typed-model/user-transaction-location.ts +117 -117
  205. package/typed-model/user.ts +273 -273
  206. package/typed-model/users-on-permissions.ts +96 -96
  207. package/typed-model/users_on_creators.ts +95 -95
  208. package/typed-model/users_on_organizations.ts +78 -78
  209. package/typed-model/whitelist.ts +66 -66
  210. package/typed-model/withdrawal.ts +50 -50
  211. package/dist/scripts/testModels.js +0 -57
  212. package/dist/scripts/testModels.js.map +0 -1
@@ -1,95 +1,93 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- Association,
8
- NonAttribute,
9
- } from "sequelize";
10
-
11
- import sequelize from "./pb-sequelize";
12
- import Campaign from "./campaign";
13
- import Segment from "./segment";
14
-
15
- class Trigger extends Model<
16
- InferAttributes<Trigger>,
17
- InferCreationAttributes<Trigger>
18
- > {
19
- declare triggerId: CreationOptional<number>;
20
- declare userId: number;
21
- declare campaignId: number;
22
- declare eventType: string;
23
- declare segmentId: number | null;
24
- declare createdAt: CreationOptional<Date>;
25
- declare updatedAt: CreationOptional<Date>;
26
-
27
- // Associations
28
- declare campaign?: NonAttribute<Campaign>;
29
- declare segment?: NonAttribute<Segment>;
30
-
31
- declare static associations: {
32
- campaign: Association<Trigger, Campaign>;
33
- segment: Association<Trigger, Segment>;
34
- };
35
- }
36
-
37
- Trigger.init(
38
- {
39
- triggerId: {
40
- type: DataTypes.INTEGER,
41
- primaryKey: true,
42
- autoIncrement: true,
43
- field: "trigger_id",
44
- },
45
- userId: {
46
- type: DataTypes.INTEGER,
47
- allowNull: false,
48
- field: "user_id",
49
- },
50
- campaignId: {
51
- type: DataTypes.INTEGER,
52
- allowNull: false,
53
- field: "campaign_id",
54
- references: {
55
- model: "campaign",
56
- key: "id",
57
- },
58
- },
59
- eventType: {
60
- type: DataTypes.STRING(255),
61
- allowNull: false,
62
- field: "event_type",
63
- },
64
- segmentId: {
65
- type: DataTypes.INTEGER,
66
- field: "segment_id",
67
- references: {
68
- model: "segment",
69
- key: "id",
70
- },
71
- },
72
- createdAt: {
73
- type: DataTypes.DATE,
74
- field: "created_at",
75
- defaultValue: DataTypes.NOW,
76
- },
77
- updatedAt: {
78
- type: DataTypes.DATE,
79
- field: "updated_at",
80
- defaultValue: DataTypes.NOW,
81
- },
82
- },
83
- {
84
- tableName: "trigger",
85
- sequelize,
86
- }
87
- );
88
-
89
- // Associations
90
- Campaign.hasMany(Trigger, { foreignKey: "campaignId" });
91
- Trigger.belongsTo(Campaign, { foreignKey: "campaignId" });
92
- Segment.hasMany(Trigger, { foreignKey: "segmentId" });
93
- Trigger.belongsTo(Segment, { foreignKey: "segmentId" });
94
-
95
- export default Trigger;
1
+ import {
2
+ Model,
3
+ InferAttributes,
4
+ InferCreationAttributes,
5
+ CreationOptional,
6
+ DataTypes,
7
+ Association,
8
+ NonAttribute,
9
+ } from "sequelize";
10
+
11
+ import sequelize from "./pb-sequelize";
12
+ import Campaign from "./campaign";
13
+ import Segment from "./segment";
14
+
15
+ class Trigger extends Model<
16
+ InferAttributes<Trigger>,
17
+ InferCreationAttributes<Trigger>
18
+ > {
19
+ declare triggerId: CreationOptional<number>;
20
+ declare userId: number;
21
+ declare campaignId: number;
22
+ declare eventType: string;
23
+ declare segmentId: number | null;
24
+ declare createdAt: CreationOptional<Date>;
25
+ declare updatedAt: CreationOptional<Date>;
26
+
27
+ // Associations
28
+ declare campaign?: NonAttribute<Campaign>;
29
+ declare segment?: NonAttribute<Segment>;
30
+
31
+ declare static associations: {
32
+ campaign: Association<Trigger, Campaign>;
33
+ segment: Association<Trigger, Segment>;
34
+ };
35
+ }
36
+
37
+ Trigger.init(
38
+ {
39
+ triggerId: {
40
+ type: DataTypes.INTEGER,
41
+ primaryKey: true,
42
+ autoIncrement: true,
43
+ field: "trigger_id",
44
+ },
45
+ userId: {
46
+ type: DataTypes.INTEGER,
47
+ allowNull: false,
48
+ field: "user_id",
49
+ },
50
+ campaignId: {
51
+ type: DataTypes.INTEGER,
52
+ allowNull: false,
53
+ field: "campaign_id",
54
+ references: {
55
+ model: "campaign",
56
+ key: "id",
57
+ },
58
+ },
59
+ eventType: {
60
+ type: DataTypes.STRING(255),
61
+ allowNull: false,
62
+ field: "event_type",
63
+ },
64
+ segmentId: {
65
+ type: DataTypes.INTEGER,
66
+ field: "segment_id",
67
+ references: {
68
+ model: "segment",
69
+ key: "id",
70
+ },
71
+ },
72
+ createdAt: {
73
+ type: DataTypes.DATE,
74
+ field: "created_at",
75
+ defaultValue: DataTypes.NOW,
76
+ },
77
+ updatedAt: {
78
+ type: DataTypes.DATE,
79
+ field: "updated_at",
80
+ defaultValue: DataTypes.NOW,
81
+ },
82
+ },
83
+ {
84
+ tableName: "trigger",
85
+ sequelize,
86
+ }
87
+ );
88
+
89
+ // Associations
90
+ Trigger.belongsTo(Campaign, { foreignKey: "campaignId" });
91
+ Trigger.belongsTo(Segment, { foreignKey: "segmentId" });
92
+
93
+ export default Trigger;
@@ -1,71 +1,71 @@
1
- import {
2
- Model,
3
- DataTypes,
4
- InferAttributes,
5
- InferCreationAttributes,
6
- CreationOptional,
7
- } from "sequelize";
8
-
9
- import sequelize from "./pb-sequelize";
10
- import User from "./user";
11
-
12
- export class UserCookiePreference extends Model<
13
- InferAttributes<UserCookiePreference>,
14
- InferCreationAttributes<UserCookiePreference>
15
- > {
16
- declare id: CreationOptional<string>;
17
- declare userId: string;
18
- declare essential: string;
19
- declare analytics: string;
20
- declare advertising: string;
21
- declare createdAt: CreationOptional<Date>;
22
- declare updatedAt: CreationOptional<Date>;
23
- declare deletedAt: CreationOptional<Date>;
24
- }
25
-
26
- UserCookiePreference.init(
27
- {
28
- id: {
29
- type: DataTypes.BIGINT,
30
- primaryKey: true,
31
- allowNull: false,
32
- defaultValue: sequelize.fn("next_id"),
33
- },
34
- userId: {
35
- type: DataTypes.BIGINT,
36
- field: "user_id",
37
- },
38
- essential: {
39
- type: DataTypes.BOOLEAN,
40
- allowNull: false,
41
- defaultValue: true,
42
- },
43
- analytics: {
44
- type: DataTypes.BOOLEAN,
45
- allowNull: false,
46
- defaultValue: false,
47
- },
48
- advertising: {
49
- type: DataTypes.BOOLEAN,
50
- allowNull: false,
51
- defaultValue: false,
52
- },
53
- createdAt: DataTypes.DATE,
54
- updatedAt: DataTypes.DATE,
55
- deletedAt: DataTypes.DATE,
56
- },
57
- {
58
- sequelize,
59
- tableName: "user_cookie_preferences",
60
- timestamps: true,
61
- paranoid: true,
62
- }
63
- );
64
-
65
- UserCookiePreference.belongsTo(User, {
66
- foreignKey: "userId",
67
- as: "User",
68
- targetKey: "id",
69
- });
70
-
71
- export default UserCookiePreference;
1
+ import {
2
+ Model,
3
+ DataTypes,
4
+ InferAttributes,
5
+ InferCreationAttributes,
6
+ CreationOptional,
7
+ } from "sequelize";
8
+
9
+ import sequelize from "./pb-sequelize";
10
+ import User from "./user";
11
+
12
+ export class UserCookiePreference extends Model<
13
+ InferAttributes<UserCookiePreference>,
14
+ InferCreationAttributes<UserCookiePreference>
15
+ > {
16
+ declare id: CreationOptional<string>;
17
+ declare userId: string;
18
+ declare essential: string;
19
+ declare analytics: string;
20
+ declare advertising: string;
21
+ declare createdAt: CreationOptional<Date>;
22
+ declare updatedAt: CreationOptional<Date>;
23
+ declare deletedAt: CreationOptional<Date>;
24
+ }
25
+
26
+ UserCookiePreference.init(
27
+ {
28
+ id: {
29
+ type: DataTypes.BIGINT,
30
+ primaryKey: true,
31
+ allowNull: false,
32
+ defaultValue: sequelize.fn("next_id"),
33
+ },
34
+ userId: {
35
+ type: DataTypes.BIGINT,
36
+ field: "user_id",
37
+ },
38
+ essential: {
39
+ type: DataTypes.BOOLEAN,
40
+ allowNull: false,
41
+ defaultValue: true,
42
+ },
43
+ analytics: {
44
+ type: DataTypes.BOOLEAN,
45
+ allowNull: false,
46
+ defaultValue: false,
47
+ },
48
+ advertising: {
49
+ type: DataTypes.BOOLEAN,
50
+ allowNull: false,
51
+ defaultValue: false,
52
+ },
53
+ createdAt: DataTypes.DATE,
54
+ updatedAt: DataTypes.DATE,
55
+ deletedAt: DataTypes.DATE,
56
+ },
57
+ {
58
+ sequelize,
59
+ tableName: "user_cookie_preferences",
60
+ timestamps: true,
61
+ paranoid: true,
62
+ }
63
+ );
64
+
65
+ UserCookiePreference.belongsTo(User, {
66
+ foreignKey: "userId",
67
+ as: "User",
68
+ targetKey: "id",
69
+ });
70
+
71
+ export default UserCookiePreference;
@@ -1,87 +1,87 @@
1
- import {
2
- Model,
3
- DataTypes,
4
- InferAttributes,
5
- InferCreationAttributes,
6
- CreationOptional,
7
- } from "sequelize";
8
-
9
- import sequelize from "./pb-sequelize";
10
- import User from "./user";
11
-
12
- export class UserReview extends Model<
13
- InferAttributes<UserReview>,
14
- InferCreationAttributes<UserReview>
15
- > {
16
- declare id: CreationOptional<string>;
17
- declare creatorId: string;
18
- declare userId: string;
19
- declare mediaUrls: string[];
20
- declare rating: number;
21
- declare name: string;
22
- declare reviewText?: string;
23
- declare order?: number;
24
- declare createdAt: CreationOptional<Date>;
25
- declare deletedAt: CreationOptional<Date>;
26
- }
27
-
28
- UserReview.init(
29
- {
30
- id: {
31
- type: DataTypes.BIGINT,
32
- primaryKey: true,
33
- allowNull: false,
34
- defaultValue: sequelize.fn("next_id"),
35
- },
36
- creatorId: {
37
- type: DataTypes.BIGINT,
38
- allowNull: false,
39
- field: "creator_id",
40
- },
41
- userId: {
42
- type: DataTypes.BIGINT,
43
- field: "user_id",
44
- },
45
- mediaUrls: {
46
- type: DataTypes.ARRAY(DataTypes.TEXT),
47
- defaultValue: [],
48
- field: "media_urls",
49
- },
50
- rating: {
51
- type: DataTypes.FLOAT,
52
- allowNull: false,
53
- },
54
- name: {
55
- type: DataTypes.TEXT,
56
- },
57
- reviewText: {
58
- type: DataTypes.TEXT,
59
- field: "review_text",
60
- },
61
- order: {
62
- type: DataTypes.INTEGER,
63
- },
64
- createdAt: DataTypes.DATE,
65
- deletedAt: DataTypes.DATE,
66
- },
67
- {
68
- sequelize,
69
- tableName: "user_reviews",
70
- timestamps: false,
71
- paranoid: true,
72
- }
73
- );
74
-
75
- UserReview.belongsTo(User, {
76
- foreignKey: "userId",
77
- as: "User",
78
- targetKey: "id",
79
- });
80
-
81
- UserReview.belongsTo(User, {
82
- foreignKey: "creatorId",
83
- as: "Creator",
84
- targetKey: "id",
85
- });
86
-
87
- export default UserReview;
1
+ import {
2
+ Model,
3
+ DataTypes,
4
+ InferAttributes,
5
+ InferCreationAttributes,
6
+ CreationOptional,
7
+ } from "sequelize";
8
+
9
+ import sequelize from "./pb-sequelize";
10
+ import User from "./user";
11
+
12
+ export class UserReview extends Model<
13
+ InferAttributes<UserReview>,
14
+ InferCreationAttributes<UserReview>
15
+ > {
16
+ declare id: CreationOptional<string>;
17
+ declare creatorId: string;
18
+ declare userId: string;
19
+ declare mediaUrls: string[];
20
+ declare rating: number;
21
+ declare name: string;
22
+ declare reviewText?: string;
23
+ declare order?: number;
24
+ declare createdAt: CreationOptional<Date>;
25
+ declare deletedAt: CreationOptional<Date>;
26
+ }
27
+
28
+ UserReview.init(
29
+ {
30
+ id: {
31
+ type: DataTypes.BIGINT,
32
+ primaryKey: true,
33
+ allowNull: false,
34
+ defaultValue: sequelize.fn("next_id"),
35
+ },
36
+ creatorId: {
37
+ type: DataTypes.BIGINT,
38
+ allowNull: false,
39
+ field: "creator_id",
40
+ },
41
+ userId: {
42
+ type: DataTypes.BIGINT,
43
+ field: "user_id",
44
+ },
45
+ mediaUrls: {
46
+ type: DataTypes.ARRAY(DataTypes.TEXT),
47
+ defaultValue: [],
48
+ field: "media_urls",
49
+ },
50
+ rating: {
51
+ type: DataTypes.FLOAT,
52
+ allowNull: false,
53
+ },
54
+ name: {
55
+ type: DataTypes.TEXT,
56
+ },
57
+ reviewText: {
58
+ type: DataTypes.TEXT,
59
+ field: "review_text",
60
+ },
61
+ order: {
62
+ type: DataTypes.INTEGER,
63
+ },
64
+ createdAt: DataTypes.DATE,
65
+ deletedAt: DataTypes.DATE,
66
+ },
67
+ {
68
+ sequelize,
69
+ tableName: "user_reviews",
70
+ timestamps: false,
71
+ paranoid: true,
72
+ }
73
+ );
74
+
75
+ UserReview.belongsTo(User, {
76
+ foreignKey: "userId",
77
+ as: "User",
78
+ targetKey: "id",
79
+ });
80
+
81
+ UserReview.belongsTo(User, {
82
+ foreignKey: "creatorId",
83
+ as: "Creator",
84
+ targetKey: "id",
85
+ });
86
+
87
+ export default UserReview;