@winible/winible-typed 1.0.10 → 2.0.1

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 (224) hide show
  1. package/dist/migrations/20230330174702-extend-premium-content.js +35 -0
  2. package/dist/migrations/20230330174702-extend-premium-content.js.map +1 -0
  3. package/dist/migrations/20230405141245-deprecate-agencies.js +9 -0
  4. package/dist/migrations/20230405141245-deprecate-agencies.js.map +1 -0
  5. package/dist/migrations/20230405142440-deprecate-unused-tables.js +23 -0
  6. package/dist/migrations/20230405142440-deprecate-unused-tables.js.map +1 -0
  7. package/dist/migrations/20230410144940-deprecate-consent-people.js +9 -0
  8. package/dist/migrations/20230410144940-deprecate-consent-people.js.map +1 -0
  9. package/dist/migrations/20230410174328-deprecate-consent-people-table.js +9 -0
  10. package/dist/migrations/20230410174328-deprecate-consent-people-table.js.map +1 -0
  11. package/dist/migrations/20230410181920-migrate-credit-payments-to-transactions.js +9 -0
  12. package/dist/migrations/20230410181920-migrate-credit-payments-to-transactions.js.map +1 -0
  13. package/dist/migrations/20230410202433-migrate-credit-payments-fields.js +12 -0
  14. package/dist/migrations/20230410202433-migrate-credit-payments-fields.js.map +1 -0
  15. package/dist/migrations/20230410211059-deprecate-credit-purchases.js +9 -0
  16. package/dist/migrations/20230410211059-deprecate-credit-purchases.js.map +1 -0
  17. package/dist/migrations/20230410212035-deprecate-dashboard_user_permissions.js +10 -0
  18. package/dist/migrations/20230410212035-deprecate-dashboard_user_permissions.js.map +1 -0
  19. package/dist/migrations/20230410212324-deprecate-non-breaking-tables.js +34 -0
  20. package/dist/migrations/20230410212324-deprecate-non-breaking-tables.js.map +1 -0
  21. package/dist/migrations/20230411054826-create-users-table.js +141 -0
  22. package/dist/migrations/20230411054826-create-users-table.js.map +1 -0
  23. package/dist/migrations/20230411202848-migrate_transactions_table.js +24 -0
  24. package/dist/migrations/20230411202848-migrate_transactions_table.js.map +1 -0
  25. package/dist/migrations/20230411203543-migrate_league_users.js +9 -0
  26. package/dist/migrations/20230411203543-migrate_league_users.js.map +1 -0
  27. package/dist/migrations/20230411205324-migrate_league.js +13 -0
  28. package/dist/migrations/20230411205324-migrate_league.js.map +1 -0
  29. package/dist/migrations/20230411221159-migrate_media.js +9 -0
  30. package/dist/migrations/20230411221159-migrate_media.js.map +1 -0
  31. package/dist/migrations/20230411221327-migrate_media_asset.js +10 -0
  32. package/dist/migrations/20230411221327-migrate_media_asset.js.map +1 -0
  33. package/dist/migrations/20230411221842-migrate_media_asset_fields.js +10 -0
  34. package/dist/migrations/20230411221842-migrate_media_asset_fields.js.map +1 -0
  35. package/dist/migrations/20230411222018-migrate_notifications.js +25 -0
  36. package/dist/migrations/20230411222018-migrate_notifications.js.map +1 -0
  37. package/dist/scripts/cleanupRecurlyPlans.js +12 -5
  38. package/dist/scripts/cleanupRecurlyPlans.js.map +1 -1
  39. package/dist/scripts/mapCurrentPaymentsToInvoiceId.js +12 -5
  40. package/dist/scripts/mapCurrentPaymentsToInvoiceId.js.map +1 -1
  41. package/dist/src/index.js +1 -18
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/typed-model/credit-payment.js +133 -82
  44. package/dist/typed-model/credit-payment.js.map +1 -1
  45. package/dist/typed-model/index.js +3 -81
  46. package/dist/typed-model/index.js.map +1 -1
  47. package/dist/typed-model/league-user.js +28 -4
  48. package/dist/typed-model/league-user.js.map +1 -1
  49. package/dist/typed-model/media-asset.js +0 -9
  50. package/dist/typed-model/media-asset.js.map +1 -1
  51. package/dist/typed-model/notification.js +34 -24
  52. package/dist/typed-model/notification.js.map +1 -1
  53. package/dist/typed-model/pb-sequelize.js +18 -4
  54. package/dist/typed-model/pb-sequelize.js.map +1 -1
  55. package/dist/typed-model/subscription-plan-on-premium-content.js +57 -0
  56. package/dist/typed-model/subscription-plan-on-premium-content.js.map +1 -0
  57. package/dist/typed-model/subscription-plan.js +0 -9
  58. package/dist/typed-model/subscription-plan.js.map +1 -1
  59. package/dist/typed-model/subscription.js +0 -14
  60. package/dist/typed-model/subscription.js.map +1 -1
  61. package/dist/typed-model/user.js +194 -0
  62. package/dist/typed-model/user.js.map +1 -0
  63. package/package.json +3 -2
  64. package/src/index.ts +0 -2
  65. package/typed-model/credit-payment.ts +124 -126
  66. package/typed-model/index.ts +1 -51
  67. package/typed-model/media-asset.ts +0 -10
  68. package/typed-model/notification.ts +39 -44
  69. package/typed-model/pb-sequelize.ts +18 -4
  70. package/typed-model/subscription-plan.ts +0 -10
  71. package/typed-model/subscription.ts +1 -15
  72. package/typed-model/user.ts +248 -0
  73. package/dist/index.d.ts +0 -3
  74. package/dist/migrations/20220601151258-custom_name_describing_your_migration.d.ts +0 -6
  75. package/dist/migrations/20220605225655-create-dashboard-user-permissions.d.ts +0 -6
  76. package/dist/migrations/20220606001300-update-dashboard-user-permissions.d.ts +0 -6
  77. package/dist/migrations/20220607091109-add-read-date-for-message.d.ts +0 -6
  78. package/dist/migrations/20220616225456-add-delete-columns.d.ts +0 -6
  79. package/dist/migrations/20220709202211-disable-feed.d.ts +0 -6
  80. package/dist/migrations/20220723215213-limit-promotion-claims.d.ts +0 -6
  81. package/dist/migrations/20220723220233-num_claims.d.ts +0 -6
  82. package/dist/migrations/20220723221907-default_false_promos.d.ts +0 -6
  83. package/dist/migrations/20220724172559-default_zero_claims.d.ts +0 -6
  84. package/dist/migrations/20220724201419-pinned_post.d.ts +0 -6
  85. package/dist/migrations/20220729164625-unsend_mass.d.ts +0 -6
  86. package/dist/migrations/20220823033002-interval-unit.d.ts +0 -6
  87. package/dist/migrations/20220830193530-processorId.d.ts +0 -6
  88. package/dist/migrations/20220907121932-add-processor-to-sub.d.ts +0 -6
  89. package/dist/migrations/20220907212232-add-trans-id.d.ts +0 -6
  90. package/dist/migrations/20220907220423-big-int-trans.d.ts +0 -6
  91. package/dist/migrations/20220909161902-add-stale.d.ts +0 -6
  92. package/dist/migrations/20220922000225-verified-spender.d.ts +0 -6
  93. package/dist/migrations/20220922212108-verified-spender-2.d.ts +0 -6
  94. package/dist/migrations/20221013223648-product-subscription-list.d.ts +0 -6
  95. package/dist/migrations/20221014001037-product-subscription-list.d.ts +0 -6
  96. package/dist/migrations/20221026055245-update-type.d.ts +0 -6
  97. package/dist/migrations/20221108060019-recurly-sub.d.ts +0 -6
  98. package/dist/migrations/20221110170148-rename-recurly-account.d.ts +0 -6
  99. package/dist/migrations/20221112212510-archive-promo.d.ts +0 -6
  100. package/dist/migrations/20221117044529-sub-status.d.ts +0 -6
  101. package/dist/migrations/20221122051433-default-plan.d.ts +0 -6
  102. package/dist/migrations/20221128034620-invoice-id.d.ts +0 -6
  103. package/dist/migrations/20230313175014-league-user.js +0 -27
  104. package/dist/migrations/20230313175014-league-user.js.map +0 -1
  105. package/dist/scripts/bet-syncing/checkForPrizePicks.js +0 -85
  106. package/dist/scripts/bet-syncing/checkForPrizePicks.js.map +0 -1
  107. package/dist/scripts/bet-syncing/pullTeams.d.ts +0 -1
  108. package/dist/scripts/cleanupRecurlyPlans.d.ts +0 -1
  109. package/dist/scripts/createDashboardLink.d.ts +0 -1
  110. package/dist/scripts/createRecurlyPlans.d.ts +0 -1
  111. package/dist/scripts/deleteMalformedImages.d.ts +0 -1
  112. package/dist/scripts/fixSaltedPasswords.js +0 -40
  113. package/dist/scripts/fixSaltedPasswords.js.map +0 -1
  114. package/dist/scripts/mapCurrentPaymentsToInvoiceId.d.ts +0 -1
  115. package/dist/scripts/payoutRecurlySubs.d.ts +0 -1
  116. package/dist/scripts/payoutSubscriptions.d.ts +0 -1
  117. package/dist/scripts/removeUnreferenceSubs.d.ts +0 -1
  118. package/dist/scripts/test.d.ts +0 -1
  119. package/dist/slack/index.d.ts +0 -1
  120. package/dist/slack/v1/bypassCreator.d.ts +0 -8
  121. package/dist/slack/v1/cancelSubscription.d.ts +0 -6
  122. package/dist/slack/v1/changeName.d.ts +0 -8
  123. package/dist/slack/v1/checkAuthSub.d.ts +0 -6
  124. package/dist/slack/v1/dashboardLink.d.ts +0 -8
  125. package/dist/slack/v1/index.d.ts +0 -7
  126. package/dist/slack/v1/refund.d.ts +0 -6
  127. package/dist/slack/v1/searchUser.d.ts +0 -6
  128. package/dist/src/index.d.ts +0 -3
  129. package/dist/src/pk-client.d.ts +0 -151
  130. package/dist/src/pk-sub.d.ts +0 -77
  131. package/dist/src/recurlyInstance.d.ts +0 -3
  132. package/dist/src/types.d.ts +0 -30
  133. package/dist/support/index.d.ts +0 -2
  134. package/dist/support/slack-client.d.ts +0 -3
  135. package/dist/support/uploadcare.d.ts +0 -14
  136. package/dist/support/utils.d.ts +0 -2
  137. package/dist/typed-model/asset-category.d.ts +0 -9
  138. package/dist/typed-model/asset-constent-person.d.ts +0 -13
  139. package/dist/typed-model/bet.d.ts +0 -12
  140. package/dist/typed-model/blocked-ip.d.ts +0 -8
  141. package/dist/typed-model/category-tag.d.ts +0 -9
  142. package/dist/typed-model/consent-person.d.ts +0 -13
  143. package/dist/typed-model/content-category-tag.d.ts +0 -9
  144. package/dist/typed-model/content-like.d.ts +0 -10
  145. package/dist/typed-model/credit-payment.d.ts +0 -34
  146. package/dist/typed-model/credit-payout.d.ts +0 -10
  147. package/dist/typed-model/credit-purchase.d.ts +0 -10
  148. package/dist/typed-model/customer-profile.d.ts +0 -17
  149. package/dist/typed-model/dashboard-user-permissions.d.ts +0 -9
  150. package/dist/typed-model/dashboard-user.d.ts +0 -20
  151. package/dist/typed-model/fan-list.d.ts +0 -10
  152. package/dist/typed-model/fraud.d.ts +0 -9
  153. package/dist/typed-model/game.d.ts +0 -56
  154. package/dist/typed-model/index.d.ts +0 -46
  155. package/dist/typed-model/league.d.ts +0 -9
  156. package/dist/typed-model/list-member.d.ts +0 -9
  157. package/dist/typed-model/mass-message.d.ts +0 -11
  158. package/dist/typed-model/media-asset.d.ts +0 -15
  159. package/dist/typed-model/media-category.d.ts +0 -10
  160. package/dist/typed-model/media.d.ts +0 -14
  161. package/dist/typed-model/message-media.d.ts +0 -9
  162. package/dist/typed-model/message.d.ts +0 -27
  163. package/dist/typed-model/notification.d.ts +0 -18
  164. package/dist/typed-model/odds.d.ts +0 -30
  165. package/dist/typed-model/parlay.d.ts +0 -8
  166. package/dist/typed-model/pb-sequelize.d.ts +0 -3
  167. package/dist/typed-model/phone-chat-participation.d.ts +0 -20
  168. package/dist/typed-model/phone-chat.d.ts +0 -16
  169. package/dist/typed-model/phone-owner.d.ts +0 -53
  170. package/dist/typed-model/phone-user.d.ts +0 -21
  171. package/dist/typed-model/player.d.ts +0 -22
  172. package/dist/typed-model/premium-content.d.ts +0 -23
  173. package/dist/typed-model/purchased-content.d.ts +0 -11
  174. package/dist/typed-model/recurly-account.d.ts +0 -9
  175. package/dist/typed-model/short-url.d.ts +0 -12
  176. package/dist/typed-model/subscription-bundle.d.ts +0 -12
  177. package/dist/typed-model/subscription-category-tags.d.ts +0 -9
  178. package/dist/typed-model/subscription-plan.d.ts +0 -27
  179. package/dist/typed-model/subscription-promotion.d.ts +0 -19
  180. package/dist/typed-model/subscription.d.ts +0 -26
  181. package/dist/typed-model/team.d.ts +0 -16
  182. package/dist/typed-model/twilio-phone.d.ts +0 -17
  183. package/dist/typed-model/user-follow.d.ts +0 -13
  184. package/dist/typed-model/verification-code.d.ts +0 -11
  185. package/dist/webhooks/index.d.ts +0 -1
  186. package/dist/webhooks/payment/index.d.ts +0 -1
  187. package/dist/webhooks/payment/refund.d.ts +0 -2
  188. package/src/pk-client.ts +0 -1650
  189. package/src/pk-sub.ts +0 -455
  190. package/typed-model/asset-category.ts +0 -57
  191. package/typed-model/asset-constent-person.ts +0 -82
  192. package/typed-model/bet.ts +0 -84
  193. package/typed-model/blocked-ip.ts +0 -52
  194. package/typed-model/category-tag.ts +0 -66
  195. package/typed-model/consent-person.ts +0 -78
  196. package/typed-model/content-category-tag.ts +0 -79
  197. package/typed-model/credit-purchase.ts +0 -67
  198. package/typed-model/customer-profile.ts +0 -71
  199. package/typed-model/dashboard-user-permissions.ts +0 -51
  200. package/typed-model/dashboard-user.ts +0 -146
  201. package/typed-model/fan-list.ts +0 -68
  202. package/typed-model/fraud.ts +0 -62
  203. package/typed-model/game.ts +0 -311
  204. package/typed-model/list-member.ts +0 -67
  205. package/typed-model/market.ts +0 -54
  206. package/typed-model/mass-message.ts +0 -64
  207. package/typed-model/media-category.ts +0 -70
  208. package/typed-model/message-media.ts +0 -74
  209. package/typed-model/message.ts +0 -258
  210. package/typed-model/odds.ts +0 -238
  211. package/typed-model/parlay.ts +0 -47
  212. package/typed-model/phone-chat-participation.ts +0 -166
  213. package/typed-model/phone-chat.ts +0 -185
  214. package/typed-model/player-result.ts +0 -93
  215. package/typed-model/player.ts +0 -118
  216. package/typed-model/short-url.ts +0 -120
  217. package/typed-model/sportsbook.ts +0 -48
  218. package/typed-model/subscription-bundle.ts +0 -80
  219. package/typed-model/subscription-category-tags.ts +0 -79
  220. package/typed-model/subscription-promotion.ts +0 -134
  221. package/typed-model/team.ts +0 -91
  222. package/typed-model/twilio-phone.ts +0 -149
  223. package/typed-model/user-follow.ts +0 -141
  224. package/typed-model/verification-code.ts +0 -74
