@earbug/db-models 0.0.15 → 0.0.17

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 (51) hide show
  1. package/.github/workflows/publish.yaml +54 -0
  2. package/.nvmrc +1 -1
  3. package/dist/AppUser.d.ts +24 -0
  4. package/dist/CanonArtist.d.ts +43 -1
  5. package/dist/CanonArtist.js +18 -2
  6. package/dist/GuestUser.d.ts +42 -0
  7. package/dist/GuestUser.js +91 -0
  8. package/dist/JukeboxQueueEntry.d.ts +19 -5
  9. package/dist/JukeboxQueueEntry.js +36 -18
  10. package/dist/JukeboxSession.d.ts +36 -0
  11. package/dist/MerchItem.d.ts +50 -0
  12. package/dist/MerchItem.js +120 -0
  13. package/dist/MerchOrchestration.d.ts +42 -0
  14. package/dist/MerchOrchestration.js +104 -0
  15. package/dist/MerchPlatform.d.ts +45 -0
  16. package/dist/MerchPlatform.js +75 -0
  17. package/dist/MerchType.d.ts +43 -0
  18. package/dist/MerchType.js +71 -0
  19. package/dist/NewsArticle.js +5 -5
  20. package/dist/NewsPlatform.js +2 -2
  21. package/dist/PlatformTrack.d.ts +12 -0
  22. package/dist/PlatformUserPlaylist.d.ts +24 -0
  23. package/dist/RadioShow.d.ts +24 -0
  24. package/dist/RadioShow.js +6 -0
  25. package/dist/RadioShowGenres.d.ts +3 -1
  26. package/dist/RadioShowGenres.js +24 -0
  27. package/dist/UserComments.d.ts +55 -0
  28. package/dist/UserComments.js +151 -0
  29. package/dist/UserLikes.d.ts +45 -0
  30. package/dist/UserLikes.js +151 -0
  31. package/dist/init-models.d.ts +23 -2
  32. package/dist/init-models.js +66 -2
  33. package/models/AppUser.ts +26 -0
  34. package/models/CanonArtist.ts +64 -3
  35. package/models/GuestUser.ts +108 -0
  36. package/models/JukeboxQueueEntry.ts +57 -23
  37. package/models/JukeboxSession.ts +39 -0
  38. package/models/MerchItem.ts +146 -0
  39. package/models/MerchOrchestration.ts +122 -0
  40. package/models/MerchPlatform.ts +95 -0
  41. package/models/MerchType.ts +89 -0
  42. package/models/NewsArticle.ts +5 -6
  43. package/models/NewsPlatform.ts +2 -3
  44. package/models/PlatformTrack.ts +13 -0
  45. package/models/PlatformUserPlaylist.ts +26 -0
  46. package/models/RadioShow.ts +32 -0
  47. package/models/RadioShowGenres.ts +27 -1
  48. package/models/UserComments.ts +184 -0
  49. package/models/UserLikes.ts +173 -0
  50. package/models/init-models.ts +85 -0
  51. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ name: Regenerate Models and Publish
2
+
3
+ on:
4
+ repository_dispatch:
5
+ types: [migration_completed]
6
+
7
+ jobs:
8
+ publish:
9
+ name: Regenerate, Build, and Publish
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: write
13
+ id-token: write
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - uses: actions/setup-node@v4
18
+ with:
19
+ node-version: 24
20
+ registry-url: https://registry.npmjs.org
21
+
22
+ - run: npm ci
23
+
24
+ - name: Patch sequelize-auto to support citext
25
+ run: |
26
+ sed -i 's/\^(char/\^(citext|char/' \
27
+ node_modules/sequelize-auto/lib/auto-generator.js
28
+
29
+ - name: Generate models from dev database
30
+ run: |
31
+ npx sequelize-auto -l ts --cm=p --cf=p --cp=c -o "./models" -a ./model_options.json \
32
+ -d earbug_live -h "$DEV_EB_DB_HOST" -u postgres -x "$DEV_EB_DB_USER_PASSWORD" -p 5432 -e postgres \
33
+ -T harvested_article article_to_artist_relation
34
+ env:
35
+ DEV_EB_DB_HOST: ${{ secrets.DEV_EB_DB_HOST }}
36
+ DEV_EB_DB_USER_PASSWORD: ${{ secrets.DEV_EB_DB_USER_PASSWORD }}
37
+
38
+ - name: Build
39
+ run: npm run build
40
+
41
+ - name: Bump patch version
42
+ id: version
43
+ run: echo "version=$(npm version patch --no-git-tag-version)" >> $GITHUB_OUTPUT
44
+
45
+ - name: Publish to npm
46
+ run: npm publish --access public
47
+
48
+ - name: Commit and push changes
49
+ run: |
50
+ git config user.name "github-actions[bot]"
51
+ git config user.email "github-actions[bot]@users.noreply.github.com"
52
+ git add models/ dist/ package.json
53
+ git commit -m "${{ steps.version.outputs.version }} — regenerate models and publish"
54
+ git push
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- 20
1
+ 24
package/dist/AppUser.d.ts CHANGED
@@ -11,7 +11,9 @@ import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum
11
11
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
13
  import type { State, StateId } from './State';
