@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,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;