@@ -1,258 +0,0 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- fn,
8
- NOW,
9
- Op,
10
- literal,
11
- } from "sequelize";
12
- import CreditPayments from "./credit-payment";
13
- import MediaAsset from "./media-asset";
14
-
15
- import sequelize from "./pb-sequelize";
16
- import PhoneOwner from "./phone-owner";
17
- import PhoneUser from "./phone-user";
18
- import Notification from "./notification";
19
- import Media from "./media";
20
- import MessageMedia from "./message-media";
21
- import MassMessage from "./mass-message";
22
-
23
- // order of InferAttributes & InferCreationAttributes is important.
24
- class Message extends Model<
25
- InferAttributes<Message>,
26
- InferCreationAttributes<Message>
27
- > {
28
- // 'CreationOptional' is a special type that marks the field as optional
29
- // when creating an instance of the model (such as using Model.create()).
30
- declare id: CreationOptional<string>;
31
- declare fromOwner: boolean;
32
- declare userId: string;
33
- declare ownerId: string;
34
- declare message: string;
35
- declare isTip: boolean;
36
- declare amountInCents?: number;
37
- declare creditPaymentId?: string;
38
- declare isRead: boolean;
39
- declare massMessageId?: string;
40
- declare messageMediaId?: string;
41
- declare isFollowTemplate?: boolean;
42
- declare isSubscriberTemplate?: boolean;
43
- declare sendDate: Date;
44
- declare readDate: Date;
45
- declare unsendDate: Date;
46
- declare createdAt: CreationOptional<Date>;
47
- declare updatedAt: CreationOptional<Date>;
48
- static sendMessage: (
49
- message: Message,
50
- mediaAssets?: MediaAsset[]
51
- ) => Promise<Message | null>;
52
- static getPurchasedMessages: (
53
- ownerId: string,
54
- userId: string,
55
- earliestId: string
56
- ) => Promise<Message[]>;
57
- static readMessages: (ownerId: string, userId: string) => Promise<void>;
58
- static getConversationsForOwner: (ownerId: string) => Promise<Message[]>;
59
- }
60
-
61
- Message.init(
62
- {
63
- id: {
64
- type: DataTypes.BIGINT,
65
- defaultValue: fn("next_id"),
66
- allowNull: false,
67
- primaryKey: true,
68
- },
69
- fromOwner: {
70
- field: "from_owner",
71
- type: DataTypes.BOOLEAN,
72
- defaultValue: false,
73
- },
74
- userId: {
75
- type: DataTypes.BIGINT,
76
- field: "user_id",
77
- },
78
- ownerId: {
79
- type: DataTypes.BIGINT,
80
- field: "owner_id",
81
- },
82
- message: {
83
- type: DataTypes.STRING(500),
84
- field: "message",
85
- },
86
- isTip: {
87
- field: "is_tip",
88
- type: DataTypes.BOOLEAN,
89
- defaultValue: false,
90
- },
91
- amountInCents: {
92
- field: "amount_in_cents",
93
- type: DataTypes.INTEGER,
94
- },
95
- creditPaymentId: {
96
- type: DataTypes.BIGINT,
97
- field: "credit_payment_id",
98
- },
99
- isRead: {
100
- field: "is_read",
101
- type: DataTypes.BOOLEAN,
102
- defaultValue: false,
103
- },
104
- massMessageId: {
105
- type: DataTypes.BIGINT,
106
- field: "mass_message_id",
107
- },
108
- messageMediaId: {
109
- type: DataTypes.BIGINT,
110
- field: "message_media_id",
111
- },
112
- isFollowTemplate: {
113
- type: DataTypes.BOOLEAN,
114
- field: "is_follow_template",
115
- },
116
- isSubscriberTemplate: {
117
- type: DataTypes.BOOLEAN,
118
- field: "is_sub_template",
119
- },
120
- sendDate: {
121
- type: DataTypes.DATE,
122
- field: "send_date",
123
- defaultValue: NOW,
124
- allowNull: false,
125
- },
126
- readDate: {
127
- type: DataTypes.DATE,
128
- field: "read_date",
129
- defaultValue: null,
130
- },
131
- unsendDate: {
132
- type: DataTypes.DATE,
133
- field: "unsend_date",
134
- defaultValue: null,
135
- },
136
- createdAt: DataTypes.DATE,
137
- updatedAt: DataTypes.DATE,
138
- },
139
- {
140
- tableName: "messages",
141
- sequelize,
142
- }
143
- );
144
-
145
- /*
146
- ====================================================================
147
- Class functions
148
- ====================================================================
149
- */
150
-
151
- Message.sendMessage = async (message: Message, mediaAssets?: MediaAsset[]) => {
152
- if (message.isTip) {
153
- const user = await PhoneUser.getById(message.userId);
154
- const owner = await PhoneOwner.getById(message.ownerId);
155
- const cp = await CreditPayments.logTip(
156
- user!,
157
- owner!,
158
- message.amountInCents!
159
- );
160
- message.creditPaymentId = cp.id;
161
- }
162
-
163
- const createdMessage = await Message.create(message);
164
-
165
- if (mediaAssets && mediaAssets.length > 0) {
166
- mediaAssets.map((ma, index) => {
167
- return { ...ma, index };
168
- });
169
-
170
- let alreadyCreatedAssets = mediaAssets.filter((ma) => !!ma.id) || [];
171
- let needsCreationAssets = mediaAssets.filter((ma) => !ma.id) || [];
172
-
173
- let newlyCreatedAssets = await MediaAsset.bulkCreate(needsCreationAssets, {
174
- returning: true,
175
- });
176
-
177
- let mediaObjects = alreadyCreatedAssets
178
- .concat(newlyCreatedAssets)
179
- .map((ma) => {
180
- let order = mediaAssets.findIndex(
181
- (a) => a.id === ma.id || a.url === ma.url
182
- );
183
- return {
184
- order,
185
- messageId: createdMessage.id,
186
- mediaAssetId: ma.id,
187
- };
188
- });
189
-
190
- await Media.bulkCreate(mediaObjects);
191
- return await Message.findOne({
192
- where: { id: createdMessage.id },
193
- include: {
194
- model: Media,
195
- required: true,
196
- include: [
197
- {
198
- model: MediaAsset,
199
- required: true,
200
- },
201
- ],
202
- },
203
- });
204
- }
205
- return createdMessage;
206
- };
207
-
208
- Message.getPurchasedMessages = async (
209
- ownerId: string,
210
- userId: string,
211
- earliestId: string
212
- ) => {
213
- const messages = await Message.findAll({
214
- where: {
215
- ownerId,
216
- userId,
217
- creditPaymentId: {
218
- [Op.gt]: earliestId,
219
- },
220
- isTip: false,
221
- },
222
- order: [["updatedAt", "DESC"]],
223
- });
224
- return messages;
225
- };
226
-
227
- PhoneOwner.hasMany(Message, {
228
- foreignKey: "owner_id",
229
- onDelete: "NO ACTION",
230
- constraints: false,
231
- });
232
- PhoneUser.hasMany(Message, {
233
- foreignKey: "user_id",
234
- onDelete: "NO ACTION",
235
- constraints: false,
236
- });
237
- MassMessage.hasMany(Message, { foreignKey: "massMessageId" });
238
- Message.hasOne(PhoneOwner, {
239
- foreignKey: "id",
240
- sourceKey: "owner_id",
241
- onDelete: "NO ACTION",
242
- constraints: false,
243
- });
244
- Message.hasOne(PhoneUser, {
245
- foreignKey: "id",
246
- sourceKey: "user_id",
247
- onDelete: "NO ACTION",
248
- constraints: false,
249
- });
250
- Message.hasOne(MassMessage, { foreignKey: "id", sourceKey: "massMessageId" });
251
-
252
- Notification.hasOne(Message, {
253
- foreignKey: "id",
254
- sourceKey: "messageId",
255
- constraints: false,
256
- });
257
-
258
- export default Message;
@@ -1,238 +0,0 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- fn,
8
- } from "sequelize";
9
- import Bet from "./bet";
10
- import Game from "./game";
11
-
12
- import sequelize from "./pb-sequelize";
13
- import Player from "./player";
14
- import Team from "./team";
15
-
16
- // order of InferAttributes & InferCreationAttributes is important.
17
- class Odds extends Model<InferAttributes<Odds>, InferCreationAttributes<Odds>> {
18
- // 'CreationOptional' is a special type that marks the field as optional
19
- // when creating an instance of the model (such as using Model.create()).
20
- declare id: CreationOptional<string>;
21
- declare oddsJamId: string;
22
- declare sportsBookName:
23
- | "Pinnacle"
24
- | "5Dimes"
25
- | "DraftKings"
26
- | "BetMGM"
27
- | "WynnBET"
28
- | "theScore"
29
- | "Bally Bet"
30
- | "Elite Sportsbook"
31
- | "FOX Bet"
32
- | "FanDuel"
33
- | "Points Bet"
34
- | "Caesars"
35
- | "Barstool"
36
- | "Borgota"
37
- | "Unibet"
38
- | "BetRivers"
39
- | "Wind Creek"
40
- | "BetAnySports"
41
- | "BookMaker"
42
- | "SugarHouse"
43
- | "TwinSpires"
44
- | "BetUS"
45
- | "bwin"
46
- | "Betfred"
47
- | "Betfair"
48
- | "BetOnline"
49
- | "Betway"
50
- | "Bovada"
51
- | "Bodog"
52
- | "Casumo"
53
- | "10Bet"
54
- | "888 sport (Canada)"
55
- | "MyBookie"
56
- | "Betcris"
57
- | "OddsJam";
58
- declare name: string;
59
- declare price: number;
60
- declare checkedDate: string;
61
- declare betPoints?: number;
62
- declare isMain: boolean;
63
- declare isLive: boolean;
64
- declare marketName: string;
65
- declare homeRotationNumber?: number;
66
- declare awayRotationNumber?: number;
67
- declare deepLinkUrl: string;
68
- declare oddsJamPlayerId: string;
69
- declare marketId: string;
70
- declare sportsbookId: string;
71
- declare gameId: string;
72
- declare oddsJamGameId: string;
73
- declare teamId?: string;
74
- declare playerId?: string;
75
- declare betResult?: string;
76
- declare homeScore?: number;
77
- declare awayScore?: number;
78
- declare playerScore?: number;
79
- declare isStale?: boolean;
80
- declare createdAt: CreationOptional<Date>;
81
- declare updatedAt: CreationOptional<Date>;
82
-
83
- declare Game?: Game;
84
- }
85
-
86
- Odds.init(
87
- {
88
- id: {
89
- type: DataTypes.BIGINT,
90
- primaryKey: true,
91
- allowNull: false,
92
- defaultValue: sequelize.fn("next_id"),
93
- },
94
- oddsJamId: {
95
- type: DataTypes.STRING,
96
- field: "odds_jam_id",
97
- unique: true,
98
- },
99
- sportsBookName: {
100
- type: DataTypes.STRING,
101
- field: "sports_book_name",
102
- },
103
- name: {
104
- type: DataTypes.STRING,
105
- field: "name",
106
- },
107
- price: {
108
- type: DataTypes.DOUBLE,
109
- field: "price",
110
- },
111
- checkedDate: {
112
- type: DataTypes.STRING,
113
- field: "checked_date",
114
- },
115
- betPoints: {
116
- type: DataTypes.DOUBLE,
117
- field: "bet_points",
118
- },
119
- isMain: {
120
- type: DataTypes.BOOLEAN,
121
- field: "is_main",
122
- },
123
- isLive: {
124
- type: DataTypes.BOOLEAN,
125
- field: "is_live",
126
- },
127
- marketName: {
128
- type: DataTypes.STRING,
129
- field: "market_name",
130
- },
131
- homeRotationNumber: {
132
- type: DataTypes.INTEGER,
133
- field: "home_rotation_number",
134
- },
135
- awayRotationNumber: {
136
- type: DataTypes.INTEGER,
137
- field: "away_rotation_number",
138
- },
139
- deepLinkUrl: {
140
- type: DataTypes.STRING,
141
- field: "deep_link_url",
142
- },
143
- oddsJamPlayerId: {
144
- type: DataTypes.STRING,
145
- field: "odds_jam_player_id",
146
- },
147
- marketId: {
148
- type: DataTypes.BIGINT,
149
- field: "market_id",
150
- },
151
- sportsbookId: {
152
- type: DataTypes.BIGINT,
153
- field: "sportsbook_id",
154
- },
155
- gameId: {
156
- type: DataTypes.BIGINT,
157
- field: "game_id",
158
- },
159
- oddsJamGameId: {
160
- type: DataTypes.STRING,
161
- field: "odds_jam_game_id",
162
- },
163
- teamId: {
164
- type: DataTypes.BIGINT,
165
- field: "team_id",
166
- },
167
- playerId: {
168
- type: DataTypes.BIGINT,
169
- field: "player_id",
170
- },
171
- betResult: {
172
- type: DataTypes.STRING,
173
- field: "bet_result",
174
- },
175
- homeScore: {
176
- type: DataTypes.INTEGER,
177
- field: "home_score",
178
- },
179
- awayScore: {
180
- type: DataTypes.INTEGER,
181
- field: "away_score",
182
- },
183
- playerScore: {
184
- type: DataTypes.INTEGER,
185
- field: "player_score",
186
- },
187
- isStale: {
188
- type: DataTypes.BOOLEAN,
189
- field: "stale",
190
- defaultValue: false,
191
- },
192
- createdAt: DataTypes.DATE,
193
- updatedAt: DataTypes.DATE,
194
- },
195
- {
196
- // Other model options go here
197
- tableName: "odds",
198
- sequelize,
199
- }
200
- );
201
-
202
- Bet.hasOne(Odds, {
203
- foreignKey: "id",
204
- sourceKey: "oddsId",
205
- });
206
- Odds.hasMany(Bet, {
207
- foreignKey: "odds_id",
208
- sourceKey: "id",
209
- });
210
-
211
- Odds.hasOne(Game, {
212
- foreignKey: "id",
213
- sourceKey: "gameId",
214
- });
215
- Game.hasMany(Odds, {
216
- foreignKey: "game_id",
217
- sourceKey: "id",
218
- });
219
-
220
- Odds.hasOne(Player, {
221
- foreignKey: "id",
222
- sourceKey: "playerId",
223
- });
224
- Player.hasMany(Odds, {
225
- foreignKey: "player_id",
226
- sourceKey: "id",
227
- });
228
-
229
- Odds.hasOne(Team, {
230
- foreignKey: "id",
231
- sourceKey: "teamId",
232
- });
233
- Team.hasMany(Odds, {
234
- foreignKey: "team_id",
235
- sourceKey: "id",
236
- });
237
-
238
- export default Odds;
@@ -1,47 +0,0 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- fn,
8
- } from "sequelize";
9
-
10
- import sequelize from "./pb-sequelize";
11
-
12
- // order of InferAttributes & InferCreationAttributes is important.
13
- class Parlay extends Model<
14
- InferAttributes<Parlay>,
15
- InferCreationAttributes<Parlay>
16
- > {
17
- // 'CreationOptional' is a special type that marks the field as optional
18
- // when creating an instance of the model (such as using Model.create()).
19
- declare id: CreationOptional<string>;
20
- declare numBets: number;
21
- declare createdAt: CreationOptional<Date>;
22
- declare updatedAt: CreationOptional<Date>;
23
- }
24
-
25
- Parlay.init(
26
- {
27
- id: {
28
- type: DataTypes.BIGINT,
29
- primaryKey: true,
30
- allowNull: false,
31
- defaultValue: sequelize.fn("next_id"),
32
- },
33
- numBets: {
34
- type: DataTypes.INTEGER,
35
- field: "num_bets",
36
- },
37
- createdAt: DataTypes.DATE,
38
- updatedAt: DataTypes.DATE,
39
- },
40
- {
41
- // Other model options go here
42
- tableName: "parlays",
43
- sequelize,
44
- }
45
- );
46
-
47
- export default Parlay;
@@ -1,166 +0,0 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- fn,
8
- } from "sequelize";
9
-
10
- import sequelize from "./pb-sequelize";
11
- import PhoneUser from "./phone-user";
12
-
13
- // order of InferAttributes & InferCreationAttributes is important.
14
- class PhoneChatParticipant extends Model<
15
- InferAttributes<PhoneChatParticipant>,
16
- InferCreationAttributes<PhoneChatParticipant>
17
- > {
18
- // 'CreationOptional' is a special type that marks the field as optional
19
- // when creating an instance of the model (such as using Model.create()).
20
- declare id: CreationOptional<string>;
21
- declare chatId: string;
22
- declare userId: string;
23
- declare sentMessageCount?: number;
24
- declare messageCountToBill?: number;
25
- declare totalCallLength?: number;
26
- declare callLengthToBill?: number;
27
- declare totalTipAmount?: number;
28
- declare tipAmountToBill?: number;
29
- declare isTipping?: boolean;
30
- declare isActive?: boolean;
31
- declare stripePaymentIntentId?: string;
32
- declare createdAt: CreationOptional<Date>;
33
- declare updatedAt: CreationOptional<Date>;
34
- static getAllByChatId: (chatId: string) => Promise<PhoneChatParticipant[]>;
35
- static getByChatIdAndUserId: (
36
- chatId: string,
37
- userId: string
38
- ) => Promise<PhoneChatParticipant | null>;
39
- }
40
-
41
- PhoneChatParticipant.init(
42
- {
43
- id: {
44
- type: DataTypes.BIGINT,
45
- primaryKey: true,
46
- allowNull: false,
47
- defaultValue: sequelize.fn("next_id"),
48
- },
49
- chatId: {
50
- type: DataTypes.BIGINT,
51
- allowNull: false,
52
- field: "chat_id",
53
- },
54
- userId: {
55
- type: DataTypes.BIGINT,
56
- allowNull: false,
57
- field: "user_id",
58
- },
59
- sentMessageCount: {
60
- type: DataTypes.INTEGER,
61
- allowNull: false,
62
- field: "sent_message_count",
63
- defaultValue: 0,
64
- },
65
- messageCountToBill: {
66
- type: DataTypes.INTEGER,
67
- allowNull: false,
68
- field: "message_count_to_bill",
69
- defaultValue: 0,
70
- },
71
- totalCallLength: {
72
- type: DataTypes.INTEGER,
73
- allowNull: false,
74
- field: "total_call_length",
75
- defaultValue: 0,
76
- },
77
- callLengthToBill: {
78
- type: DataTypes.INTEGER,
79
- allowNull: false,
80
- field: "call_length_to_bill",
81
- defaultValue: 0,
82
- },
83
- totalTipAmount: {
84
- type: DataTypes.INTEGER,
85
- allowNull: false,
86
- field: "total_tip_amount",
87
- defaultValue: 0,
88
- },
89
- tipAmountToBill: {
90
- type: DataTypes.INTEGER,
91
- allowNull: false,
92
- field: "tip_amount_to_bill",
93
- defaultValue: 0,
94
- },
95
- isTipping: {
96
- type: DataTypes.BOOLEAN,
97
- allowNull: false,
98
- field: "is_tipping",
99
- defaultValue: false,
100
- },
101
- isActive: {
102
- type: DataTypes.BOOLEAN,
103
- allowNull: false,
104
- field: "is_active",
105
- defaultValue: true,
106
- },
107
- stripePaymentIntentId: {
108
- type: DataTypes.STRING,
109
- field: "stripe_payment_intent_id",
110
- },
111
- createdAt: DataTypes.DATE,
112
- updatedAt: DataTypes.DATE,
113
- },
114
- {
115
- // Other model options go here
116
- tableName: "chat_participants",
117
- sequelize,
118
- }
119
- );
120
-
121
- /*
122
- ====================================================================
123
- Class functions
124
- ====================================================================
125
- */
126
-
127
- PhoneChatParticipant.getAllByChatId = async (chatId: string) => {
128
- return await PhoneChatParticipant.findAll({
129
- where: {
130
- chatId,
131
- isActive: true,
132
- },
133
- include: [
134
- {
135
- model: PhoneUser,
136
- required: true,
137
- },
138
- ],
139
- });
140
- };
141
-
142
- PhoneChatParticipant.getByChatIdAndUserId = async (
143
- chatId: string,
144
- userId: string
145
- ) => {
146
- return await PhoneChatParticipant.findOne({
147
- where: {
148
- chatId,
149
- userId,
150
- isActive: true,
151
- },
152
- });
153
- };
154
-
155
- PhoneUser.hasMany(PhoneChatParticipant, {
156
- foreignKey: "user_id",
157
- onDelete: "NO ACTION",
158
- constraints: false,
159
- });
160
- PhoneChatParticipant.belongsTo(PhoneUser, {
161
- foreignKey: "user_id",
162
- onDelete: "NO ACTION",
163
- constraints: false,
164
- });
165
-
166
- export default PhoneChatParticipant;