@winible/winible-typed 1.0.9 → 2.0.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 (236) hide show
  1. package/dist/migrations/20230206061925-stale.js +13 -0
  2. package/dist/migrations/20230206061925-stale.js.map +1 -0
  3. package/dist/migrations/20230313175015-league-user.js +29 -0
  4. package/dist/migrations/20230313175015-league-user.js.map +1 -0
  5. package/dist/migrations/20230330174702-extend-premium-content.js +35 -0
  6. package/dist/migrations/20230330174702-extend-premium-content.js.map +1 -0
  7. package/dist/migrations/20230405141245-deprecate-agencies.js +9 -0
  8. package/dist/migrations/20230405141245-deprecate-agencies.js.map +1 -0
  9. package/dist/migrations/20230405142440-deprecate-unused-tables.js +23 -0
  10. package/dist/migrations/20230405142440-deprecate-unused-tables.js.map +1 -0
  11. package/dist/migrations/20230410144940-deprecate-consent-people.js +9 -0
  12. package/dist/migrations/20230410144940-deprecate-consent-people.js.map +1 -0
  13. package/dist/migrations/20230410174328-deprecate-consent-people-table.js +9 -0
  14. package/dist/migrations/20230410174328-deprecate-consent-people-table.js.map +1 -0
  15. package/dist/migrations/20230410181920-migrate-credit-payments-to-transactions.js +9 -0
  16. package/dist/migrations/20230410181920-migrate-credit-payments-to-transactions.js.map +1 -0
  17. package/dist/migrations/20230410202433-migrate-credit-payments-fields.js +12 -0
  18. package/dist/migrations/20230410202433-migrate-credit-payments-fields.js.map +1 -0
  19. package/dist/migrations/20230410211059-deprecate-credit-purchases.js +9 -0
  20. package/dist/migrations/20230410211059-deprecate-credit-purchases.js.map +1 -0
  21. package/dist/migrations/20230410212035-deprecate-dashboard_user_permissions.js +10 -0
  22. package/dist/migrations/20230410212035-deprecate-dashboard_user_permissions.js.map +1 -0
  23. package/dist/migrations/20230410212324-deprecate-non-breaking-tables.js +34 -0
  24. package/dist/migrations/20230410212324-deprecate-non-breaking-tables.js.map +1 -0
  25. package/dist/migrations/20230411054826-create-users-table.js +141 -0
  26. package/dist/migrations/20230411054826-create-users-table.js.map +1 -0
  27. package/dist/migrations/20230411202848-migrate_transactions_table.js +24 -0
  28. package/dist/migrations/20230411202848-migrate_transactions_table.js.map +1 -0
  29. package/dist/migrations/20230411203543-migrate_league_users.js +9 -0
  30. package/dist/migrations/20230411203543-migrate_league_users.js.map +1 -0
  31. package/dist/migrations/20230411205324-migrate_league.js +13 -0
  32. package/dist/migrations/20230411205324-migrate_league.js.map +1 -0
  33. package/dist/migrations/20230411221159-migrate_media.js +9 -0
  34. package/dist/migrations/20230411221159-migrate_media.js.map +1 -0
  35. package/dist/migrations/20230411221327-migrate_media_asset.js +10 -0
  36. package/dist/migrations/20230411221327-migrate_media_asset.js.map +1 -0
  37. package/dist/migrations/20230411221842-migrate_media_asset_fields.js +10 -0
  38. package/dist/migrations/20230411221842-migrate_media_asset_fields.js.map +1 -0
  39. package/dist/migrations/20230411222018-migrate_notifications.js +25 -0
  40. package/dist/migrations/20230411222018-migrate_notifications.js.map +1 -0
  41. package/dist/scripts/bet-syncing/findGoodBets.js +238 -0
  42. package/dist/scripts/bet-syncing/findGoodBets.js.map +1 -0
  43. package/dist/scripts/bet-syncing/pullOdds.js +21 -8
  44. package/dist/scripts/bet-syncing/pullOdds.js.map +1 -1
  45. package/dist/scripts/bet-syncing/pullPlayerResults.js +47 -21
  46. package/dist/scripts/bet-syncing/pullPlayerResults.js.map +1 -1
  47. package/dist/scripts/bet-syncing/pullPlayers.js +1 -1
  48. package/dist/scripts/bet-syncing/pullPlayers.js.map +1 -1
  49. package/dist/scripts/bet-syncing/updateStaleOdds.js +34 -0
  50. package/dist/scripts/bet-syncing/updateStaleOdds.js.map +1 -0
  51. package/dist/scripts/cleanupRecurlyPlans.js +12 -5
  52. package/dist/scripts/cleanupRecurlyPlans.js.map +1 -1
  53. package/dist/scripts/mapCurrentPaymentsToInvoiceId.js +12 -5
  54. package/dist/scripts/mapCurrentPaymentsToInvoiceId.js.map +1 -1
  55. package/dist/src/index.js +1 -18
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/typed-model/credit-payment.js +133 -82
  58. package/dist/typed-model/credit-payment.js.map +1 -1
  59. package/dist/typed-model/index.js +3 -81
  60. package/dist/typed-model/index.js.map +1 -1
  61. package/dist/typed-model/league-user.js +60 -0
  62. package/dist/typed-model/league-user.js.map +1 -0
  63. package/dist/typed-model/media-asset.js +0 -9
  64. package/dist/typed-model/media-asset.js.map +1 -1
  65. package/dist/typed-model/notification.js +34 -24
  66. package/dist/typed-model/notification.js.map +1 -1
  67. package/dist/typed-model/odds.js +5 -0
  68. package/dist/typed-model/odds.js.map +1 -1
  69. package/dist/typed-model/pb-sequelize.js +18 -4
  70. package/dist/typed-model/pb-sequelize.js.map +1 -1
  71. package/dist/typed-model/subscription-plan-on-premium-content.js +57 -0
  72. package/dist/typed-model/subscription-plan-on-premium-content.js.map +1 -0
  73. package/dist/typed-model/subscription-plan.js +0 -9
  74. package/dist/typed-model/subscription-plan.js.map +1 -1
  75. package/dist/typed-model/subscription.js +0 -14
  76. package/dist/typed-model/subscription.js.map +1 -1
  77. package/dist/typed-model/user.js +194 -0
  78. package/dist/typed-model/user.js.map +1 -0
  79. package/package.json +4 -3
  80. package/src/index.ts +0 -2
  81. package/typed-model/credit-payment.ts +124 -126
  82. package/typed-model/index.ts +1 -51
  83. package/typed-model/{list-member.ts → league-user.ts} +31 -19
  84. package/typed-model/media-asset.ts +0 -10
  85. package/typed-model/notification.ts +39 -44
  86. package/typed-model/pb-sequelize.ts +18 -4
  87. package/typed-model/subscription-plan.ts +0 -10
  88. package/typed-model/subscription.ts +1 -15
  89. package/typed-model/user.ts +248 -0
  90. package/dist/index.d.ts +0 -3
  91. package/dist/migrations/20220601151258-custom_name_describing_your_migration.d.ts +0 -6
  92. package/dist/migrations/20220605225655-create-dashboard-user-permissions.d.ts +0 -6
  93. package/dist/migrations/20220606001300-update-dashboard-user-permissions.d.ts +0 -6
  94. package/dist/migrations/20220607091109-add-read-date-for-message.d.ts +0 -6
  95. package/dist/migrations/20220616225456-add-delete-columns.d.ts +0 -6
  96. package/dist/migrations/20220709202211-disable-feed.d.ts +0 -6
  97. package/dist/migrations/20220723215213-limit-promotion-claims.d.ts +0 -6
  98. package/dist/migrations/20220723220233-num_claims.d.ts +0 -6
  99. package/dist/migrations/20220723221907-default_false_promos.d.ts +0 -6
  100. package/dist/migrations/20220724172559-default_zero_claims.d.ts +0 -6
  101. package/dist/migrations/20220724201419-pinned_post.d.ts +0 -6
  102. package/dist/migrations/20220729164625-unsend_mass.d.ts +0 -6
  103. package/dist/migrations/20220823033002-interval-unit.d.ts +0 -6
  104. package/dist/migrations/20220830193530-processorId.d.ts +0 -6
  105. package/dist/migrations/20220907121932-add-processor-to-sub.d.ts +0 -6
  106. package/dist/migrations/20220907212232-add-trans-id.d.ts +0 -6
  107. package/dist/migrations/20220907220423-big-int-trans.d.ts +0 -6
  108. package/dist/migrations/20220909161902-add-stale.d.ts +0 -6
  109. package/dist/migrations/20220922000225-verified-spender.d.ts +0 -6
  110. package/dist/migrations/20220922212108-verified-spender-2.d.ts +0 -6
  111. package/dist/migrations/20221013223648-product-subscription-list.d.ts +0 -6
  112. package/dist/migrations/20221014001037-product-subscription-list.d.ts +0 -6
  113. package/dist/migrations/20221026055245-update-type.d.ts +0 -6
  114. package/dist/migrations/20221108060019-recurly-sub.d.ts +0 -6
  115. package/dist/migrations/20221110170148-rename-recurly-account.d.ts +0 -6
  116. package/dist/migrations/20221112212510-archive-promo.d.ts +0 -6
  117. package/dist/migrations/20221117044529-sub-status.d.ts +0 -6
  118. package/dist/migrations/20221122051433-default-plan.d.ts +0 -6
  119. package/dist/migrations/20221128034620-invoice-id.d.ts +0 -6
  120. package/dist/scripts/bet-syncing/pullTeams.d.ts +0 -1
  121. package/dist/scripts/cleanupRecurlyPlans.d.ts +0 -1
  122. package/dist/scripts/createDashboardLink.d.ts +0 -1
  123. package/dist/scripts/createRecurlyPlans.d.ts +0 -1
  124. package/dist/scripts/deleteMalformedImages.d.ts +0 -1
  125. package/dist/scripts/fixSaltedPasswords.js +0 -40
  126. package/dist/scripts/fixSaltedPasswords.js.map +0 -1
  127. package/dist/scripts/mapCurrentPaymentsToInvoiceId.d.ts +0 -1
  128. package/dist/scripts/payoutRecurlySubs.d.ts +0 -1
  129. package/dist/scripts/payoutSubscriptions.d.ts +0 -1
  130. package/dist/scripts/removeUnreferenceSubs.d.ts +0 -1
  131. package/dist/scripts/test.d.ts +0 -1
  132. package/dist/slack/index.d.ts +0 -1
  133. package/dist/slack/v1/bypassCreator.d.ts +0 -8
  134. package/dist/slack/v1/cancelSubscription.d.ts +0 -6
  135. package/dist/slack/v1/changeName.d.ts +0 -8
  136. package/dist/slack/v1/checkAuthSub.d.ts +0 -6
  137. package/dist/slack/v1/dashboardLink.d.ts +0 -8
  138. package/dist/slack/v1/index.d.ts +0 -7
  139. package/dist/slack/v1/refund.d.ts +0 -6
  140. package/dist/slack/v1/searchUser.d.ts +0 -6
  141. package/dist/src/index.d.ts +0 -3
  142. package/dist/src/pk-client.d.ts +0 -151
  143. package/dist/src/pk-sub.d.ts +0 -77
  144. package/dist/src/recurlyInstance.d.ts +0 -3
  145. package/dist/src/types.d.ts +0 -30
  146. package/dist/support/index.d.ts +0 -2
  147. package/dist/support/slack-client.d.ts +0 -3
  148. package/dist/support/uploadcare.d.ts +0 -14
  149. package/dist/support/utils.d.ts +0 -2
  150. package/dist/typed-model/asset-category.d.ts +0 -9
  151. package/dist/typed-model/asset-constent-person.d.ts +0 -13
  152. package/dist/typed-model/bet.d.ts +0 -12
  153. package/dist/typed-model/blocked-ip.d.ts +0 -8
  154. package/dist/typed-model/category-tag.d.ts +0 -9
  155. package/dist/typed-model/consent-person.d.ts +0 -13
  156. package/dist/typed-model/content-category-tag.d.ts +0 -9
  157. package/dist/typed-model/content-like.d.ts +0 -10
  158. package/dist/typed-model/credit-payment.d.ts +0 -34
  159. package/dist/typed-model/credit-payout.d.ts +0 -10
  160. package/dist/typed-model/credit-purchase.d.ts +0 -10
  161. package/dist/typed-model/customer-profile.d.ts +0 -17
  162. package/dist/typed-model/dashboard-user-permissions.d.ts +0 -9
  163. package/dist/typed-model/dashboard-user.d.ts +0 -20
  164. package/dist/typed-model/fan-list.d.ts +0 -10
  165. package/dist/typed-model/fraud.d.ts +0 -9
  166. package/dist/typed-model/game.d.ts +0 -56
  167. package/dist/typed-model/index.d.ts +0 -46
  168. package/dist/typed-model/league.d.ts +0 -9
  169. package/dist/typed-model/list-member.d.ts +0 -9
  170. package/dist/typed-model/mass-message.d.ts +0 -11
  171. package/dist/typed-model/media-asset.d.ts +0 -15
  172. package/dist/typed-model/media-category.d.ts +0 -10
  173. package/dist/typed-model/media.d.ts +0 -14
  174. package/dist/typed-model/message-media.d.ts +0 -9
  175. package/dist/typed-model/message.d.ts +0 -27
  176. package/dist/typed-model/notification.d.ts +0 -18
  177. package/dist/typed-model/odds.d.ts +0 -30
  178. package/dist/typed-model/parlay.d.ts +0 -8
  179. package/dist/typed-model/pb-sequelize.d.ts +0 -3
  180. package/dist/typed-model/phone-chat-participation.d.ts +0 -20
  181. package/dist/typed-model/phone-chat.d.ts +0 -16
  182. package/dist/typed-model/phone-owner.d.ts +0 -53
  183. package/dist/typed-model/phone-user.d.ts +0 -21
  184. package/dist/typed-model/player.d.ts +0 -22
  185. package/dist/typed-model/premium-content.d.ts +0 -23
  186. package/dist/typed-model/purchased-content.d.ts +0 -11
  187. package/dist/typed-model/recurly-account.d.ts +0 -9
  188. package/dist/typed-model/short-url.d.ts +0 -12
  189. package/dist/typed-model/subscription-bundle.d.ts +0 -12
  190. package/dist/typed-model/subscription-category-tags.d.ts +0 -9
  191. package/dist/typed-model/subscription-plan.d.ts +0 -27
  192. package/dist/typed-model/subscription-promotion.d.ts +0 -19
  193. package/dist/typed-model/subscription.d.ts +0 -26
  194. package/dist/typed-model/team.d.ts +0 -16
  195. package/dist/typed-model/twilio-phone.d.ts +0 -17
  196. package/dist/typed-model/user-follow.d.ts +0 -13
  197. package/dist/typed-model/verification-code.d.ts +0 -11
  198. package/dist/webhooks/index.d.ts +0 -1
  199. package/dist/webhooks/payment/index.d.ts +0 -1
  200. package/dist/webhooks/payment/refund.d.ts +0 -2
  201. package/src/pk-client.ts +0 -1650
  202. package/src/pk-sub.ts +0 -455
  203. package/typed-model/asset-category.ts +0 -57
  204. package/typed-model/asset-constent-person.ts +0 -82
  205. package/typed-model/bet.ts +0 -84
  206. package/typed-model/blocked-ip.ts +0 -52
  207. package/typed-model/category-tag.ts +0 -66
  208. package/typed-model/consent-person.ts +0 -78
  209. package/typed-model/content-category-tag.ts +0 -79
  210. package/typed-model/credit-purchase.ts +0 -67
  211. package/typed-model/customer-profile.ts +0 -71
  212. package/typed-model/dashboard-user-permissions.ts +0 -51
  213. package/typed-model/dashboard-user.ts +0 -146
  214. package/typed-model/fan-list.ts +0 -68
  215. package/typed-model/fraud.ts +0 -62
  216. package/typed-model/game.ts +0 -311
  217. package/typed-model/market.ts +0 -54
  218. package/typed-model/mass-message.ts +0 -64
  219. package/typed-model/media-category.ts +0 -70
  220. package/typed-model/message-media.ts +0 -74
  221. package/typed-model/message.ts +0 -258
  222. package/typed-model/odds.ts +0 -232
  223. package/typed-model/parlay.ts +0 -47
  224. package/typed-model/phone-chat-participation.ts +0 -166
  225. package/typed-model/phone-chat.ts +0 -185
  226. package/typed-model/player-result.ts +0 -93
  227. package/typed-model/player.ts +0 -118
  228. package/typed-model/short-url.ts +0 -120
  229. package/typed-model/sportsbook.ts +0 -48
  230. package/typed-model/subscription-bundle.ts +0 -80
  231. package/typed-model/subscription-category-tags.ts +0 -79
  232. package/typed-model/subscription-promotion.ts +0 -134
  233. package/typed-model/team.ts +0 -91
  234. package/typed-model/twilio-phone.ts +0 -149
  235. package/typed-model/user-follow.ts +0 -141
  236. package/typed-model/verification-code.ts +0 -74