14
+ import type { UserComments, UserCommentsId } from './UserComments';
14
15
  import type { UserContacts, UserContactsId } from './UserContacts';
16
+ import type { UserLikes, UserLikesId } from './UserLikes';
15
17
  export interface AppUserAttributes {
16
18
  email: string;
17
19
  firstName: string;
@@ -179,6 +181,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
179
181
  hasRadioShow: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
180
182
  hasRadioShows: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
181
183
  countRadioShows: Sequelize.HasManyCountAssociationsMixin;
184
+ userComments: UserComments[];
185
+ getUserComments: Sequelize.HasManyGetAssociationsMixin<UserComments>;
186
+ setUserComments: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
187
+ addUserComment: Sequelize.HasManyAddAssociationMixin<UserComments, UserCommentsId>;
188
+ addUserComments: Sequelize.HasManyAddAssociationsMixin<UserComments, UserCommentsId>;
189
+ createUserComment: Sequelize.HasManyCreateAssociationMixin<UserComments>;
190
+ removeUserComment: Sequelize.HasManyRemoveAssociationMixin<UserComments, UserCommentsId>;
191
+ removeUserComments: Sequelize.HasManyRemoveAssociationsMixin<UserComments, UserCommentsId>;
192
+ hasUserComment: Sequelize.HasManyHasAssociationMixin<UserComments, UserCommentsId>;
193
+ hasUserComments: Sequelize.HasManyHasAssociationsMixin<UserComments, UserCommentsId>;
194
+ countUserComments: Sequelize.HasManyCountAssociationsMixin;
182
195
  userContacts: UserContacts[];
183
196
  getUserContacts: Sequelize.HasManyGetAssociationsMixin<UserContacts>;
184
197
  setUserContacts: Sequelize.HasManySetAssociationsMixin<UserContacts, UserContactsId>;
@@ -190,6 +203,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
190
203
  hasUserContact: Sequelize.HasManyHasAssociationMixin<UserContacts, UserContactsId>;
191
204
  hasUserContacts: Sequelize.HasManyHasAssociationsMixin<UserContacts, UserContactsId>;
192
205
  countUserContacts: Sequelize.HasManyCountAssociationsMixin;
206
+ userLikes: UserLikes[];
207
+ getUserLikes: Sequelize.HasManyGetAssociationsMixin<UserLikes>;
208
+ setUserLikes: Sequelize.HasManySetAssociationsMixin<UserLikes, UserLikesId>;
209
+ addUserLike: Sequelize.HasManyAddAssociationMixin<UserLikes, UserLikesId>;
210
+ addUserLikes: Sequelize.HasManyAddAssociationsMixin<UserLikes, UserLikesId>;
211
+ createUserLike: Sequelize.HasManyCreateAssociationMixin<UserLikes>;
212
+ removeUserLike: Sequelize.HasManyRemoveAssociationMixin<UserLikes, UserLikesId>;
213
+ removeUserLikes: Sequelize.HasManyRemoveAssociationsMixin<UserLikes, UserLikesId>;
214
+ hasUserLike: Sequelize.HasManyHasAssociationMixin<UserLikes, UserLikesId>;
215
+ hasUserLikes: Sequelize.HasManyHasAssociationsMixin<UserLikes, UserLikesId>;
216
+ countUserLikes: Sequelize.HasManyCountAssociationsMixin;
193
217
  state: State;
194
218
  getState: Sequelize.BelongsToGetAssociationMixin<State>;
195
219
  setState: Sequelize.BelongsToSetAssociationMixin<State, StateId>;
@@ -5,6 +5,9 @@ import type { CanonArtistImageHarvested, CanonArtistImageHarvestedId } from './C
5
5
  import type { CanonArtistTrackRelation, CanonArtistTrackRelationId } from './CanonArtistTrackRelation';
6
6
  import type { CanonToPlatformArtistRelation, CanonToPlatformArtistRelationId } from './CanonToPlatformArtistRelation';
7
7
  import type { CanonTrack, CanonTrackId } from './CanonTrack';
8
+ import type { MerchItem, MerchItemId } from './MerchItem';
9
+ import type { MerchOrchestration, MerchOrchestrationId } from './MerchOrchestration';
10
+ import type { NewsArticle, NewsArticleId } from './NewsArticle';
8
11
  import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
9
12
  import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
10
13
  export interface CanonArtistAttributes {
@@ -20,10 +23,13 @@ export interface CanonArtistAttributes {
20
23
  lastImageHarvestAttempt?: Date;
21
24
  merchHarvestDay?: number;
22
25
  newsHarvestDay?: number;
26
+ harvestPopularity?: number;
27
+ lastGenreHarvestAttempt?: Date;
28
+ genreHarvestCount: number;
23
29
  }
24
30
  export type CanonArtistPk = "id";
25
31
  export type CanonArtistId = CanonArtist[CanonArtistPk];
26
- export type CanonArtistOptionalAttributes = "description" | "id" | "createDate" | "updateDate" | "hasThumbnailPhoto" | "images" | "lastImageHarvestAttempt" | "merchHarvestDay" | "newsHarvestDay";
32
+ export type CanonArtistOptionalAttributes = "description" | "id" | "createDate" | "updateDate" | "hasThumbnailPhoto" | "images" | "lastImageHarvestAttempt" | "merchHarvestDay" | "newsHarvestDay" | "harvestPopularity" | "lastGenreHarvestAttempt" | "genreHarvestCount";
27
33
  export type CanonArtistCreationAttributes = Optional<CanonArtistAttributes, CanonArtistOptionalAttributes>;
28
34
  export declare class CanonArtist extends Model<CanonArtistAttributes, CanonArtistCreationAttributes> implements CanonArtistAttributes {
29
35
  name: string;
@@ -38,6 +44,9 @@ export declare class CanonArtist extends Model<CanonArtistAttributes, CanonArtis
38
44
  lastImageHarvestAttempt?: Date;
39
45
  merchHarvestDay?: number;
40
46
  newsHarvestDay?: number;
47
+ harvestPopularity?: number;
48
+ lastGenreHarvestAttempt?: Date;
49
+ genreHarvestCount: number;
41
50
  canonArtistAlbumRelations: CanonArtistAlbumRelation[];
42
51
  getCanonArtistAlbumRelations: Sequelize.HasManyGetAssociationsMixin<CanonArtistAlbumRelation>;
43
52
  setCanonArtistAlbumRelations: Sequelize.HasManySetAssociationsMixin<CanonArtistAlbumRelation, CanonArtistAlbumRelationId>;
@@ -93,6 +102,39 @@ export declare class CanonArtist extends Model<CanonArtistAttributes, CanonArtis
93
102
  hasCanonTrackIdCanonTrackCanonArtistTrackRelation: Sequelize.BelongsToManyHasAssociationMixin<CanonTrack, CanonTrackId>;
94
103
  hasCanonTrackIdCanonTrackCanonArtistTrackRelations: Sequelize.BelongsToManyHasAssociationsMixin<CanonTrack, CanonTrackId>;
95
104
  countCanonTrackIdCanonTrackCanonArtistTrackRelations: Sequelize.BelongsToManyCountAssociationsMixin;
105
+ merchItems: MerchItem[];
106
+ getMerchItems: Sequelize.HasManyGetAssociationsMixin<MerchItem>;
107
+ setMerchItems: Sequelize.HasManySetAssociationsMixin<MerchItem, MerchItemId>;
108
+ addMerchItem: Sequelize.HasManyAddAssociationMixin<MerchItem, MerchItemId>;
109
+ addMerchItems: Sequelize.HasManyAddAssociationsMixin<MerchItem, MerchItemId>;
110
+ createMerchItem: Sequelize.HasManyCreateAssociationMixin<MerchItem>;
111
+ removeMerchItem: Sequelize.HasManyRemoveAssociationMixin<MerchItem, MerchItemId>;
112
+ removeMerchItems: Sequelize.HasManyRemoveAssociationsMixin<MerchItem, MerchItemId>;
113
+ hasMerchItem: Sequelize.HasManyHasAssociationMixin<MerchItem, MerchItemId>;
114
+ hasMerchItems: Sequelize.HasManyHasAssociationsMixin<MerchItem, MerchItemId>;
115
+ countMerchItems: Sequelize.HasManyCountAssociationsMixin;
116
+ merchOrchestrations: MerchOrchestration[];
117
+ getMerchOrchestrations: Sequelize.HasManyGetAssociationsMixin<MerchOrchestration>;
118
+ setMerchOrchestrations: Sequelize.HasManySetAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
119
+ addMerchOrchestration: Sequelize.HasManyAddAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
120
+ addMerchOrchestrations: Sequelize.HasManyAddAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
121
+ createMerchOrchestration: Sequelize.HasManyCreateAssociationMixin<MerchOrchestration>;
122
+ removeMerchOrchestration: Sequelize.HasManyRemoveAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
123
+ removeMerchOrchestrations: Sequelize.HasManyRemoveAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
124
+ hasMerchOrchestration: Sequelize.HasManyHasAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
125
+ hasMerchOrchestrations: Sequelize.HasManyHasAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
126
+ countMerchOrchestrations: Sequelize.HasManyCountAssociationsMixin;
127
+ newsArticles: NewsArticle[];
128
+ getNewsArticles: Sequelize.HasManyGetAssociationsMixin<NewsArticle>;
129
+ setNewsArticles: Sequelize.HasManySetAssociationsMixin<NewsArticle, NewsArticleId>;
130
+ addNewsArticle: Sequelize.HasManyAddAssociationMixin<NewsArticle, NewsArticleId>;
131
+ addNewsArticles: Sequelize.HasManyAddAssociationsMixin<NewsArticle, NewsArticleId>;
132
+ createNewsArticle: Sequelize.HasManyCreateAssociationMixin<NewsArticle>;
133
+ removeNewsArticle: Sequelize.HasManyRemoveAssociationMixin<NewsArticle, NewsArticleId>;
134
+ removeNewsArticles: Sequelize.HasManyRemoveAssociationsMixin<NewsArticle, NewsArticleId>;
135
+ hasNewsArticle: Sequelize.HasManyHasAssociationMixin<NewsArticle, NewsArticleId>;
136
+ hasNewsArticles: Sequelize.HasManyHasAssociationsMixin<NewsArticle, NewsArticleId>;
137
+ countNewsArticles: Sequelize.HasManyCountAssociationsMixin;
96
138
  canonAlbumIdPlatformAlbumCanonArtistAlbumRelations: PlatformAlbum[];
97
139
  getCanonAlbumIdPlatformAlbumCanonArtistAlbumRelations: Sequelize.BelongsToManyGetAssociationsMixin<PlatformAlbum>;
98
140
  setCanonAlbumIdPlatformAlbumCanonArtistAlbumRelations: Sequelize.BelongsToManySetAssociationsMixin<PlatformAlbum, PlatformAlbumId>;
@@ -82,14 +82,30 @@ class CanonArtist extends sequelize_1.Model {
82
82
  field: 'last_image_harvest_attempt'
83
83
  },
84
84
  merchHarvestDay: {
85
- type: sequelize_1.DataTypes.NUMBER,
85
+ type: sequelize_1.DataTypes.SMALLINT,
86
86
  allowNull: true,
87
87
  field: 'merch_harvest_day'
88
88
  },
89
89
  newsHarvestDay: {
90
- type: sequelize_1.DataTypes.NUMBER,
90
+ type: sequelize_1.DataTypes.SMALLINT,
91
91
  allowNull: true,
92
92
  field: 'news_harvest_day'
93
+ },
94
+ harvestPopularity: {
95
+ type: sequelize_1.DataTypes.INTEGER,
96
+ allowNull: true,
97
+ field: 'harvest_popularity'
98
+ },
99
+ lastGenreHarvestAttempt: {
100
+ type: sequelize_1.DataTypes.DATE,
101
+ allowNull: true,
102
+ field: 'last_genre_harvest_attempt'
103
+ },
104
+ genreHarvestCount: {
105
+ type: sequelize_1.DataTypes.INTEGER,
106
+ allowNull: false,
107
+ defaultValue: 0,
108
+ field: 'genre_harvest_count'
93
109
  }
94
110
  }, {
95
111
  sequelize,
@@ -0,0 +1,42 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model, Optional } from 'sequelize';
3
+ import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+ export interface GuestUserAttributes {
6
+ firstName: string;
7
+ lastName?: string;
8
+ jukeboxSessionId: string;
9
+ ipAddress?: string;
10
+ id: string;
11
+ createDate: Date;
12
+ updateDate: Date;
13
+ }
14
+ export type GuestUserPk = "id";
15
+ export type GuestUserId = GuestUser[GuestUserPk];
16
+ export type GuestUserOptionalAttributes = "lastName" | "ipAddress" | "id" | "createDate" | "updateDate";
17
+ export type GuestUserCreationAttributes = Optional<GuestUserAttributes, GuestUserOptionalAttributes>;
18
+ export declare class GuestUser extends Model<GuestUserAttributes, GuestUserCreationAttributes> implements GuestUserAttributes {
19
+ firstName: string;
20
+ lastName?: string;
21
+ jukeboxSessionId: string;
22
+ ipAddress?: string;
23
+ id: string;
24
+ createDate: Date;
25
+ updateDate: Date;
26
+ jukeboxQueueEntries: JukeboxQueueEntry[];
27
+ getJukeboxQueueEntries: Sequelize.HasManyGetAssociationsMixin<JukeboxQueueEntry>;
28
+ setJukeboxQueueEntries: Sequelize.HasManySetAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
29
+ addJukeboxQueueEntry: Sequelize.HasManyAddAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
30
+ addJukeboxQueueEntries: Sequelize.HasManyAddAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
31
+ createJukeboxQueueEntry: Sequelize.HasManyCreateAssociationMixin<JukeboxQueueEntry>;
32
+ removeJukeboxQueueEntry: Sequelize.HasManyRemoveAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
33
+ removeJukeboxQueueEntries: Sequelize.HasManyRemoveAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
34
+ hasJukeboxQueueEntry: Sequelize.HasManyHasAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
35
+ hasJukeboxQueueEntries: Sequelize.HasManyHasAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
36
+ countJukeboxQueueEntries: Sequelize.HasManyCountAssociationsMixin;
37
+ jukeboxSession: JukeboxSession;
38
+ getJukeboxSession: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
39
+ setJukeboxSession: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
40
+ createJukeboxSession: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
41
+ static initModel(sequelize: Sequelize.Sequelize): typeof GuestUser;
42
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.GuestUser = void 0;
27
+ const Sequelize = __importStar(require("sequelize"));
28
+ const sequelize_1 = require("sequelize");
29
+ class GuestUser extends sequelize_1.Model {
30
+ static initModel(sequelize) {
31
+ return GuestUser.init({
32
+ firstName: {
33
+ type: sequelize_1.DataTypes.TEXT,
34
+ allowNull: false,
35
+ field: 'first_name'
36
+ },
37
+ lastName: {
38
+ type: sequelize_1.DataTypes.TEXT,
39
+ allowNull: true,
40
+ field: 'last_name'
41
+ },
42
+ jukeboxSessionId: {
43
+ type: sequelize_1.DataTypes.UUID,
44
+ allowNull: false,
45
+ references: {
46
+ model: 'jukebox_session',
47
+ key: 'id'
48
+ },
49
+ field: 'jukebox_session_id'
50
+ },
51
+ ipAddress: {
52
+ type: sequelize_1.DataTypes.TEXT,
53
+ allowNull: true,
54
+ field: 'ip_address'
55
+ },
56
+ id: {
57
+ type: sequelize_1.DataTypes.UUID,
58
+ allowNull: false,
59
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
60
+ primaryKey: true
61
+ },
62
+ createDate: {
63
+ type: sequelize_1.DataTypes.DATE,
64
+ allowNull: false,
65
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
66
+ field: 'create_date'
67
+ },
68
+ updateDate: {
69
+ type: sequelize_1.DataTypes.DATE,
70
+ allowNull: false,
71
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
72
+ field: 'update_date'
73
+ }
74
+ }, {
75
+ sequelize,
76
+ tableName: 'guest_user',
77
+ schema: 'eb',
78
+ timestamps: false,
79
+ indexes: [
80
+ {
81
+ name: "guest_user_pkey",
82
+ unique: true,
83
+ fields: [
84
+ { name: "id" },
85
+ ]
86
+ },
87
+ ]
88
+ });
89
+ }
90
+ }
91
+ exports.GuestUser = GuestUser;
@@ -2,15 +2,15 @@ import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
3
  import type { AppUser, AppUserId } from './AppUser';
4
4
  import type { CanonTrack, CanonTrackId } from './CanonTrack';
5
+ import type { GuestUser, GuestUserId } from './GuestUser';
5
6
  import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
6
7
  import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
8
+ import type { PlatformTrack, PlatformTrackId } from './PlatformTrack';
7
9
  import type { PlaybackStatusType, PlaybackStatusTypeId } from './PlaybackStatusType';
8
10
  import type { TrackDeletionReason, TrackDeletionReasonId } from './TrackDeletionReason';
9
11
  export interface JukeboxQueueEntryAttributes {
10
12
  jukeboxSessionId: string;
11
- trackId: string;
12
13
  playbackPriority?: number;
13
- trackAddedUserId: string;
14
14
  playbackStarted?: Date;
15
15
  id: string;
16
16
  createdAt: Date;
@@ -18,18 +18,20 @@ export interface JukeboxQueueEntryAttributes {
18
18
  setOrder: number;
19
19
  trackDeletionReasonId: number;
20
20
  playbackStatusTypeId: number;
21
+ trackId?: string;
22
+ trackAddedUserId?: string;
21
23
  trackThumbsUp?: string[];
22
24
  trackThumbsDown?: string[];
25
+ platformTrackId?: string;
26
+ trackAddedGuestUserId?: string;
23
27
  }
24
28
  export type JukeboxQueueEntryPk = "id";
25
29
  export type JukeboxQueueEntryId = JukeboxQueueEntry[JukeboxQueueEntryPk];
26
- export type JukeboxQueueEntryOptionalAttributes = "playbackPriority" | "playbackStarted" | "id" | "createdAt" | "updatedAt" | "setOrder" | "trackDeletionReasonId" | "playbackStatusTypeId" | "trackThumbsUp" | "trackThumbsDown";
30
+ export type JukeboxQueueEntryOptionalAttributes = "playbackPriority" | "playbackStarted" | "id" | "createdAt" | "updatedAt" | "setOrder" | "trackDeletionReasonId" | "playbackStatusTypeId" | "trackId" | "trackAddedUserId" | "trackThumbsUp" | "trackThumbsDown" | "platformTrackId" | "trackAddedGuestUserId";
27
31
  export type JukeboxQueueEntryCreationAttributes = Optional<JukeboxQueueEntryAttributes, JukeboxQueueEntryOptionalAttributes>;
28
32
  export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes> implements JukeboxQueueEntryAttributes {
29
33
  jukeboxSessionId: string;
30
- trackId: string;
31
34
  playbackPriority?: number;
32
- trackAddedUserId: string;
33
35
  playbackStarted?: Date;
34
36
  id: string;
35
37
  createdAt: Date;
@@ -37,8 +39,12 @@ export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes
37
39
  setOrder: number;
38
40
  trackDeletionReasonId: number;
39
41
  playbackStatusTypeId: number;
42
+ trackId?: string;
43
+ trackAddedUserId?: string;
40
44
  trackThumbsUp?: string[];
41
45
  trackThumbsDown?: string[];
46
+ platformTrackId?: string;
47
+ trackAddedGuestUserId?: string;
42
48
  trackAddedUser: AppUser;
43
49
  getTrackAddedUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
44
50
  setTrackAddedUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
@@ -47,6 +53,10 @@ export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes
47
53
  getTrack: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
48
54
  setTrack: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
49
55
  createTrack: Sequelize.BelongsToCreateAssociationMixin<CanonTrack>;
56
+ trackAddedGuestUser: GuestUser;
57
+ getTrackAddedGuestUser: Sequelize.BelongsToGetAssociationMixin<GuestUser>;
58
+ setTrackAddedGuestUser: Sequelize.BelongsToSetAssociationMixin<GuestUser, GuestUserId>;
59
+ createTrackAddedGuestUser: Sequelize.BelongsToCreateAssociationMixin<GuestUser>;
50
60
  jukeboxUsers: JukeboxUser[];
51
61
  getJukeboxUsers: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
52
62
  setJukeboxUsers: Sequelize.HasManySetAssociationsMixin<JukeboxUser, JukeboxUserId>;
@@ -62,6 +72,10 @@ export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes
62
72
  getJukeboxSession: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
63
73
  setJukeboxSession: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
64
74
  createJukeboxSession: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
75
+ platformTrack: PlatformTrack;
76
+ getPlatformTrack: Sequelize.BelongsToGetAssociationMixin<PlatformTrack>;
77
+ setPlatformTrack: Sequelize.BelongsToSetAssociationMixin<PlatformTrack, PlatformTrackId>;
78
+ createPlatformTrack: Sequelize.BelongsToCreateAssociationMixin<PlatformTrack>;
65
79
  playbackStatusType: PlaybackStatusType;
66
80
  getPlaybackStatusType: Sequelize.BelongsToGetAssociationMixin<PlaybackStatusType>;
67
81
  setPlaybackStatusType: Sequelize.BelongsToSetAssociationMixin<PlaybackStatusType, PlaybackStatusTypeId>;
@@ -38,29 +38,11 @@ class JukeboxQueueEntry extends sequelize_1.Model {
38
38
  },
39
39
  field: 'jukebox_session_id'
40
40
  },
41
- trackId: {
42
- type: sequelize_1.DataTypes.UUID,
43
- allowNull: false,
44
- references: {
45
- model: 'canon_track',
46
- key: 'id'
47
- },
48
- field: 'track_id'
49
- },
50
41
  playbackPriority: {
51
42
  type: sequelize_1.DataTypes.DECIMAL,
52
43
  allowNull: true,
53
44
  field: 'playback_priority'
54
45
  },
55
- trackAddedUserId: {
56
- type: sequelize_1.DataTypes.UUID,
57
- allowNull: false,
58
- references: {
59
- model: 'app_user',
60
- key: 'id'
61
- },
62
- field: 'track_added_user_id'
63
- },
64
46
  playbackStarted: {
65
47
  type: sequelize_1.DataTypes.DATE,
66
48
  allowNull: true,
@@ -110,6 +92,24 @@ class JukeboxQueueEntry extends sequelize_1.Model {
110
92
  },
111
93
  field: 'playback_status_type_id'
112
94
  },
95
+ trackId: {
96
+ type: sequelize_1.DataTypes.UUID,
97
+ allowNull: true,
98
+ references: {
99
+ model: 'canon_track',
100
+ key: 'id'
101
+ },
102
+ field: 'track_id'
103
+ },
104
+ trackAddedUserId: {
105
+ type: sequelize_1.DataTypes.UUID,
106
+ allowNull: true,
107
+ references: {
108
+ model: 'app_user',
109
+ key: 'id'
110
+ },
111
+ field: 'track_added_user_id'
112
+ },
113
113
  trackThumbsUp: {
114
114
  type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.UUID),
115
115
  allowNull: true,
@@ -121,6 +121,24 @@ class JukeboxQueueEntry extends sequelize_1.Model {
121
121
  allowNull: true,
122
122
  defaultValue: ["ARRAY[]"],
123
123
  field: 'track_thumbs_down'
124
+ },
125
+ platformTrackId: {
126
+ type: sequelize_1.DataTypes.UUID,
127
+ allowNull: true,
128
+ references: {
129
+ model: 'platform_track',
130
+ key: 'id'
131
+ },
132
+ field: 'platform_track_id'
133
+ },
134
+ trackAddedGuestUserId: {
135
+ type: sequelize_1.DataTypes.UUID,
136
+ allowNull: true,
137
+ references: {
138
+ model: 'guest_user',
139
+ key: 'id'
140
+ },
141
+ field: 'track_added_guest_user_id'
124
142
  }
125
143
  }, {
126
144
  sequelize,
@@ -1,5 +1,6 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
+ import type { GuestUser, GuestUserId } from './GuestUser';
3
4
  import type { JukeboxAccessType, JukeboxAccessTypeId } from './JukeboxAccessType';
4
5
  import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './JukeboxCanonGenreRelation';
5
6
  import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
@@ -10,6 +11,8 @@ import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from
10
11
  import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
11
12
  import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
12
13
  import type { Notification, NotificationId } from './Notification';
14
+ import type { UserComments, UserCommentsId } from './UserComments';
15
+ import type { UserLikes, UserLikesId } from './UserLikes';
13
16
  export interface JukeboxSessionAttributes {
14
17
  typeId: number;
15
18
  accessTypeId: number;
@@ -49,6 +52,17 @@ export declare class JukeboxSession extends Model<JukeboxSessionAttributes, Juke
49
52
  getJukeboxQueueMode: Sequelize.BelongsToGetAssociationMixin<JukeboxQueueMode>;
50
53
  setJukeboxQueueMode: Sequelize.BelongsToSetAssociationMixin<JukeboxQueueMode, JukeboxQueueModeId>;
51
54
  createJukeboxQueueMode: Sequelize.BelongsToCreateAssociationMixin<JukeboxQueueMode>;
55
+ guestUsers: GuestUser[];
56
+ getGuestUsers: Sequelize.HasManyGetAssociationsMixin<GuestUser>;
57
+ setGuestUsers: Sequelize.HasManySetAssociationsMixin<GuestUser, GuestUserId>;
58
+ addGuestUser: Sequelize.HasManyAddAssociationMixin<GuestUser, GuestUserId>;
59
+ addGuestUsers: Sequelize.HasManyAddAssociationsMixin<GuestUser, GuestUserId>;
60
+ createGuestUser: Sequelize.HasManyCreateAssociationMixin<GuestUser>;
61
+ removeGuestUser: Sequelize.HasManyRemoveAssociationMixin<GuestUser, GuestUserId>;
62
+ removeGuestUsers: Sequelize.HasManyRemoveAssociationsMixin<GuestUser, GuestUserId>;
63
+ hasGuestUser: Sequelize.HasManyHasAssociationMixin<GuestUser, GuestUserId>;
64
+ hasGuestUsers: Sequelize.HasManyHasAssociationsMixin<GuestUser, GuestUserId>;
65
+ countGuestUsers: Sequelize.HasManyCountAssociationsMixin;
52
66
  jukeboxCanonGenreRelations: JukeboxCanonGenreRelation[];
53
67
  getJukeboxCanonGenreRelations: Sequelize.HasManyGetAssociationsMixin<JukeboxCanonGenreRelation>;
54
68
  setJukeboxCanonGenreRelations: Sequelize.HasManySetAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
@@ -104,6 +118,28 @@ export declare class JukeboxSession extends Model<JukeboxSessionAttributes, Juke
104
118
  hasNotification: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
105
119
  hasNotifications: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
106
120
  countNotifications: Sequelize.HasManyCountAssociationsMixin;
121
+ userComments: UserComments[];
122
+ getUserComments: Sequelize.HasManyGetAssociationsMixin<UserComments>;
123
+ setUserComments: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
124
+ addUserComment: Sequelize.HasManyAddAssociationMixin<UserComments, UserCommentsId>;
125
+ addUserComments: Sequelize.HasManyAddAssociationsMixin<UserComments, UserCommentsId>;
126
+ createUserComment: Sequelize.HasManyCreateAssociationMixin<UserComments>;
127
+ removeUserComment: Sequelize.HasManyRemoveAssociationMixin<UserComments, UserCommentsId>;
128
+ removeUserComments: Sequelize.HasManyRemoveAssociationsMixin<UserComments, UserCommentsId>;
129
+ hasUserComment: Sequelize.HasManyHasAssociationMixin<UserComments, UserCommentsId>;
130
+ hasUserComments: Sequelize.HasManyHasAssociationsMixin<UserComments, UserCommentsId>;
131
+ countUserComments: Sequelize.HasManyCountAssociationsMixin;
132
+ userLikes: UserLikes[];
133
+ getUserLikes: Sequelize.HasManyGetAssociationsMixin<UserLikes>;
134
+ setUserLikes: Sequelize.HasManySetAssociationsMixin<UserLikes, UserLikesId>;
135
+ addUserLike: Sequelize.HasManyAddAssociationMixin<UserLikes, UserLikesId>;
136
+ addUserLikes: Sequelize.HasManyAddAssociationsMixin<UserLikes, UserLikesId>;
137
+ createUserLike: Sequelize.HasManyCreateAssociationMixin<UserLikes>;
138
+ removeUserLike: Sequelize.HasManyRemoveAssociationMixin<UserLikes, UserLikesId>;
139
+ removeUserLikes: Sequelize.HasManyRemoveAssociationsMixin<UserLikes, UserLikesId>;
140
+ hasUserLike: Sequelize.HasManyHasAssociationMixin<UserLikes, UserLikesId>;
141
+ hasUserLikes: Sequelize.HasManyHasAssociationsMixin<UserLikes, UserLikesId>;
142
+ countUserLikes: Sequelize.HasManyCountAssociationsMixin;
107
143
  jukeboxStatus: JukeboxStatus;
108
144
  getJukeboxStatus: Sequelize.BelongsToGetAssociationMixin<JukeboxStatus>;
109
145
  setJukeboxStatus: Sequelize.BelongsToSetAssociationMixin<JukeboxStatus, JukeboxStatusId>;
@@ -0,0 +1,50 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model, Optional } from 'sequelize';
3
+ import type { CanonArtist, CanonArtistId } from './CanonArtist';
4
+ import type { MerchPlatform, MerchPlatformId } from './MerchPlatform';
5
+ import type { MerchType, MerchTypeId } from './MerchType';
6
+ export interface MerchItemAttributes {
7
+ canonArtistId: string;
8
+ merchTypeId: string;
9
+ merchPlatformId: string;
10
+ merchItemPlatformId: string;
11
+ title: string;
12
+ description: string;
13
+ photo?: string;
14
+ popularity?: number;
15
+ id: string;
16
+ inactive?: boolean;
17
+ createDate: Date;
18
+ updateDate: Date;
19
+ }
20
+ export type MerchItemPk = "id";
21
+ export type MerchItemId = MerchItem[MerchItemPk];
22
+ export type MerchItemOptionalAttributes = "photo" | "popularity" | "id" | "inactive" | "createDate" | "updateDate";
23
+ export type MerchItemCreationAttributes = Optional<MerchItemAttributes, MerchItemOptionalAttributes>;
24
+ export declare class MerchItem extends Model<MerchItemAttributes, MerchItemCreationAttributes> implements MerchItemAttributes {
25
+ canonArtistId: string;
26
+ merchTypeId: string;
27
+ merchPlatformId: string;
28
+ merchItemPlatformId: string;
29
+ title: string;
30
+ description: string;
31
+ photo?: string;
32
+ popularity?: number;
33
+ id: string;
34
+ inactive?: boolean;
35
+ createDate: Date;
36
+ updateDate: Date;
37
+ canonArtist: CanonArtist;
38
+ getCanonArtist: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
39
+ setCanonArtist: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
40
+ createCanonArtist: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
41
+ merchPlatform: MerchPlatform;
42
+ getMerchPlatform: Sequelize.BelongsToGetAssociationMixin<MerchPlatform>;
43
+ setMerchPlatform: Sequelize.BelongsToSetAssociationMixin<MerchPlatform, MerchPlatformId>;
44
+ createMerchPlatform: Sequelize.BelongsToCreateAssociationMixin<MerchPlatform>;
45
+ merchType: MerchType;
46
+ getMerchType: Sequelize.BelongsToGetAssociationMixin<MerchType>;
47
+ setMerchType: Sequelize.BelongsToSetAssociationMixin<MerchType, MerchTypeId>;
48
+ createMerchType: Sequelize.BelongsToCreateAssociationMixin<MerchType>;
49
+ static initModel(sequelize: Sequelize.Sequelize): typeof MerchItem;
50
+ }