@@ -1,79 +0,0 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- fn,
8
- } from "sequelize";
9
- import { SubscriptionPlan } from ".";
10
- import CategoryTag from "./category-tag";
11
-
12
- import sequelize from "./pb-sequelize";
13
-
14
- // order of InferAttributes & InferCreationAttributes is important.
15
- class SubscriptionCategoryTag extends Model<
16
- InferAttributes<SubscriptionCategoryTag>,
17
- InferCreationAttributes<SubscriptionCategoryTag>
18
- > {
19
- // 'CreationOptional' is a special type that marks the field as optional
20
- // when creating an instance of the model (such as using Model.create()).
21
- declare id: CreationOptional<string>;
22
- declare subscriptionPlanId: string;
23
- declare tagId: string;
24
-
25
- declare createdAt: CreationOptional<Date>;
26
- declare updatedAt: CreationOptional<Date>;
27
- }
28
-
29
- SubscriptionCategoryTag.init(
30
- {
31
- id: {
32
- type: DataTypes.BIGINT,
33
- primaryKey: true,
34
- allowNull: false,
35
- defaultValue: sequelize.fn("next_id"),
36
- },
37
- subscriptionPlanId: {
38
- type: DataTypes.BIGINT,
39
- field: "subscription_plan_id",
40
- },
41
- tagId: {
42
- type: DataTypes.BIGINT,
43
- field: "tag_id",
44
- },
45
- createdAt: DataTypes.DATE,
46
- updatedAt: DataTypes.DATE,
47
- },
48
- {
49
- sequelize,
50
- tableName: "subscription_category_tags",
51
- // Other model options go here
52
- }
53
- );
54
-
55
- CategoryTag.hasMany(SubscriptionCategoryTag, {
56
- foreignKey: "tag_id",
57
- onDelete: "NO ACTION",
58
- constraints: false,
59
- });
60
- SubscriptionCategoryTag.hasOne(CategoryTag, {
61
- foreignKey: "id",
62
- sourceKey: "tag_id",
63
- onDelete: "NO ACTION",
64
- constraints: false,
65
- });
66
-
67
- SubscriptionPlan.hasMany(SubscriptionCategoryTag, {
68
- foreignKey: "subscription_plan_id",
69
- onDelete: "NO ACTION",
70
- constraints: false,
71
- });
72
- SubscriptionCategoryTag.hasOne(SubscriptionPlan, {
73
- foreignKey: "id",
74
- sourceKey: "subscription_plan_id",
75
- onDelete: "NO ACTION",
76
- constraints: false,
77
- });
78
-
79
- export default SubscriptionCategoryTag;
@@ -1,134 +0,0 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- fn,
8
- NOW,
9
- Op,
10
- col,
11
- WhereOptions,
12
- } from "sequelize";
13
-
14
- import sequelize from "./pb-sequelize";
15
-
16
- // order of InferAttributes & InferCreationAttributes is important.
17
- class SubscriptionPromotion extends Model<
18
- InferAttributes<SubscriptionPromotion>,
19
- InferCreationAttributes<SubscriptionPromotion>
20
- > {
21
- // 'CreationOptional' is a special type that marks the field as optional
22
- // when creating an instance of the model (such as using Model.create()).
23
- declare id: CreationOptional<string>;
24
- declare subscriptionPlanId: string;
25
- declare title?: string;
26
- declare trialIntervalCount?: number;
27
- declare trialDiscountPercentage?: number;
28
- declare trialLength?: number;
29
- declare saleEndDate?: Date;
30
- declare neverExpire?: boolean;
31
- declare hasClaimLimit?: boolean;
32
- declare claimLimit?: number;
33
- declare numClaims?: number;
34
- declare archived: CreationOptional<boolean>;
35
- declare createdAt: CreationOptional<Date>;
36
- declare updatedAt: CreationOptional<Date>;
37
- static activeWhereClause: () => WhereOptions<any>;
38
- }
39
-
40
- SubscriptionPromotion.init(
41
- {
42
- id: {
43
- type: DataTypes.BIGINT,
44
- primaryKey: true,
45
- allowNull: false,
46
- defaultValue: sequelize.fn("next_id"),
47
- },
48
- subscriptionPlanId: {
49
- type: DataTypes.BIGINT,
50
- allowNull: false,
51
- field: "subscription_plan_id",
52
- },
53
- title: {
54
- type: DataTypes.STRING,
55
- field: "title",
56
- },
57
- trialIntervalCount: {
58
- type: DataTypes.INTEGER,
59
- field: "trial_interval_count",
60
- defaultValue: 0,
61
- },
62
- trialDiscountPercentage: {
63
- type: DataTypes.FLOAT,
64
- field: "trial_discount_percentage",
65
- },
66
- trialLength: {
67
- type: DataTypes.INTEGER,
68
- field: "trial_length",
69
- defaultValue: 0,
70
- },
71
- saleEndDate: {
72
- type: DataTypes.DATE,
73
- field: "sale_end_date",
74
- },
75
- neverExpire: {
76
- type: DataTypes.BOOLEAN,
77
- field: "never_expire",
78
- defaultValue: false,
79
- },
80
- hasClaimLimit: {
81
- type: DataTypes.BOOLEAN,
82
- field: "has_claim_limit",
83
- defaultValue: false,
84
- },
85
- claimLimit: {
86
- type: DataTypes.INTEGER,
87
- field: "claim_limit",
88
- },
89
- numClaims: {
90
- type: DataTypes.INTEGER,
91
- field: "num_claims",
92
- defaultValue: 0,
93
- },
94
- archived: {
95
- type: DataTypes.BOOLEAN,
96
- field: "archived",
97
- defaultValue: false,
98
- },
99
- createdAt: DataTypes.DATE,
100
- updatedAt: DataTypes.DATE,
101
- },
102
- {
103
- tableName: "subscription_promotions",
104
- sequelize,
105
- }
106
- );
107
-
108
- SubscriptionPromotion.activeWhereClause = () => {
109
- return {
110
- [Op.and]: [
111
- {
112
- archived: false,
113
- },
114
- {
115
- [Op.or]: {
116
- neverExpire: true,
117
- saleEndDate: {
118
- [Op.gte]: new Date(),
119
- },
120
- },
121
- },
122
- {
123
- [Op.or]: {
124
- hasClaimLimit: false,
125
- numClaims: {
126
- [Op.lt]: col("claim_limit"),
127
- },
128
- },
129
- },
130
- ],
131
- };
132
- };
133
-
134
- export default SubscriptionPromotion;
@@ -1,91 +0,0 @@
1
- import {
2
- Model,
3
- InferAttributes,
4
- InferCreationAttributes,
5
- CreationOptional,
6
- DataTypes,
7
- } from "sequelize";
8
-
9
- import sequelize from "./pb-sequelize";
10
-
11
- // order of InferAttributes & InferCreationAttributes is important.
12
- class Team extends Model<InferAttributes<Team>, InferCreationAttributes<Team>> {
13
- // 'CreationOptional' is a special type that marks the field as optional
14
- // when creating an instance of the model (such as using Model.create()).
15
- declare id: CreationOptional<string>;
16
- declare oddsJamTeamId?: string;
17
- declare sport: string;
18
- declare league: string;
19
- declare teamName: string;
20
- declare teamCity?: string;
21
- declare teamMascot?: string;
22
- declare teamAbbreviation?: string;
23
- declare teamImageUrl?: string;
24
- declare leagueId: string;
25
- declare createdAt: CreationOptional<Date>;
26
- declare updatedAt: CreationOptional<Date>;
27
- }
28
-
29
- Team.init(
30
- {
31
- id: {
32
- type: DataTypes.BIGINT,
33
- primaryKey: true,
34
- allowNull: false,
35
- defaultValue: sequelize.fn("next_id"),
36
- },
37
- leagueId: {
38
- type: DataTypes.BIGINT,
39
- allowNull: false,
40
- field: "league_id",
41
- },
42
- oddsJamTeamId: {
43
- type: DataTypes.STRING,
44
- field: "odds_jam_team_id",
45
- unique: true,
46
- },
47
- sport: {
48
- type: DataTypes.STRING,
49
- field: "sport",
50
- },
51
- league: {
52
- type: DataTypes.STRING,
53
- field: "league",
54
- },
55
- teamName: {
56
- type: DataTypes.STRING,
57
- field: "team_name",
58
- },
59
- teamCity: {
60
- type: DataTypes.STRING,
61
- field: "team_city",
62
- },
63
- teamMascot: {
64
- type: DataTypes.STRING,
65
- field: "team_mascot",
66
- },
67
- teamAbbreviation: {
68
- type: DataTypes.STRING,
69
- field: "team_abbreviation",
70
- },
71
- teamImageUrl: {
72
- type: DataTypes.STRING,
73
- field: "team_image_url",
74
- },
75
- createdAt: DataTypes.DATE,
76
- updatedAt: DataTypes.DATE,
77
- },
78
- {
79
- // Other model options go here
80
- tableName: "teams",
81
- sequelize,
82
- indexes: [
83
- {
84
- unique: true,
85
- fields: ["team_name", "league"],
86
- },
87
- ],
88
- }
89
- );
90
-
91
- export default Team;
@@ -1,149 +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 client = require("twilio");
12
- const accountSid = process.env.TWILIO_ACCOUNT_SID;
13
- const authToken = process.env.TWILIO_AUTH_TOKEN;
14
- let twilioClient = client(accountSid, authToken);
15
-
16
- // order of InferAttributes & InferCreationAttributes is important.
17
- class TwilioPhone extends Model<
18
- InferAttributes<TwilioPhone>,
19
- InferCreationAttributes<TwilioPhone>
20
- > {
21
- // 'CreationOptional' is a special type that marks the field as optional
22
- // when creating an instance of the model (such as using Model.create()).
23
- declare id: CreationOptional<string>;
24
- declare phone: string;
25
- declare type: string;
26
- declare createdAt: CreationOptional<Date>;
27
- declare updatedAt: CreationOptional<Date>;
28
- static getByPhone: (phone: string) => Promise<TwilioPhone | null>;
29
- static getById: (id: string) => Promise<TwilioPhone | null>;
30
- static getOrCreateByPhone: (phone: string) => Promise<any>;
31
- static getAvailableChatPhone: (
32
- userId: string,
33
- ownerId: string
34
- ) => Promise<TwilioPhone | null>;
35
- static sendMessageFromNumberToPhone: (
36
- fromNumber: string,
37
- phone: string,
38
- message: string,
39
- media?: string
40
- ) => Promise<any>;
41
- static sendMessageToPhone: (
42
- twilioPhone: { phone: string },
43
- phone: string,
44
- message: string,
45
- media?: string
46
- ) => Promise<any>;
47
- }
48
-
49
- TwilioPhone.init(
50
- {
51
- id: {
52
- type: DataTypes.BIGINT,
53
- primaryKey: true,
54
- allowNull: false,
55
- defaultValue: sequelize.fn("next_id"),
56
- },
57
- phone: {
58
- type: DataTypes.STRING,
59
- allowNull: false,
60
- field: "phone",
61
- unique: true,
62
- },
63
- type: {
64
- type: DataTypes.STRING,
65
- },
66
- createdAt: DataTypes.DATE,
67
- updatedAt: DataTypes.DATE,
68
- },
69
- {
70
- tableName: "twilio_phones",
71
- sequelize,
72
- }
73
- );
74
-
75
- /*
76
- ====================================================================
77
- Class functions
78
- ====================================================================
79
- */
80
-
81
- TwilioPhone.getByPhone = async (phone: string) => {
82
- return await TwilioPhone.findOne({
83
- where: {
84
- phone,
85
- },
86
- });
87
- };
88
-
89
- TwilioPhone.getById = async (id: string) => {
90
- return await TwilioPhone.findOne({
91
- where: {
92
- id,
93
- },
94
- });
95
- };
96
-
97
- TwilioPhone.getOrCreateByPhone = async (phone: string) => {
98
- let phoneObject = await TwilioPhone.getByPhone(phone);
99
-
100
- if (phoneObject) {
101
- return phoneObject;
102
- }
103
-
104
- throw new Error("This phone does not exist");
105
- };
106
-
107
- TwilioPhone.getAvailableChatPhone = async (userId: string, ownerId: string) => {
108
- let phone = await TwilioPhone.findOne({
109
- where: sequelize.literal(`
110
- type='chat' AND id NOT IN
111
- (SELECT tp.id FROM twilio_phones tp
112
- JOIN chats ch on ch.twilio_phone_id = tp.id
113
- JOIN chat_participants cps on cps.chat_id = ch.id
114
- WHERE type = 'chat' AND (ch.owner_id = ${ownerId} OR cps.user_id = ${userId}))
115
- `),
116
- });
117
-
118
- return phone;
119
- };
120
-
121
- TwilioPhone.sendMessageFromNumberToPhone = async (
122
- fromNumber: string,
123
- phone: string,
124
- message: string,
125
- media?: string
126
- ) => {
127
- return await twilioClient.messages.create({
128
- body: message || "",
129
- from: fromNumber,
130
- to: phone,
131
- mediaUrl: media,
132
- });
133
- };
134
-
135
- TwilioPhone.sendMessageToPhone = async (
136
- twilioPhone: { phone: string },
137
- phone: string,
138
- message: string,
139
- media?: string
140
- ) => {
141
- return await twilioClient.messages.create({
142
- body: message || "",
143
- from: twilioPhone.phone,
144
- to: phone,
145
- mediaUrl: media,
146
- });
147
- };
148
-
149
- export default TwilioPhone;
@@ -1,141 +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 Notification from "./notification";
12
- import PhoneUser from "./phone-user";
13
- import PhoneOwner from "./phone-owner";
14
-
15
- // order of InferAttributes & InferCreationAttributes is important.
16
- class UserFollow extends Model<
17
- InferAttributes<UserFollow>,
18
- InferCreationAttributes<UserFollow>
19
- > {
20
- // 'CreationOptional' is a special type that marks the field as optional
21
- // when creating an instance of the model (such as using Model.create()).
22
- declare id: CreationOptional<string>;
23
- declare userId: string;
24
- declare ownerId: string;
25
- declare active?: boolean;
26
- declare createdAt: CreationOptional<Date>;
27
- declare updatedAt: CreationOptional<Date>;
28
- static getAllByUserId: (
29
- userId: string,
30
- ownerId: string
31
- ) => Promise<UserFollow[]>;
32
- static getByUserIdAndOwnerId: (
33
- userId: string,
34
- ownerId: string
35
- ) => Promise<UserFollow | null>;
36
- static createByUserIdAndOwnerId: (
37
- userId: string,
38
- ownerId: string
39
- ) => Promise<any>;
40
- }
41
-
42
- UserFollow.init(
43
- {
44
- id: {
45
- type: DataTypes.BIGINT,
46
- primaryKey: true,
47
- allowNull: false,
48
- defaultValue: sequelize.fn("next_id"),
49
- },
50
- userId: {
51
- type: DataTypes.BIGINT,
52
- field: "user_id",
53
- },
54
- ownerId: {
55
- type: DataTypes.BIGINT,
56
- field: "owner_id",
57
- },
58
- active: {
59
- type: DataTypes.BOOLEAN,
60
- field: "active",
61
- defaultValue: true,
62
- },
63
- createdAt: DataTypes.DATE,
64
- updatedAt: DataTypes.DATE,
65
- },
66
- {
67
- tableName: "user_follows",
68
- sequelize,
69
- }
70
- );
71
-
72
- /*
73
- ====================================================================
74
- Class functions
75
- ====================================================================
76
- */
77
-
78
- UserFollow.getAllByUserId = async (userId: string, ownerId: string) => {
79
- return await UserFollow.findAll({
80
- where: {
81
- userId,
82
- active: true,
83
- },
84
- });
85
- };
86
-
87
- UserFollow.getByUserIdAndOwnerId = async (userId: string, ownerId: string) => {
88
- return await UserFollow.findOne({
89
- where: {
90
- userId,
91
- ownerId,
92
- },
93
- });
94
- };
95
-
96
- UserFollow.createByUserIdAndOwnerId = async (
97
- userId: string,
98
- ownerId: string
99
- ) => {
100
- let follow = await UserFollow.getByUserIdAndOwnerId(userId, ownerId);
101
- if (!follow) {
102
- follow = await UserFollow.create({ userId, ownerId });
103
- try {
104
- await Notification.create({
105
- ownerId,
106
- userId,
107
- userFollowId: follow.id,
108
- type: "follow",
109
- });
110
- } catch (err) {
111
- console.log(err);
112
- }
113
- }
114
- follow.active = true;
115
- await follow.save();
116
- return follow;
117
- };
118
-
119
- PhoneUser.hasMany(UserFollow, {
120
- foreignKey: "user_id",
121
- onDelete: "NO ACTION",
122
- constraints: false,
123
- });
124
- PhoneOwner.hasMany(UserFollow, {
125
- foreignKey: "owner_id",
126
- onDelete: "NO ACTION",
127
- constraints: false,
128
- });
129
- UserFollow.hasOne(PhoneUser, {
130
- sourceKey: "user_id",
131
- foreignKey: "id",
132
- onDelete: "NO ACTION",
133
- constraints: false,
134
- });
135
- Notification.hasOne(UserFollow, {
136
- foreignKey: "id",
137
- sourceKey: "userFollowId",
138
- constraints: false,
139
- });
140
-
141
- export default UserFollow;
@@ -1,74 +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 VerificationCode extends Model<
14
- InferAttributes<VerificationCode>,
15
- InferCreationAttributes<VerificationCode>
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 userId: string;
21
- declare code: string;
22
- declare verified?: boolean;
23
- declare createdAt: CreationOptional<Date>;
24
- declare updatedAt: CreationOptional<Date>;
25
- static createCode: (userId: string) => Promise<VerificationCode>;
26
- }
27
-
28
- VerificationCode.init(
29
- {
30
- id: {
31
- type: DataTypes.BIGINT,
32
- primaryKey: true,
33
- allowNull: false,
34
- defaultValue: sequelize.fn("next_id"),
35
- },
36
- userId: {
37
- type: DataTypes.BIGINT,
38
- allowNull: false,
39
- field: "user_id",
40
- },
41
- code: {
42
- type: DataTypes.STRING,
43
- field: "code",
44
- },
45
- verified: {
46
- type: DataTypes.BOOLEAN,
47
- field: "verified",
48
- defaultValue: false,
49
- },
50
- createdAt: DataTypes.DATE,
51
- updatedAt: DataTypes.DATE,
52
- },
53
- {
54
- // Other model options go here
55
- tableName: "verification_codes",
56
- sequelize,
57
- }
58
- );
59
-
60
- /*
61
- ====================================================================
62
- Class functions
63
- ====================================================================
64
- */
65
-
66
- VerificationCode.createCode = async (userId: string) => {
67
- let code = Math.floor(100000 + Math.random() * 900000) + "";
68
- return await VerificationCode.create({
69
- userId,
70
- code,
71
- });
72
- };
73
-
74
- export default VerificationCode;