@earbug/db-models 0.0.34 → 0.0.35

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.
package/dist/AppUser.d.ts CHANGED
@@ -10,10 +10,10 @@ import type { Notification, NotificationId } from './Notification';
10
10
  import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum';
11
11
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
- import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
14
13
  import type { State, StateId } from './State';
15
14
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
16
15
  import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
16
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
17
17
  import type { UserComments, UserCommentsId } from './UserComments';
18
18
  import type { UserContacts, UserContactsId } from './UserContacts';
19
19
  import type { UserEngagementFactor, UserEngagementFactorId } from './UserEngagementFactor';
@@ -186,17 +186,6 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
186
186
  hasRadioShow: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
187
187
  hasRadioShows: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
188
188
  countRadioShows: Sequelize.HasManyCountAssociationsMixin;
189
- radioShowMedia: RadioShowMedia[];
190
- getRadioShowMedia: Sequelize.HasManyGetAssociationsMixin<RadioShowMedia>;
191
- setRadioShowMedia: Sequelize.HasManySetAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
192
- addRadioShowMedium: Sequelize.HasManyAddAssociationMixin<RadioShowMedia, RadioShowMediaId>;
193
- addRadioShowMedia: Sequelize.HasManyAddAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
194
- createRadioShowMedium: Sequelize.HasManyCreateAssociationMixin<RadioShowMedia>;
195
- removeRadioShowMedium: Sequelize.HasManyRemoveAssociationMixin<RadioShowMedia, RadioShowMediaId>;
196
- removeRadioShowMedia: Sequelize.HasManyRemoveAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
197
- hasRadioShowMedium: Sequelize.HasManyHasAssociationMixin<RadioShowMedia, RadioShowMediaId>;
198
- hasRadioShowMedia: Sequelize.HasManyHasAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
199
- countRadioShowMedia: Sequelize.HasManyCountAssociationsMixin;
200
189
  userAffinities: UserAffinity[];
201
190
  getUserAffinities: Sequelize.HasManyGetAssociationsMixin<UserAffinity>;
202
191
  setUserAffinities: Sequelize.HasManySetAssociationsMixin<UserAffinity, UserAffinityId>;
@@ -219,6 +208,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
219
208
  hasUserArtistAffinity: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
220
209
  hasUserArtistAffinities: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
221
210
  countUserArtistAffinities: Sequelize.HasManyCountAssociationsMixin;
211
+ userBookmarks: UserBookmarks[];
212
+ getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
213
+ setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
214
+ addUserBookmark: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
215
+ addUserBookmarks: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
216
+ createUserBookmark: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
217
+ removeUserBookmark: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
218
+ removeUserBookmarks: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
219
+ hasUserBookmark: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
220
+ hasUserBookmarks: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
221
+ countUserBookmarks: Sequelize.HasManyCountAssociationsMixin;
222
222
  userComments: UserComments[];
223
223
  getUserComments: Sequelize.HasManyGetAssociationsMixin<UserComments>;
224
224
  setUserComments: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
@@ -13,6 +13,7 @@ import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from
13
13
  import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
14
14
  import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
15
15
  import type { Notification, NotificationId } from './Notification';
16
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
16
17
  import type { UserComments, UserCommentsId } from './UserComments';
17
18
  import type { UserLikes, UserLikesId } from './UserLikes';
18
19
  export interface JukeboxSessionAttributes {
@@ -142,6 +143,17 @@ export declare class JukeboxSession extends Model<JukeboxSessionAttributes, Juke
142
143
  hasNotification: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
143
144
  hasNotifications: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
144
145
  countNotifications: Sequelize.HasManyCountAssociationsMixin;
146
+ userBookmarks: UserBookmarks[];
147
+ getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
148
+ setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
149
+ addUserBookmark: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
150
+ addUserBookmarks: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
151
+ createUserBookmark: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
152
+ removeUserBookmark: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
153
+ removeUserBookmarks: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
154
+ hasUserBookmark: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
155
+ hasUserBookmarks: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
156
+ countUserBookmarks: Sequelize.HasManyCountAssociationsMixin;
145
157
  userComments: UserComments[];
146
158
  getUserComments: Sequelize.HasManyGetAssociationsMixin<UserComments>;
147
159
  setUserComments: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
@@ -3,6 +3,7 @@ import { Model, Optional } from 'sequelize';
3
3
  import type { CanonArtist, CanonArtistId } from './CanonArtist';
4
4
  import type { MerchPlatform, MerchPlatformId } from './MerchPlatform';
5
5
  import type { MerchType, MerchTypeId } from './MerchType';
6
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
6
7
  export interface MerchItemAttributes {
7
8
  canonArtistId: string;
8
9
  merchTypeId: string;
@@ -38,6 +39,17 @@ export declare class MerchItem extends Model<MerchItemAttributes, MerchItemCreat
38
39
  getCanonArtist: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
39
40
  setCanonArtist: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
40
41
  createCanonArtist: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
42
+ userBookmarks: UserBookmarks[];
43
+ getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
44
+ setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
45
+ addUserBookmark: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
46
+ addUserBookmarks: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
47
+ createUserBookmark: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
48
+ removeUserBookmark: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
49
+ removeUserBookmarks: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
50
+ hasUserBookmark: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
51
+ hasUserBookmarks: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
52
+ countUserBookmarks: Sequelize.HasManyCountAssociationsMixin;
41
53
  merchPlatform: MerchPlatform;
42
54
  getMerchPlatform: Sequelize.BelongsToGetAssociationMixin<MerchPlatform>;
43
55
  setMerchPlatform: Sequelize.BelongsToSetAssociationMixin<MerchPlatform, MerchPlatformId>;
@@ -2,6 +2,7 @@ import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
3
  import type { CanonArtist, CanonArtistId } from './CanonArtist';
4
4
  import type { NewsPlatform, NewsPlatformId } from './NewsPlatform';
5
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
5
6
  export interface NewsArticleAttributes {
6
7
  id: string;
7
8
  canonArtistId: string;
@@ -33,6 +34,17 @@ export declare class NewsArticle extends Model<NewsArticleAttributes, NewsArticl
33
34
  getCanonArtist: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
34
35
  setCanonArtist: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
35
36
  createCanonArtist: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
37
+ userBookmarks: UserBookmarks[];
38
+ getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
39
+ setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
40
+ addUserBookmark: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
41
+ addUserBookmarks: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
42
+ createUserBookmark: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
43
+ removeUserBookmark: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
44
+ removeUserBookmarks: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
45
+ hasUserBookmark: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
46
+ hasUserBookmarks: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
47
+ countUserBookmarks: Sequelize.HasManyCountAssociationsMixin;
36
48
  newsPlatform: NewsPlatform;
37
49
  getNewsPlatform: Sequelize.BelongsToGetAssociationMixin<NewsPlatform>;
38
50
  setNewsPlatform: Sequelize.BelongsToSetAssociationMixin<NewsPlatform, NewsPlatformId>;
@@ -6,6 +6,7 @@ import type { PlatformUserPlaylistArtistAffinity, PlatformUserPlaylistArtistAffi
6
6
  import type { PlatformUserPlaylistGenreAffinity, PlatformUserPlaylistGenreAffinityId } from './PlatformUserPlaylistGenreAffinity';
7
7
  import type { PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId } from './PlatformUserPlaylistTrack';
8
8
  import type { State, StateId } from './State';
9
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
9
10
  import type { UserComments, UserCommentsId } from './UserComments';
10
11
  import type { UserLikes, UserLikesId } from './UserLikes';
11
12
  export interface PlatformUserPlaylistAttributes {
@@ -82,6 +83,17 @@ export declare class PlatformUserPlaylist extends Model<PlatformUserPlaylistAttr
82
83
  hasPlatformUserPlaylistTrack: Sequelize.HasManyHasAssociationMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
83
84
  hasPlatformUserPlaylistTracks: Sequelize.HasManyHasAssociationsMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
84
85
  countPlatformUserPlaylistTracks: Sequelize.HasManyCountAssociationsMixin;
86
+ userBookmarks: UserBookmarks[];
87
+ getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
88
+ setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
89
+ addUserBookmark: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
90
+ addUserBookmarks: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
91
+ createUserBookmark: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
92
+ removeUserBookmark: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
93
+ removeUserBookmarks: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
94
+ hasUserBookmark: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
95
+ hasUserBookmarks: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
96
+ countUserBookmarks: Sequelize.HasManyCountAssociationsMixin;
85
97
  userComments: UserComments[];
86
98
  getUserComments: Sequelize.HasManyGetAssociationsMixin<UserComments>;
87
99
  setUserComments: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
@@ -5,6 +5,7 @@ import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
5
5
  import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
6
6
  import type { RadioShowPlacement, RadioShowPlacementId } from './RadioShowPlacement';
7
7
  import type { RadioShowPublishRequests, RadioShowPublishRequestsId } from './RadioShowPublishRequests';
8
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
8
9
  import type { UserComments, UserCommentsId } from './UserComments';
9
10
  import type { UserLikes, UserLikesId } from './UserLikes';
10
11
  export interface RadioShowAttributes {
@@ -78,6 +79,17 @@ export declare class RadioShow extends Model<RadioShowAttributes, RadioShowCreat
78
79
  hasRadioShowPublishRequest: Sequelize.HasManyHasAssociationMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
79
80
  hasRadioShowPublishRequests: Sequelize.HasManyHasAssociationsMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
80
81
  countRadioShowPublishRequests: Sequelize.HasManyCountAssociationsMixin;
82
+ userBookmarks: UserBookmarks[];
83
+ getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
84
+ setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
85
+ addUserBookmark: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
86
+ addUserBookmarks: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
87
+ createUserBookmark: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
88
+ removeUserBookmark: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
89
+ removeUserBookmarks: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
90
+ hasUserBookmark: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
91
+ hasUserBookmarks: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
92
+ countUserBookmarks: Sequelize.HasManyCountAssociationsMixin;
81
93
  userComments: UserComments[];
82
94
  getUserComments: Sequelize.HasManyGetAssociationsMixin<UserComments>;
83
95
  setUserComments: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
@@ -1,6 +1,5 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
- import type { AppUser, AppUserId } from './AppUser';
4
3
  import type { RadioShow, RadioShowId } from './RadioShow';
5
4
  export interface RadioShowMediaAttributes {
6
5
  radioShowId: string;
@@ -19,11 +18,11 @@ export interface RadioShowMediaAttributes {
19
18
  automatedModerationDecidedAt?: Date;
20
19
  manualModerationApproved?: boolean;
21
20
  manualModerationDecidedAt?: Date;
22
- manualModerationByUserId?: string;
21
+ manualModerationBy?: string;
23
22
  }
24
23
  export type RadioShowMediaPk = "id";
25
24
  export type RadioShowMediaId = RadioShowMedia[RadioShowMediaPk];
26
- export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationByUserId";
25
+ export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationBy";
27
26
  export type RadioShowMediaCreationAttributes = Optional<RadioShowMediaAttributes, RadioShowMediaOptionalAttributes>;
28
27
  export declare class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMediaCreationAttributes> implements RadioShowMediaAttributes {
29
28
  radioShowId: string;
@@ -42,11 +41,7 @@ export declare class RadioShowMedia extends Model<RadioShowMediaAttributes, Radi
42
41
  automatedModerationDecidedAt?: Date;
43
42
  manualModerationApproved?: boolean;
44
43
  manualModerationDecidedAt?: Date;
45
- manualModerationByUserId?: string;
46
- manualModerationByUser: AppUser;
47
- getManualModerationByUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
48
- setManualModerationByUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
49
- createManualModerationByUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
44
+ manualModerationBy?: string;
50
45
  radioShow: RadioShow;
51
46
  getRadioShow: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
52
47
  setRadioShow: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
@@ -113,14 +113,10 @@ class RadioShowMedia extends sequelize_1.Model {
113
113
  allowNull: true,
114
114
  field: 'manual_moderation_decided_at'
115
115
  },
116
- manualModerationByUserId: {
117
- type: sequelize_1.DataTypes.UUID,
116
+ manualModerationBy: {
117
+ type: sequelize_1.DataTypes.TEXT,
118
118
  allowNull: true,
119
- references: {
120
- model: 'app_user',
121
- key: 'id'
122
- },
123
- field: 'manual_moderation_by_user_id'
119
+ field: 'manual_moderation_by'
124
120
  }
125
121
  }, {
126
122
  sequelize,
@@ -0,0 +1,59 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+ import type { MerchItem, MerchItemId } from './MerchItem';
6
+ import type { NewsArticle, NewsArticleId } from './NewsArticle';
7
+ import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
8
+ import type { RadioShow, RadioShowId } from './RadioShow';
9
+ export interface UserBookmarksAttributes {
10
+ appUserId: string;
11
+ jukeboxId?: string;
12
+ playlistId?: string;
13
+ radioShowId?: string;
14
+ merchItemId?: string;
15
+ newsArticleId?: string;
16
+ id: string;
17
+ createDate: Date;
18
+ updateDate: Date;
19
+ }
20
+ export type UserBookmarksPk = "id";
21
+ export type UserBookmarksId = UserBookmarks[UserBookmarksPk];
22
+ export type UserBookmarksOptionalAttributes = "jukeboxId" | "playlistId" | "radioShowId" | "merchItemId" | "newsArticleId" | "id" | "createDate" | "updateDate";
23
+ export type UserBookmarksCreationAttributes = Optional<UserBookmarksAttributes, UserBookmarksOptionalAttributes>;
24
+ export declare class UserBookmarks extends Model<UserBookmarksAttributes, UserBookmarksCreationAttributes> implements UserBookmarksAttributes {
25
+ appUserId: string;
26
+ jukeboxId?: string;
27
+ playlistId?: string;
28
+ radioShowId?: string;
29
+ merchItemId?: string;
30
+ newsArticleId?: string;
31
+ id: string;
32
+ createDate: Date;
33
+ updateDate: Date;
34
+ appUser: AppUser;
35
+ getAppUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
36
+ setAppUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
37
+ createAppUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
38
+ jukebox: JukeboxSession;
39
+ getJukebox: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
40
+ setJukebox: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
41
+ createJukebox: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
42
+ merchItem: MerchItem;
43
+ getMerchItem: Sequelize.BelongsToGetAssociationMixin<MerchItem>;
44
+ setMerchItem: Sequelize.BelongsToSetAssociationMixin<MerchItem, MerchItemId>;
45
+ createMerchItem: Sequelize.BelongsToCreateAssociationMixin<MerchItem>;
46
+ newsArticle: NewsArticle;
47
+ getNewsArticle: Sequelize.BelongsToGetAssociationMixin<NewsArticle>;
48
+ setNewsArticle: Sequelize.BelongsToSetAssociationMixin<NewsArticle, NewsArticleId>;
49
+ createNewsArticle: Sequelize.BelongsToCreateAssociationMixin<NewsArticle>;
50
+ playlist: PlatformUserPlaylist;
51
+ getPlaylist: Sequelize.BelongsToGetAssociationMixin<PlatformUserPlaylist>;
52
+ setPlaylist: Sequelize.BelongsToSetAssociationMixin<PlatformUserPlaylist, PlatformUserPlaylistId>;
53
+ createPlaylist: Sequelize.BelongsToCreateAssociationMixin<PlatformUserPlaylist>;
54
+ radioShow: RadioShow;
55
+ getRadioShow: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
56
+ setRadioShow: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
57
+ createRadioShow: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
58
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserBookmarks;
59
+ }
@@ -0,0 +1,197 @@
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.UserBookmarks = void 0;
27
+ const Sequelize = __importStar(require("sequelize"));
28
+ const sequelize_1 = require("sequelize");
29
+ class UserBookmarks extends sequelize_1.Model {
30
+ static initModel(sequelize) {
31
+ return UserBookmarks.init({
32
+ appUserId: {
33
+ type: sequelize_1.DataTypes.UUID,
34
+ allowNull: false,
35
+ references: {
36
+ model: 'app_user',
37
+ key: 'id'
38
+ },
39
+ field: 'app_user_id'
40
+ },
41
+ jukeboxId: {
42
+ type: sequelize_1.DataTypes.UUID,
43
+ allowNull: true,
44
+ references: {
45
+ model: 'jukebox_session',
46
+ key: 'id'
47
+ },
48
+ field: 'jukebox_id'
49
+ },
50
+ playlistId: {
51
+ type: sequelize_1.DataTypes.UUID,
52
+ allowNull: true,
53
+ references: {
54
+ model: 'platform_user_playlist',
55
+ key: 'id'
56
+ },
57
+ field: 'playlist_id'
58
+ },
59
+ radioShowId: {
60
+ type: sequelize_1.DataTypes.UUID,
61
+ allowNull: true,
62
+ references: {
63
+ model: 'radio_show',
64
+ key: 'id'
65
+ },
66
+ field: 'radio_show_id'
67
+ },
68
+ merchItemId: {
69
+ type: sequelize_1.DataTypes.UUID,
70
+ allowNull: true,
71
+ references: {
72
+ model: 'merch_item',
73
+ key: 'id'
74
+ },
75
+ field: 'merch_item_id'
76
+ },
77
+ newsArticleId: {
78
+ type: sequelize_1.DataTypes.UUID,
79
+ allowNull: true,
80
+ references: {
81
+ model: 'news_article',
82
+ key: 'id'
83
+ },
84
+ field: 'news_article_id'
85
+ },
86
+ id: {
87
+ type: sequelize_1.DataTypes.UUID,
88
+ allowNull: false,
89
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
90
+ primaryKey: true
91
+ },
92
+ createDate: {
93
+ type: sequelize_1.DataTypes.DATE,
94
+ allowNull: false,
95
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
96
+ field: 'create_date'
97
+ },
98
+ updateDate: {
99
+ type: sequelize_1.DataTypes.DATE,
100
+ allowNull: false,
101
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
102
+ field: 'update_date'
103
+ }
104
+ }, {
105
+ sequelize,
106
+ tableName: 'user_bookmarks',
107
+ schema: 'eb',
108
+ timestamps: false,
109
+ indexes: [
110
+ {
111
+ name: "idx_user_bookmarks_jukebox",
112
+ fields: [
113
+ { name: "jukebox_id" },
114
+ ]
115
+ },
116
+ {
117
+ name: "idx_user_bookmarks_merch_item",
118
+ fields: [
119
+ { name: "merch_item_id" },
120
+ ]
121
+ },
122
+ {
123
+ name: "idx_user_bookmarks_news_article",
124
+ fields: [
125
+ { name: "news_article_id" },
126
+ ]
127
+ },
128
+ {
129
+ name: "idx_user_bookmarks_playlist",
130
+ fields: [
131
+ { name: "playlist_id" },
132
+ ]
133
+ },
134
+ {
135
+ name: "idx_user_bookmarks_radio_show",
136
+ fields: [
137
+ { name: "radio_show_id" },
138
+ ]
139
+ },
140
+ {
141
+ name: "idx_user_bookmarks_user",
142
+ fields: [
143
+ { name: "app_user_id" },
144
+ ]
145
+ },
146
+ {
147
+ name: "uq_user_bookmarks_user_jukebox",
148
+ unique: true,
149
+ fields: [
150
+ { name: "app_user_id" },
151
+ { name: "jukebox_id" },
152
+ ]
153
+ },
154
+ {
155
+ name: "uq_user_bookmarks_user_merch_item",
156
+ unique: true,
157
+ fields: [
158
+ { name: "app_user_id" },
159
+ { name: "merch_item_id" },
160
+ ]
161
+ },
162
+ {
163
+ name: "uq_user_bookmarks_user_news_article",
164
+ unique: true,
165
+ fields: [
166
+ { name: "app_user_id" },
167
+ { name: "news_article_id" },
168
+ ]
169
+ },
170
+ {
171
+ name: "uq_user_bookmarks_user_playlist",
172
+ unique: true,
173
+ fields: [
174
+ { name: "app_user_id" },
175
+ { name: "playlist_id" },
176
+ ]
177
+ },
178
+ {
179
+ name: "uq_user_bookmarks_user_radio_show",
180
+ unique: true,
181
+ fields: [
182
+ { name: "app_user_id" },
183
+ { name: "radio_show_id" },
184
+ ]
185
+ },
186
+ {
187
+ name: "user_bookmarks_pkey",
188
+ unique: true,
189
+ fields: [
190
+ { name: "id" },
191
+ ]
192
+ },
193
+ ]
194
+ });
195
+ }
196
+ }
197
+ exports.UserBookmarks = UserBookmarks;
@@ -185,6 +185,8 @@ import { UserAffinity as _UserAffinity } from "./UserAffinity";
185
185
  import type { UserAffinityAttributes, UserAffinityCreationAttributes } from "./UserAffinity";
186
186
  import { UserArtistAffinity as _UserArtistAffinity } from "./UserArtistAffinity";
187
187
  import type { UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes } from "./UserArtistAffinity";
188
+ import { UserBookmarks as _UserBookmarks } from "./UserBookmarks";
189
+ import type { UserBookmarksAttributes, UserBookmarksCreationAttributes } from "./UserBookmarks";
188
190
  import { UserComments as _UserComments } from "./UserComments";
189
191
  import type { UserCommentsAttributes, UserCommentsCreationAttributes } from "./UserComments";
190
192
  import { UserContacts as _UserContacts } from "./UserContacts";
@@ -195,8 +197,8 @@ import { UserGenreAffinity as _UserGenreAffinity } from "./UserGenreAffinity";
195
197
  import type { UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes } from "./UserGenreAffinity";
196
198
  import { UserLikes as _UserLikes } from "./UserLikes";
197
199
  import type { UserLikesAttributes, UserLikesCreationAttributes } from "./UserLikes";
198
- export { _AccessControlPreference as AccessControlPreference, _AffinityRelationshipType as AffinityRelationshipType, _AffinityTier as AffinityTier, _AppUser as AppUser, _AppUserDevice as AppUserDevice, _AppUserFollowRelation as AppUserFollowRelation, _AppUserPlatformRelation as AppUserPlatformRelation, _CanonAlbum as CanonAlbum, _CanonAlbumExternalReferenceRelation as CanonAlbumExternalReferenceRelation, _CanonAlbumGenreRelation as CanonAlbumGenreRelation, _CanonAlbumImageHarvested as CanonAlbumImageHarvested, _CanonAlbumLabelRelation as CanonAlbumLabelRelation, _CanonAlbumTrackRelation as CanonAlbumTrackRelation, _CanonArtist as CanonArtist, _CanonArtistAlbumRelation as CanonArtistAlbumRelation, _CanonArtistExternalReferenceRelation as CanonArtistExternalReferenceRelation, _CanonArtistGenreRelation as CanonArtistGenreRelation, _CanonArtistImageHarvested as CanonArtistImageHarvested, _CanonArtistMemberRelation as CanonArtistMemberRelation, _CanonArtistTrackRelation as CanonArtistTrackRelation, _CanonGenre as CanonGenre, _CanonGenreExternalReferenceRelation as CanonGenreExternalReferenceRelation, _CanonLabel as CanonLabel, _CanonLabelExternalReferenceRelation as CanonLabelExternalReferenceRelation, _CanonMember as CanonMember, _CanonMemberExternalReferenceRelation as CanonMemberExternalReferenceRelation, _CanonToPlatformAlbumRelation as CanonToPlatformAlbumRelation, _CanonToPlatformArtistRelation as CanonToPlatformArtistRelation, _CanonToPlatformGenreRelation as CanonToPlatformGenreRelation, _CanonToPlatformTrackRelation as CanonToPlatformTrackRelation, _CanonTrack as CanonTrack, _ConfigParam as ConfigParam, _ExternalReference as ExternalReference, _FeedConfig as FeedConfig, _FeedContentType as FeedContentType, _GuestUser as GuestUser, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity, _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MerchItem as MerchItem, _MerchOrchestration as MerchOrchestration, _MerchPlatform as MerchPlatform, _MerchType as MerchType, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsArticle as NewsArticle, _NewsPlatform as NewsPlatform, _NewsSite as NewsSite, _Notification as Notification, _NotificationType as NotificationType, _PauseStatusType as PauseStatusType, _Platform as Platform, _PlatformAlbum as PlatformAlbum, _PlatformAlbumGenreRelation as PlatformAlbumGenreRelation, _PlatformAlbumTrackRelation as PlatformAlbumTrackRelation, _PlatformArtist as PlatformArtist, _PlatformArtistAlbumRelation as PlatformArtistAlbumRelation, _PlatformArtistGenreRelation as PlatformArtistGenreRelation, _PlatformArtistTrackRelation as PlatformArtistTrackRelation, _PlatformGenre as PlatformGenre, _PlatformTrack as PlatformTrack, _PlatformTrackGenreRelation as PlatformTrackGenreRelation, _PlatformUserAlbum as PlatformUserAlbum, _PlatformUserAlbumTrack as PlatformUserAlbumTrack, _PlatformUserPlaylist as PlatformUserPlaylist, _PlatformUserPlaylistArtistAffinity as PlatformUserPlaylistArtistAffinity, _PlatformUserPlaylistGenreAffinity as PlatformUserPlaylistGenreAffinity, _PlatformUserPlaylistTrack as PlatformUserPlaylistTrack, _PlaybackStatus as PlaybackStatus, _PlaybackStatusType as PlaybackStatusType, _RadioShow as RadioShow, _RadioShowGenres as RadioShowGenres, _RadioShowMedia as RadioShowMedia, _RadioShowPlacement as RadioShowPlacement, _RadioShowPublishRequests as RadioShowPublishRequests, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserAffinity as UserAffinity, _UserArtistAffinity as UserArtistAffinity, _UserComments as UserComments, _UserContacts as UserContacts, _UserEngagementFactor as UserEngagementFactor, _UserGenreAffinity as UserGenreAffinity, _UserLikes as UserLikes, };
199
- export type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes, AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes, AffinityTierAttributes, AffinityTierCreationAttributes, AppUserAttributes, AppUserCreationAttributes, AppUserDeviceAttributes, AppUserDeviceCreationAttributes, AppUserFollowRelationAttributes, AppUserFollowRelationCreationAttributes, AppUserPlatformRelationAttributes, AppUserPlatformRelationCreationAttributes, CanonAlbumAttributes, CanonAlbumCreationAttributes, CanonAlbumExternalReferenceRelationAttributes, CanonAlbumExternalReferenceRelationCreationAttributes, CanonAlbumGenreRelationAttributes, CanonAlbumGenreRelationCreationAttributes, CanonAlbumImageHarvestedAttributes, CanonAlbumImageHarvestedCreationAttributes, CanonAlbumLabelRelationAttributes, CanonAlbumLabelRelationCreationAttributes, CanonAlbumTrackRelationAttributes, CanonAlbumTrackRelationCreationAttributes, CanonArtistAttributes, CanonArtistCreationAttributes, CanonArtistAlbumRelationAttributes, CanonArtistAlbumRelationCreationAttributes, CanonArtistExternalReferenceRelationAttributes, CanonArtistExternalReferenceRelationCreationAttributes, CanonArtistGenreRelationAttributes, CanonArtistGenreRelationCreationAttributes, CanonArtistImageHarvestedAttributes, CanonArtistImageHarvestedCreationAttributes, CanonArtistMemberRelationAttributes, CanonArtistMemberRelationCreationAttributes, CanonArtistTrackRelationAttributes, CanonArtistTrackRelationCreationAttributes, CanonGenreAttributes, CanonGenreCreationAttributes, CanonGenreExternalReferenceRelationAttributes, CanonGenreExternalReferenceRelationCreationAttributes, CanonLabelAttributes, CanonLabelCreationAttributes, CanonLabelExternalReferenceRelationAttributes, CanonLabelExternalReferenceRelationCreationAttributes, CanonMemberAttributes, CanonMemberCreationAttributes, CanonMemberExternalReferenceRelationAttributes, CanonMemberExternalReferenceRelationCreationAttributes, CanonToPlatformAlbumRelationAttributes, CanonToPlatformAlbumRelationCreationAttributes, CanonToPlatformArtistRelationAttributes, CanonToPlatformArtistRelationCreationAttributes, CanonToPlatformGenreRelationAttributes, CanonToPlatformGenreRelationCreationAttributes, CanonToPlatformTrackRelationAttributes, CanonToPlatformTrackRelationCreationAttributes, CanonTrackAttributes, CanonTrackCreationAttributes, ConfigParamAttributes, ConfigParamCreationAttributes, ExternalReferenceAttributes, ExternalReferenceCreationAttributes, FeedConfigAttributes, FeedConfigCreationAttributes, FeedContentTypeAttributes, FeedContentTypeCreationAttributes, GuestUserAttributes, GuestUserCreationAttributes, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes, JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MerchItemAttributes, MerchItemCreationAttributes, MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes, MerchPlatformAttributes, MerchPlatformCreationAttributes, MerchTypeAttributes, MerchTypeCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsArticleAttributes, NewsArticleCreationAttributes, NewsPlatformAttributes, NewsPlatformCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, NotificationAttributes, NotificationCreationAttributes, NotificationTypeAttributes, NotificationTypeCreationAttributes, PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes, PlatformAttributes, PlatformCreationAttributes, PlatformAlbumAttributes, PlatformAlbumCreationAttributes, PlatformAlbumGenreRelationAttributes, PlatformAlbumGenreRelationCreationAttributes, PlatformAlbumTrackRelationAttributes, PlatformAlbumTrackRelationCreationAttributes, PlatformArtistAttributes, PlatformArtistCreationAttributes, PlatformArtistAlbumRelationAttributes, PlatformArtistAlbumRelationCreationAttributes, PlatformArtistGenreRelationAttributes, PlatformArtistGenreRelationCreationAttributes, PlatformArtistTrackRelationAttributes, PlatformArtistTrackRelationCreationAttributes, PlatformGenreAttributes, PlatformGenreCreationAttributes, PlatformTrackAttributes, PlatformTrackCreationAttributes, PlatformTrackGenreRelationAttributes, PlatformTrackGenreRelationCreationAttributes, PlatformUserAlbumAttributes, PlatformUserAlbumCreationAttributes, PlatformUserAlbumTrackAttributes, PlatformUserAlbumTrackCreationAttributes, PlatformUserPlaylistAttributes, PlatformUserPlaylistCreationAttributes, PlatformUserPlaylistArtistAffinityAttributes, PlatformUserPlaylistArtistAffinityCreationAttributes, PlatformUserPlaylistGenreAffinityAttributes, PlatformUserPlaylistGenreAffinityCreationAttributes, PlatformUserPlaylistTrackAttributes, PlatformUserPlaylistTrackCreationAttributes, PlaybackStatusAttributes, PlaybackStatusCreationAttributes, PlaybackStatusTypeAttributes, PlaybackStatusTypeCreationAttributes, RadioShowAttributes, RadioShowCreationAttributes, RadioShowGenresAttributes, RadioShowGenresCreationAttributes, RadioShowMediaAttributes, RadioShowMediaCreationAttributes, RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes, RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, };
200
+ export { _AccessControlPreference as AccessControlPreference, _AffinityRelationshipType as AffinityRelationshipType, _AffinityTier as AffinityTier, _AppUser as AppUser, _AppUserDevice as AppUserDevice, _AppUserFollowRelation as AppUserFollowRelation, _AppUserPlatformRelation as AppUserPlatformRelation, _CanonAlbum as CanonAlbum, _CanonAlbumExternalReferenceRelation as CanonAlbumExternalReferenceRelation, _CanonAlbumGenreRelation as CanonAlbumGenreRelation, _CanonAlbumImageHarvested as CanonAlbumImageHarvested, _CanonAlbumLabelRelation as CanonAlbumLabelRelation, _CanonAlbumTrackRelation as CanonAlbumTrackRelation, _CanonArtist as CanonArtist, _CanonArtistAlbumRelation as CanonArtistAlbumRelation, _CanonArtistExternalReferenceRelation as CanonArtistExternalReferenceRelation, _CanonArtistGenreRelation as CanonArtistGenreRelation, _CanonArtistImageHarvested as CanonArtistImageHarvested, _CanonArtistMemberRelation as CanonArtistMemberRelation, _CanonArtistTrackRelation as CanonArtistTrackRelation, _CanonGenre as CanonGenre, _CanonGenreExternalReferenceRelation as CanonGenreExternalReferenceRelation, _CanonLabel as CanonLabel, _CanonLabelExternalReferenceRelation as CanonLabelExternalReferenceRelation, _CanonMember as CanonMember, _CanonMemberExternalReferenceRelation as CanonMemberExternalReferenceRelation, _CanonToPlatformAlbumRelation as CanonToPlatformAlbumRelation, _CanonToPlatformArtistRelation as CanonToPlatformArtistRelation, _CanonToPlatformGenreRelation as CanonToPlatformGenreRelation, _CanonToPlatformTrackRelation as CanonToPlatformTrackRelation, _CanonTrack as CanonTrack, _ConfigParam as ConfigParam, _ExternalReference as ExternalReference, _FeedConfig as FeedConfig, _FeedContentType as FeedContentType, _GuestUser as GuestUser, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity, _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MerchItem as MerchItem, _MerchOrchestration as MerchOrchestration, _MerchPlatform as MerchPlatform, _MerchType as MerchType, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsArticle as NewsArticle, _NewsPlatform as NewsPlatform, _NewsSite as NewsSite, _Notification as Notification, _NotificationType as NotificationType, _PauseStatusType as PauseStatusType, _Platform as Platform, _PlatformAlbum as PlatformAlbum, _PlatformAlbumGenreRelation as PlatformAlbumGenreRelation, _PlatformAlbumTrackRelation as PlatformAlbumTrackRelation, _PlatformArtist as PlatformArtist, _PlatformArtistAlbumRelation as PlatformArtistAlbumRelation, _PlatformArtistGenreRelation as PlatformArtistGenreRelation, _PlatformArtistTrackRelation as PlatformArtistTrackRelation, _PlatformGenre as PlatformGenre, _PlatformTrack as PlatformTrack, _PlatformTrackGenreRelation as PlatformTrackGenreRelation, _PlatformUserAlbum as PlatformUserAlbum, _PlatformUserAlbumTrack as PlatformUserAlbumTrack, _PlatformUserPlaylist as PlatformUserPlaylist, _PlatformUserPlaylistArtistAffinity as PlatformUserPlaylistArtistAffinity, _PlatformUserPlaylistGenreAffinity as PlatformUserPlaylistGenreAffinity, _PlatformUserPlaylistTrack as PlatformUserPlaylistTrack, _PlaybackStatus as PlaybackStatus, _PlaybackStatusType as PlaybackStatusType, _RadioShow as RadioShow, _RadioShowGenres as RadioShowGenres, _RadioShowMedia as RadioShowMedia, _RadioShowPlacement as RadioShowPlacement, _RadioShowPublishRequests as RadioShowPublishRequests, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserAffinity as UserAffinity, _UserArtistAffinity as UserArtistAffinity, _UserBookmarks as UserBookmarks, _UserComments as UserComments, _UserContacts as UserContacts, _UserEngagementFactor as UserEngagementFactor, _UserGenreAffinity as UserGenreAffinity, _UserLikes as UserLikes, };
201
+ export type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes, AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes, AffinityTierAttributes, AffinityTierCreationAttributes, AppUserAttributes, AppUserCreationAttributes, AppUserDeviceAttributes, AppUserDeviceCreationAttributes, AppUserFollowRelationAttributes, AppUserFollowRelationCreationAttributes, AppUserPlatformRelationAttributes, AppUserPlatformRelationCreationAttributes, CanonAlbumAttributes, CanonAlbumCreationAttributes, CanonAlbumExternalReferenceRelationAttributes, CanonAlbumExternalReferenceRelationCreationAttributes, CanonAlbumGenreRelationAttributes, CanonAlbumGenreRelationCreationAttributes, CanonAlbumImageHarvestedAttributes, CanonAlbumImageHarvestedCreationAttributes, CanonAlbumLabelRelationAttributes, CanonAlbumLabelRelationCreationAttributes, CanonAlbumTrackRelationAttributes, CanonAlbumTrackRelationCreationAttributes, CanonArtistAttributes, CanonArtistCreationAttributes, CanonArtistAlbumRelationAttributes, CanonArtistAlbumRelationCreationAttributes, CanonArtistExternalReferenceRelationAttributes, CanonArtistExternalReferenceRelationCreationAttributes, CanonArtistGenreRelationAttributes, CanonArtistGenreRelationCreationAttributes, CanonArtistImageHarvestedAttributes, CanonArtistImageHarvestedCreationAttributes, CanonArtistMemberRelationAttributes, CanonArtistMemberRelationCreationAttributes, CanonArtistTrackRelationAttributes, CanonArtistTrackRelationCreationAttributes, CanonGenreAttributes, CanonGenreCreationAttributes, CanonGenreExternalReferenceRelationAttributes, CanonGenreExternalReferenceRelationCreationAttributes, CanonLabelAttributes, CanonLabelCreationAttributes, CanonLabelExternalReferenceRelationAttributes, CanonLabelExternalReferenceRelationCreationAttributes, CanonMemberAttributes, CanonMemberCreationAttributes, CanonMemberExternalReferenceRelationAttributes, CanonMemberExternalReferenceRelationCreationAttributes, CanonToPlatformAlbumRelationAttributes, CanonToPlatformAlbumRelationCreationAttributes, CanonToPlatformArtistRelationAttributes, CanonToPlatformArtistRelationCreationAttributes, CanonToPlatformGenreRelationAttributes, CanonToPlatformGenreRelationCreationAttributes, CanonToPlatformTrackRelationAttributes, CanonToPlatformTrackRelationCreationAttributes, CanonTrackAttributes, CanonTrackCreationAttributes, ConfigParamAttributes, ConfigParamCreationAttributes, ExternalReferenceAttributes, ExternalReferenceCreationAttributes, FeedConfigAttributes, FeedConfigCreationAttributes, FeedContentTypeAttributes, FeedContentTypeCreationAttributes, GuestUserAttributes, GuestUserCreationAttributes, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes, JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MerchItemAttributes, MerchItemCreationAttributes, MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes, MerchPlatformAttributes, MerchPlatformCreationAttributes, MerchTypeAttributes, MerchTypeCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsArticleAttributes, NewsArticleCreationAttributes, NewsPlatformAttributes, NewsPlatformCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, NotificationAttributes, NotificationCreationAttributes, NotificationTypeAttributes, NotificationTypeCreationAttributes, PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes, PlatformAttributes, PlatformCreationAttributes, PlatformAlbumAttributes, PlatformAlbumCreationAttributes, PlatformAlbumGenreRelationAttributes, PlatformAlbumGenreRelationCreationAttributes, PlatformAlbumTrackRelationAttributes, PlatformAlbumTrackRelationCreationAttributes, PlatformArtistAttributes, PlatformArtistCreationAttributes, PlatformArtistAlbumRelationAttributes, PlatformArtistAlbumRelationCreationAttributes, PlatformArtistGenreRelationAttributes, PlatformArtistGenreRelationCreationAttributes, PlatformArtistTrackRelationAttributes, PlatformArtistTrackRelationCreationAttributes, PlatformGenreAttributes, PlatformGenreCreationAttributes, PlatformTrackAttributes, PlatformTrackCreationAttributes, PlatformTrackGenreRelationAttributes, PlatformTrackGenreRelationCreationAttributes, PlatformUserAlbumAttributes, PlatformUserAlbumCreationAttributes, PlatformUserAlbumTrackAttributes, PlatformUserAlbumTrackCreationAttributes, PlatformUserPlaylistAttributes, PlatformUserPlaylistCreationAttributes, PlatformUserPlaylistArtistAffinityAttributes, PlatformUserPlaylistArtistAffinityCreationAttributes, PlatformUserPlaylistGenreAffinityAttributes, PlatformUserPlaylistGenreAffinityCreationAttributes, PlatformUserPlaylistTrackAttributes, PlatformUserPlaylistTrackCreationAttributes, PlaybackStatusAttributes, PlaybackStatusCreationAttributes, PlaybackStatusTypeAttributes, PlaybackStatusTypeCreationAttributes, RadioShowAttributes, RadioShowCreationAttributes, RadioShowGenresAttributes, RadioShowGenresCreationAttributes, RadioShowMediaAttributes, RadioShowMediaCreationAttributes, RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes, RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes, UserBookmarksAttributes, UserBookmarksCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, };
200
202
  export declare function initModels(sequelize: Sequelize): {
201
203
  AccessControlPreference: typeof _AccessControlPreference;
202
204
  AffinityRelationshipType: typeof _AffinityRelationshipType;
@@ -291,6 +293,7 @@ export declare function initModels(sequelize: Sequelize): {
291
293
  UnmatchedArtist: typeof _UnmatchedArtist;
292
294
  UserAffinity: typeof _UserAffinity;
293
295
  UserArtistAffinity: typeof _UserArtistAffinity;
296
+ UserBookmarks: typeof _UserBookmarks;
294
297
  UserComments: typeof _UserComments;
295
298
  UserContacts: typeof _UserContacts;
296
299
  UserEngagementFactor: typeof _UserEngagementFactor;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KnexMigrations = exports.JukeboxUserType = exports.JukeboxUser = exports.JukeboxType = exports.JukeboxTerminationCondition = exports.JukeboxStatus = exports.JukeboxSessionGenreAffinity = exports.JukeboxSessionArtistAffinity = exports.JukeboxSession = exports.JukeboxQueueMode = exports.JukeboxQueueEntry = exports.JukeboxInvite = exports.JukeboxCanonGenreRelation = exports.JukeboxAccessType = exports.GuestUser = exports.FeedContentType = exports.FeedConfig = exports.ExternalReference = exports.ConfigParam = exports.CanonTrack = exports.CanonToPlatformTrackRelation = exports.CanonToPlatformGenreRelation = exports.CanonToPlatformArtistRelation = exports.CanonToPlatformAlbumRelation = exports.CanonMemberExternalReferenceRelation = exports.CanonMember = exports.CanonLabelExternalReferenceRelation = exports.CanonLabel = exports.CanonGenreExternalReferenceRelation = exports.CanonGenre = exports.CanonArtistTrackRelation = exports.CanonArtistMemberRelation = exports.CanonArtistImageHarvested = exports.CanonArtistGenreRelation = exports.CanonArtistExternalReferenceRelation = exports.CanonArtistAlbumRelation = exports.CanonArtist = exports.CanonAlbumTrackRelation = exports.CanonAlbumLabelRelation = exports.CanonAlbumImageHarvested = exports.CanonAlbumGenreRelation = exports.CanonAlbumExternalReferenceRelation = exports.CanonAlbum = exports.AppUserPlatformRelation = exports.AppUserFollowRelation = exports.AppUserDevice = exports.AppUser = exports.AffinityTier = exports.AffinityRelationshipType = exports.AccessControlPreference = void 0;
4
- exports.UserLikes = exports.UserGenreAffinity = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = exports.UserArtistAffinity = exports.UserAffinity = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = exports.RadioShowPublishRequests = exports.RadioShowPlacement = exports.RadioShowMedia = exports.RadioShowGenres = exports.RadioShow = exports.PlaybackStatusType = exports.PlaybackStatus = exports.PlatformUserPlaylistTrack = exports.PlatformUserPlaylistGenreAffinity = exports.PlatformUserPlaylistArtistAffinity = exports.PlatformUserPlaylist = exports.PlatformUserAlbumTrack = exports.PlatformUserAlbum = exports.PlatformTrackGenreRelation = exports.PlatformTrack = exports.PlatformGenre = exports.PlatformArtistTrackRelation = exports.PlatformArtistGenreRelation = exports.PlatformArtistAlbumRelation = exports.PlatformArtist = exports.PlatformAlbumTrackRelation = exports.PlatformAlbumGenreRelation = exports.PlatformAlbum = exports.Platform = exports.PauseStatusType = exports.NotificationType = exports.Notification = exports.NewsSite = exports.NewsPlatform = exports.NewsArticle = exports.MetricsEvent = exports.MetricsDaily = exports.MerchType = exports.MerchPlatform = exports.MerchOrchestration = exports.MerchItem = exports.KnexMigrationsLock = void 0;
4
+ exports.UserLikes = exports.UserGenreAffinity = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = exports.UserBookmarks = exports.UserArtistAffinity = exports.UserAffinity = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = exports.RadioShowPublishRequests = exports.RadioShowPlacement = exports.RadioShowMedia = exports.RadioShowGenres = exports.RadioShow = exports.PlaybackStatusType = exports.PlaybackStatus = exports.PlatformUserPlaylistTrack = exports.PlatformUserPlaylistGenreAffinity = exports.PlatformUserPlaylistArtistAffinity = exports.PlatformUserPlaylist = exports.PlatformUserAlbumTrack = exports.PlatformUserAlbum = exports.PlatformTrackGenreRelation = exports.PlatformTrack = exports.PlatformGenre = exports.PlatformArtistTrackRelation = exports.PlatformArtistGenreRelation = exports.PlatformArtistAlbumRelation = exports.PlatformArtist = exports.PlatformAlbumTrackRelation = exports.PlatformAlbumGenreRelation = exports.PlatformAlbum = exports.Platform = exports.PauseStatusType = exports.NotificationType = exports.Notification = exports.NewsSite = exports.NewsPlatform = exports.NewsArticle = exports.MetricsEvent = exports.MetricsDaily = exports.MerchType = exports.MerchPlatform = exports.MerchOrchestration = exports.MerchItem = exports.KnexMigrationsLock = void 0;
5
5
  exports.initModels = initModels;
6
6
  const AccessControlPreference_1 = require("./AccessControlPreference");
7
7
  Object.defineProperty(exports, "AccessControlPreference", { enumerable: true, get: function () { return AccessControlPreference_1.AccessControlPreference; } });
@@ -189,6 +189,8 @@ const UserAffinity_1 = require("./UserAffinity");
189
189
  Object.defineProperty(exports, "UserAffinity", { enumerable: true, get: function () { return UserAffinity_1.UserAffinity; } });
190
190
  const UserArtistAffinity_1 = require("./UserArtistAffinity");
191
191
  Object.defineProperty(exports, "UserArtistAffinity", { enumerable: true, get: function () { return UserArtistAffinity_1.UserArtistAffinity; } });
192
+ const UserBookmarks_1 = require("./UserBookmarks");
193
+ Object.defineProperty(exports, "UserBookmarks", { enumerable: true, get: function () { return UserBookmarks_1.UserBookmarks; } });
192
194
  const UserComments_1 = require("./UserComments");
193
195
  Object.defineProperty(exports, "UserComments", { enumerable: true, get: function () { return UserComments_1.UserComments; } });
194
196
  const UserContacts_1 = require("./UserContacts");
@@ -293,6 +295,7 @@ function initModels(sequelize) {
293
295
  const UnmatchedArtist = UnmatchedArtist_1.UnmatchedArtist.initModel(sequelize);
294
296
  const UserAffinity = UserAffinity_1.UserAffinity.initModel(sequelize);
295
297
  const UserArtistAffinity = UserArtistAffinity_1.UserArtistAffinity.initModel(sequelize);
298
+ const UserBookmarks = UserBookmarks_1.UserBookmarks.initModel(sequelize);
296
299
  const UserComments = UserComments_1.UserComments.initModel(sequelize);
297
300
  const UserContacts = UserContacts_1.UserContacts.initModel(sequelize);
298
301
  const UserEngagementFactor = UserEngagementFactor_1.UserEngagementFactor.initModel(sequelize);
@@ -382,12 +385,12 @@ function initModels(sequelize) {
382
385
  AppUser.hasMany(PlatformUserPlaylist, { as: "platformUserPlaylists", foreignKey: "appUserId" });
383
386
  RadioShow.belongsTo(AppUser, { as: "creatorUser", foreignKey: "creatorUserId" });
384
387
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId" });
385
- RadioShowMedia.belongsTo(AppUser, { as: "manualModerationByUser", foreignKey: "manualModerationByUserId" });
386
- AppUser.hasMany(RadioShowMedia, { as: "radioShowMedia", foreignKey: "manualModerationByUserId" });
387
388
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
388
389
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId" });
389
390
  UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
390
391
  AppUser.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "userId" });
392
+ UserBookmarks.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
393
+ AppUser.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "appUserId" });
391
394
  UserComments.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
392
395
  AppUser.hasMany(UserComments, { as: "userComments", foreignKey: "appUserId" });
393
396
  UserContacts.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
@@ -498,6 +501,8 @@ function initModels(sequelize) {
498
501
  JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId" });
499
502
  Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
500
503
  JukeboxSession.hasMany(Notification, { as: "notifications", foreignKey: "jukeboxSessionId" });
504
+ UserBookmarks.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
505
+ JukeboxSession.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "jukeboxId" });
501
506
  UserComments.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
502
507
  JukeboxSession.hasMany(UserComments, { as: "userComments", foreignKey: "jukeboxId" });
503
508
  UserLikes.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
@@ -510,6 +515,8 @@ function initModels(sequelize) {
510
515
  JukeboxType.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "typeId" });
511
516
  JukeboxUser.belongsTo(JukeboxUserType, { as: "jukeboxUserType", foreignKey: "jukeboxUserTypeId" });
512
517
  JukeboxUserType.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxUserTypeId" });
518
+ UserBookmarks.belongsTo(MerchItem, { as: "merchItem", foreignKey: "merchItemId" });
519
+ MerchItem.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "merchItemId" });
513
520
  MerchItem.belongsTo(MerchPlatform, { as: "merchPlatform", foreignKey: "merchPlatformId" });
514
521
  MerchPlatform.hasMany(MerchItem, { as: "merchItems", foreignKey: "merchPlatformId" });
515
522
  MerchOrchestration.belongsTo(MerchPlatform, { as: "merchPlatform", foreignKey: "merchPlatformId" });
@@ -518,6 +525,8 @@ function initModels(sequelize) {
518
525
  MerchType.hasMany(MerchItem, { as: "merchItems", foreignKey: "merchTypeId" });
519
526
  MerchOrchestration.belongsTo(MerchType, { as: "merchType", foreignKey: "merchTypeId" });
520
527
  MerchType.hasMany(MerchOrchestration, { as: "merchOrchestrations", foreignKey: "merchTypeId" });
528
+ UserBookmarks.belongsTo(NewsArticle, { as: "newsArticle", foreignKey: "newsArticleId" });
529
+ NewsArticle.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "newsArticleId" });
521
530
  NewsArticle.belongsTo(NewsPlatform, { as: "newsPlatform", foreignKey: "newsPlatformId" });
522
531
  NewsPlatform.hasMany(NewsArticle, { as: "newsArticles", foreignKey: "newsPlatformId" });
523
532
  Notification.belongsTo(NotificationType, { as: "notificationType", foreignKey: "notificationTypeId" });
@@ -604,6 +613,8 @@ function initModels(sequelize) {
604
613
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistGenreAffinity, { as: "platformUserPlaylistGenreAffinities", foreignKey: "platformUserPlaylistId" });
605
614
  PlatformUserPlaylistTrack.belongsTo(PlatformUserPlaylist, { as: "platformUserPlaylist", foreignKey: "platformUserPlaylistId" });
606
615
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistTrack, { as: "platformUserPlaylistTracks", foreignKey: "platformUserPlaylistId" });
616
+ UserBookmarks.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
617
+ PlatformUserPlaylist.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "playlistId" });
607
618
  UserComments.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
608
619
  PlatformUserPlaylist.hasMany(UserComments, { as: "userComments", foreignKey: "playlistId" });
609
620
  UserLikes.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
@@ -618,6 +629,8 @@ function initModels(sequelize) {
618
629
  RadioShow.hasMany(RadioShowPlacement, { as: "radioShowPlacements", foreignKey: "radioShowId" });
619
630
  RadioShowPublishRequests.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
620
631
  RadioShow.hasMany(RadioShowPublishRequests, { as: "radioShowPublishRequests", foreignKey: "radioShowId" });
632
+ UserBookmarks.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
633
+ RadioShow.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "radioShowId" });
621
634
  UserComments.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
622
635
  RadioShow.hasMany(UserComments, { as: "userComments", foreignKey: "radioShowId" });
623
636
  UserLikes.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
@@ -726,6 +739,7 @@ function initModels(sequelize) {
726
739
  UnmatchedArtist: UnmatchedArtist,
727
740
  UserAffinity: UserAffinity,
728
741
  UserArtistAffinity: UserArtistAffinity,
742
+ UserBookmarks: UserBookmarks,
729
743
  UserComments: UserComments,
730
744
  UserContacts: UserContacts,
731
745
  UserEngagementFactor: UserEngagementFactor,
package/models/AppUser.ts CHANGED
@@ -10,10 +10,10 @@ import type { Notification, NotificationId } from './Notification';
10
10
  import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum';
11
11
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
- import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
14
13
  import type { State, StateId } from './State';
15
14
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
16
15
  import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
16
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
17
17
  import type { UserComments, UserCommentsId } from './UserComments';
18
18
  import type { UserContacts, UserContactsId } from './UserContacts';
19
19
  import type { UserEngagementFactor, UserEngagementFactorId } from './UserEngagementFactor';
@@ -203,18 +203,6 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
203
203
  hasRadioShow!: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
204
204
  hasRadioShows!: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
205
205
  countRadioShows!: Sequelize.HasManyCountAssociationsMixin;
206
- // AppUser hasMany RadioShowMedia via manualModerationByUserId
207
- radioShowMedia!: RadioShowMedia[];
208
- getRadioShowMedia!: Sequelize.HasManyGetAssociationsMixin<RadioShowMedia>;
209
- setRadioShowMedia!: Sequelize.HasManySetAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
210
- addRadioShowMedium!: Sequelize.HasManyAddAssociationMixin<RadioShowMedia, RadioShowMediaId>;
211
- addRadioShowMedia!: Sequelize.HasManyAddAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
212
- createRadioShowMedium!: Sequelize.HasManyCreateAssociationMixin<RadioShowMedia>;
213
- removeRadioShowMedium!: Sequelize.HasManyRemoveAssociationMixin<RadioShowMedia, RadioShowMediaId>;
214
- removeRadioShowMedia!: Sequelize.HasManyRemoveAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
215
- hasRadioShowMedium!: Sequelize.HasManyHasAssociationMixin<RadioShowMedia, RadioShowMediaId>;
216
- hasRadioShowMedia!: Sequelize.HasManyHasAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
217
- countRadioShowMedia!: Sequelize.HasManyCountAssociationsMixin;
218
206
  // AppUser hasMany UserAffinity via userId
219
207
  userAffinities!: UserAffinity[];
220
208
  getUserAffinities!: Sequelize.HasManyGetAssociationsMixin<UserAffinity>;
@@ -239,6 +227,18 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
239
227
  hasUserArtistAffinity!: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
240
228
  hasUserArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
241
229
  countUserArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
230
+ // AppUser hasMany UserBookmarks via appUserId
231
+ userBookmarks!: UserBookmarks[];
232
+ getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
233
+ setUserBookmarks!: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
234
+ addUserBookmark!: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
235
+ addUserBookmarks!: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
236
+ createUserBookmark!: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
237
+ removeUserBookmark!: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
238
+ removeUserBookmarks!: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
239
+ hasUserBookmark!: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
240
+ hasUserBookmarks!: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
241
+ countUserBookmarks!: Sequelize.HasManyCountAssociationsMixin;
242
242
  // AppUser hasMany UserComments via appUserId
243
243
  userComments!: UserComments[];
244
244
  getUserComments!: Sequelize.HasManyGetAssociationsMixin<UserComments>;
@@ -13,6 +13,7 @@ import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from
13
13
  import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
14
14
  import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
15
15
  import type { Notification, NotificationId } from './Notification';
16
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
16
17
  import type { UserComments, UserCommentsId } from './UserComments';
17
18
  import type { UserLikes, UserLikesId } from './UserLikes';
18
19
 
@@ -156,6 +157,18 @@ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessi
156
157
  hasNotification!: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
157
158
  hasNotifications!: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
158
159
  countNotifications!: Sequelize.HasManyCountAssociationsMixin;
160
+ // JukeboxSession hasMany UserBookmarks via jukeboxId
161
+ userBookmarks!: UserBookmarks[];
162
+ getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
163
+ setUserBookmarks!: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
164
+ addUserBookmark!: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
165
+ addUserBookmarks!: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
166
+ createUserBookmark!: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
167
+ removeUserBookmark!: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
168
+ removeUserBookmarks!: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
169
+ hasUserBookmark!: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
170
+ hasUserBookmarks!: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
171
+ countUserBookmarks!: Sequelize.HasManyCountAssociationsMixin;
159
172
  // JukeboxSession hasMany UserComments via jukeboxId
160
173
  userComments!: UserComments[];
161
174
  getUserComments!: Sequelize.HasManyGetAssociationsMixin<UserComments>;
@@ -3,6 +3,7 @@ import { DataTypes, Model, Optional } from 'sequelize';
3
3
  import type { CanonArtist, CanonArtistId } from './CanonArtist';
4
4
  import type { MerchPlatform, MerchPlatformId } from './MerchPlatform';
5
5
  import type { MerchType, MerchTypeId } from './MerchType';
6
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
6
7
 
7
8
  export interface MerchItemAttributes {
8
9
  canonArtistId: string;
@@ -43,6 +44,18 @@ export class MerchItem extends Model<MerchItemAttributes, MerchItemCreationAttri
43
44
  getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
44
45
  setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
45
46
  createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
47
+ // MerchItem hasMany UserBookmarks via merchItemId
48
+ userBookmarks!: UserBookmarks[];
49
+ getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
50
+ setUserBookmarks!: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
51
+ addUserBookmark!: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
52
+ addUserBookmarks!: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
53
+ createUserBookmark!: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
54
+ removeUserBookmark!: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
55
+ removeUserBookmarks!: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
56
+ hasUserBookmark!: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
57
+ hasUserBookmarks!: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
58
+ countUserBookmarks!: Sequelize.HasManyCountAssociationsMixin;
46
59
  // MerchItem belongsTo MerchPlatform via merchPlatformId
47
60
  merchPlatform!: MerchPlatform;
48
61
  getMerchPlatform!: Sequelize.BelongsToGetAssociationMixin<MerchPlatform>;
@@ -2,6 +2,7 @@ import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
3
  import type { CanonArtist, CanonArtistId } from './CanonArtist';
4
4
  import type { NewsPlatform, NewsPlatformId } from './NewsPlatform';
5
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
5
6
 
6
7
  export interface NewsArticleAttributes {
7
8
  id: string;
@@ -38,6 +39,18 @@ export class NewsArticle extends Model<NewsArticleAttributes, NewsArticleCreatio
38
39
  getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
39
40
  setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
40
41
  createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
42
+ // NewsArticle hasMany UserBookmarks via newsArticleId
43
+ userBookmarks!: UserBookmarks[];
44
+ getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
45
+ setUserBookmarks!: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
46
+ addUserBookmark!: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
47
+ addUserBookmarks!: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
48
+ createUserBookmark!: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
49
+ removeUserBookmark!: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
50
+ removeUserBookmarks!: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
51
+ hasUserBookmark!: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
52
+ hasUserBookmarks!: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
53
+ countUserBookmarks!: Sequelize.HasManyCountAssociationsMixin;
41
54
  // NewsArticle belongsTo NewsPlatform via newsPlatformId
42
55
  newsPlatform!: NewsPlatform;
43
56
  getNewsPlatform!: Sequelize.BelongsToGetAssociationMixin<NewsPlatform>;
@@ -6,6 +6,7 @@ import type { PlatformUserPlaylistArtistAffinity, PlatformUserPlaylistArtistAffi
6
6
  import type { PlatformUserPlaylistGenreAffinity, PlatformUserPlaylistGenreAffinityId } from './PlatformUserPlaylistGenreAffinity';
7
7
  import type { PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId } from './PlatformUserPlaylistTrack';
8
8
  import type { State, StateId } from './State';
9
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
9
10
  import type { UserComments, UserCommentsId } from './UserComments';
10
11
  import type { UserLikes, UserLikesId } from './UserLikes';
11
12
 
@@ -91,6 +92,18 @@ export class PlatformUserPlaylist extends Model<PlatformUserPlaylistAttributes,
91
92
  hasPlatformUserPlaylistTrack!: Sequelize.HasManyHasAssociationMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
92
93
  hasPlatformUserPlaylistTracks!: Sequelize.HasManyHasAssociationsMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
93
94
  countPlatformUserPlaylistTracks!: Sequelize.HasManyCountAssociationsMixin;
95
+ // PlatformUserPlaylist hasMany UserBookmarks via playlistId
96
+ userBookmarks!: UserBookmarks[];
97
+ getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
98
+ setUserBookmarks!: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
99
+ addUserBookmark!: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
100
+ addUserBookmarks!: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
101
+ createUserBookmark!: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
102
+ removeUserBookmark!: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
103
+ removeUserBookmarks!: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
104
+ hasUserBookmark!: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
105
+ hasUserBookmarks!: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
106
+ countUserBookmarks!: Sequelize.HasManyCountAssociationsMixin;
94
107
  // PlatformUserPlaylist hasMany UserComments via playlistId
95
108
  userComments!: UserComments[];
96
109
  getUserComments!: Sequelize.HasManyGetAssociationsMixin<UserComments>;
@@ -5,6 +5,7 @@ import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
5
5
  import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
6
6
  import type { RadioShowPlacement, RadioShowPlacementId } from './RadioShowPlacement';
7
7
  import type { RadioShowPublishRequests, RadioShowPublishRequestsId } from './RadioShowPublishRequests';
8
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
8
9
  import type { UserComments, UserCommentsId } from './UserComments';
9
10
  import type { UserLikes, UserLikesId } from './UserLikes';
10
11
 
@@ -87,6 +88,18 @@ export class RadioShow extends Model<RadioShowAttributes, RadioShowCreationAttri
87
88
  hasRadioShowPublishRequest!: Sequelize.HasManyHasAssociationMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
88
89
  hasRadioShowPublishRequests!: Sequelize.HasManyHasAssociationsMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
89
90
  countRadioShowPublishRequests!: Sequelize.HasManyCountAssociationsMixin;
91
+ // RadioShow hasMany UserBookmarks via radioShowId
92
+ userBookmarks!: UserBookmarks[];
93
+ getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
94
+ setUserBookmarks!: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
95
+ addUserBookmark!: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
96
+ addUserBookmarks!: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
97
+ createUserBookmark!: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
98
+ removeUserBookmark!: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
99
+ removeUserBookmarks!: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
100
+ hasUserBookmark!: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
101
+ hasUserBookmarks!: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
102
+ countUserBookmarks!: Sequelize.HasManyCountAssociationsMixin;
90
103
  // RadioShow hasMany UserComments via radioShowId
91
104
  userComments!: UserComments[];
92
105
  getUserComments!: Sequelize.HasManyGetAssociationsMixin<UserComments>;
@@ -1,6 +1,5 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
- import type { AppUser, AppUserId } from './AppUser';
4
3
  import type { RadioShow, RadioShowId } from './RadioShow';
5
4
 
6
5
  export interface RadioShowMediaAttributes {
@@ -20,12 +19,12 @@ export interface RadioShowMediaAttributes {
20
19
  automatedModerationDecidedAt?: Date;
21
20
  manualModerationApproved?: boolean;
22
21
  manualModerationDecidedAt?: Date;
23
- manualModerationByUserId?: string;
22
+ manualModerationBy?: string;
24
23
  }
25
24
 
26
25
  export type RadioShowMediaPk = "id";
27
26
  export type RadioShowMediaId = RadioShowMedia[RadioShowMediaPk];
28
- export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationByUserId";
27
+ export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationBy";
29
28
  export type RadioShowMediaCreationAttributes = Optional<RadioShowMediaAttributes, RadioShowMediaOptionalAttributes>;
30
29
 
31
30
  export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMediaCreationAttributes> implements RadioShowMediaAttributes {
@@ -45,13 +44,8 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
45
44
  automatedModerationDecidedAt?: Date;
46
45
  manualModerationApproved?: boolean;
47
46
  manualModerationDecidedAt?: Date;
48
- manualModerationByUserId?: string;
47
+ manualModerationBy?: string;
49
48
 
50
- // RadioShowMedia belongsTo AppUser via manualModerationByUserId
51
- manualModerationByUser!: AppUser;
52
- getManualModerationByUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
53
- setManualModerationByUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
54
- createManualModerationByUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
55
49
  // RadioShowMedia belongsTo RadioShow via radioShowId
56
50
  radioShow!: RadioShow;
57
51
  getRadioShow!: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
@@ -144,14 +138,10 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
144
138
  allowNull: true,
145
139
  field: 'manual_moderation_decided_at'
146
140
  },
147
- manualModerationByUserId: {
148
- type: DataTypes.UUID,
141
+ manualModerationBy: {
142
+ type: DataTypes.TEXT,
149
143
  allowNull: true,
150
- references: {
151
- model: 'app_user',
152
- key: 'id'
153
- },
154
- field: 'manual_moderation_by_user_id'
144
+ field: 'manual_moderation_by'
155
145
  }
156
146
  }, {
157
147
  sequelize,
@@ -0,0 +1,235 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+ import type { MerchItem, MerchItemId } from './MerchItem';
6
+ import type { NewsArticle, NewsArticleId } from './NewsArticle';
7
+ import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
8
+ import type { RadioShow, RadioShowId } from './RadioShow';
9
+
10
+ export interface UserBookmarksAttributes {
11
+ appUserId: string;
12
+ jukeboxId?: string;
13
+ playlistId?: string;
14
+ radioShowId?: string;
15
+ merchItemId?: string;
16
+ newsArticleId?: string;
17
+ id: string;
18
+ createDate: Date;
19
+ updateDate: Date;
20
+ }
21
+
22
+ export type UserBookmarksPk = "id";
23
+ export type UserBookmarksId = UserBookmarks[UserBookmarksPk];
24
+ export type UserBookmarksOptionalAttributes = "jukeboxId" | "playlistId" | "radioShowId" | "merchItemId" | "newsArticleId" | "id" | "createDate" | "updateDate";
25
+ export type UserBookmarksCreationAttributes = Optional<UserBookmarksAttributes, UserBookmarksOptionalAttributes>;
26
+
27
+ export class UserBookmarks extends Model<UserBookmarksAttributes, UserBookmarksCreationAttributes> implements UserBookmarksAttributes {
28
+ appUserId!: string;
29
+ jukeboxId?: string;
30
+ playlistId?: string;
31
+ radioShowId?: string;
32
+ merchItemId?: string;
33
+ newsArticleId?: string;
34
+ id!: string;
35
+ createDate!: Date;
36
+ updateDate!: Date;
37
+
38
+ // UserBookmarks belongsTo AppUser via appUserId
39
+ appUser!: AppUser;
40
+ getAppUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
41
+ setAppUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
42
+ createAppUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
43
+ // UserBookmarks belongsTo JukeboxSession via jukeboxId
44
+ jukebox!: JukeboxSession;
45
+ getJukebox!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
46
+ setJukebox!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
47
+ createJukebox!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
48
+ // UserBookmarks belongsTo MerchItem via merchItemId
49
+ merchItem!: MerchItem;
50
+ getMerchItem!: Sequelize.BelongsToGetAssociationMixin<MerchItem>;
51
+ setMerchItem!: Sequelize.BelongsToSetAssociationMixin<MerchItem, MerchItemId>;
52
+ createMerchItem!: Sequelize.BelongsToCreateAssociationMixin<MerchItem>;
53
+ // UserBookmarks belongsTo NewsArticle via newsArticleId
54
+ newsArticle!: NewsArticle;
55
+ getNewsArticle!: Sequelize.BelongsToGetAssociationMixin<NewsArticle>;
56
+ setNewsArticle!: Sequelize.BelongsToSetAssociationMixin<NewsArticle, NewsArticleId>;
57
+ createNewsArticle!: Sequelize.BelongsToCreateAssociationMixin<NewsArticle>;
58
+ // UserBookmarks belongsTo PlatformUserPlaylist via playlistId
59
+ playlist!: PlatformUserPlaylist;
60
+ getPlaylist!: Sequelize.BelongsToGetAssociationMixin<PlatformUserPlaylist>;
61
+ setPlaylist!: Sequelize.BelongsToSetAssociationMixin<PlatformUserPlaylist, PlatformUserPlaylistId>;
62
+ createPlaylist!: Sequelize.BelongsToCreateAssociationMixin<PlatformUserPlaylist>;
63
+ // UserBookmarks belongsTo RadioShow via radioShowId
64
+ radioShow!: RadioShow;
65
+ getRadioShow!: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
66
+ setRadioShow!: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
67
+ createRadioShow!: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
68
+
69
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserBookmarks {
70
+ return UserBookmarks.init({
71
+ appUserId: {
72
+ type: DataTypes.UUID,
73
+ allowNull: false,
74
+ references: {
75
+ model: 'app_user',
76
+ key: 'id'
77
+ },
78
+ field: 'app_user_id'
79
+ },
80
+ jukeboxId: {
81
+ type: DataTypes.UUID,
82
+ allowNull: true,
83
+ references: {
84
+ model: 'jukebox_session',
85
+ key: 'id'
86
+ },
87
+ field: 'jukebox_id'
88
+ },
89
+ playlistId: {
90
+ type: DataTypes.UUID,
91
+ allowNull: true,
92
+ references: {
93
+ model: 'platform_user_playlist',
94
+ key: 'id'
95
+ },
96
+ field: 'playlist_id'
97
+ },
98
+ radioShowId: {
99
+ type: DataTypes.UUID,
100
+ allowNull: true,
101
+ references: {
102
+ model: 'radio_show',
103
+ key: 'id'
104
+ },
105
+ field: 'radio_show_id'
106
+ },
107
+ merchItemId: {
108
+ type: DataTypes.UUID,
109
+ allowNull: true,
110
+ references: {
111
+ model: 'merch_item',
112
+ key: 'id'
113
+ },
114
+ field: 'merch_item_id'
115
+ },
116
+ newsArticleId: {
117
+ type: DataTypes.UUID,
118
+ allowNull: true,
119
+ references: {
120
+ model: 'news_article',
121
+ key: 'id'
122
+ },
123
+ field: 'news_article_id'
124
+ },
125
+ id: {
126
+ type: DataTypes.UUID,
127
+ allowNull: false,
128
+ defaultValue: DataTypes.UUIDV4,
129
+ primaryKey: true
130
+ },
131
+ createDate: {
132
+ type: DataTypes.DATE,
133
+ allowNull: false,
134
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
135
+ field: 'create_date'
136
+ },
137
+ updateDate: {
138
+ type: DataTypes.DATE,
139
+ allowNull: false,
140
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
141
+ field: 'update_date'
142
+ }
143
+ }, {
144
+ sequelize,
145
+ tableName: 'user_bookmarks',
146
+ schema: 'eb',
147
+ timestamps: false,
148
+ indexes: [
149
+ {
150
+ name: "idx_user_bookmarks_jukebox",
151
+ fields: [
152
+ { name: "jukebox_id" },
153
+ ]
154
+ },
155
+ {
156
+ name: "idx_user_bookmarks_merch_item",
157
+ fields: [
158
+ { name: "merch_item_id" },
159
+ ]
160
+ },
161
+ {
162
+ name: "idx_user_bookmarks_news_article",
163
+ fields: [
164
+ { name: "news_article_id" },
165
+ ]
166
+ },
167
+ {
168
+ name: "idx_user_bookmarks_playlist",
169
+ fields: [
170
+ { name: "playlist_id" },
171
+ ]
172
+ },
173
+ {
174
+ name: "idx_user_bookmarks_radio_show",
175
+ fields: [
176
+ { name: "radio_show_id" },
177
+ ]
178
+ },
179
+ {
180
+ name: "idx_user_bookmarks_user",
181
+ fields: [
182
+ { name: "app_user_id" },
183
+ ]
184
+ },
185
+ {
186
+ name: "uq_user_bookmarks_user_jukebox",
187
+ unique: true,
188
+ fields: [
189
+ { name: "app_user_id" },
190
+ { name: "jukebox_id" },
191
+ ]
192
+ },
193
+ {
194
+ name: "uq_user_bookmarks_user_merch_item",
195
+ unique: true,
196
+ fields: [
197
+ { name: "app_user_id" },
198
+ { name: "merch_item_id" },
199
+ ]
200
+ },
201
+ {
202
+ name: "uq_user_bookmarks_user_news_article",
203
+ unique: true,
204
+ fields: [
205
+ { name: "app_user_id" },
206
+ { name: "news_article_id" },
207
+ ]
208
+ },
209
+ {
210
+ name: "uq_user_bookmarks_user_playlist",
211
+ unique: true,
212
+ fields: [
213
+ { name: "app_user_id" },
214
+ { name: "playlist_id" },
215
+ ]
216
+ },
217
+ {
218
+ name: "uq_user_bookmarks_user_radio_show",
219
+ unique: true,
220
+ fields: [
221
+ { name: "app_user_id" },
222
+ { name: "radio_show_id" },
223
+ ]
224
+ },
225
+ {
226
+ name: "user_bookmarks_pkey",
227
+ unique: true,
228
+ fields: [
229
+ { name: "id" },
230
+ ]
231
+ },
232
+ ]
233
+ });
234
+ }
235
+ }
@@ -185,6 +185,8 @@ import { UserAffinity as _UserAffinity } from "./UserAffinity";
185
185
  import type { UserAffinityAttributes, UserAffinityCreationAttributes } from "./UserAffinity";
186
186
  import { UserArtistAffinity as _UserArtistAffinity } from "./UserArtistAffinity";
187
187
  import type { UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes } from "./UserArtistAffinity";
188
+ import { UserBookmarks as _UserBookmarks } from "./UserBookmarks";
189
+ import type { UserBookmarksAttributes, UserBookmarksCreationAttributes } from "./UserBookmarks";
188
190
  import { UserComments as _UserComments } from "./UserComments";
189
191
  import type { UserCommentsAttributes, UserCommentsCreationAttributes } from "./UserComments";
190
192
  import { UserContacts as _UserContacts } from "./UserContacts";
@@ -290,6 +292,7 @@ export {
290
292
  _UnmatchedArtist as UnmatchedArtist,
291
293
  _UserAffinity as UserAffinity,
292
294
  _UserArtistAffinity as UserArtistAffinity,
295
+ _UserBookmarks as UserBookmarks,
293
296
  _UserComments as UserComments,
294
297
  _UserContacts as UserContacts,
295
298
  _UserEngagementFactor as UserEngagementFactor,
@@ -484,6 +487,8 @@ export type {
484
487
  UserAffinityCreationAttributes,
485
488
  UserArtistAffinityAttributes,
486
489
  UserArtistAffinityCreationAttributes,
490
+ UserBookmarksAttributes,
491
+ UserBookmarksCreationAttributes,
487
492
  UserCommentsAttributes,
488
493
  UserCommentsCreationAttributes,
489
494
  UserContactsAttributes,
@@ -590,6 +595,7 @@ export function initModels(sequelize: Sequelize) {
590
595
  const UnmatchedArtist = _UnmatchedArtist.initModel(sequelize);
591
596
  const UserAffinity = _UserAffinity.initModel(sequelize);
592
597
  const UserArtistAffinity = _UserArtistAffinity.initModel(sequelize);
598
+ const UserBookmarks = _UserBookmarks.initModel(sequelize);
593
599
  const UserComments = _UserComments.initModel(sequelize);
594
600
  const UserContacts = _UserContacts.initModel(sequelize);
595
601
  const UserEngagementFactor = _UserEngagementFactor.initModel(sequelize);
@@ -680,12 +686,12 @@ export function initModels(sequelize: Sequelize) {
680
686
  AppUser.hasMany(PlatformUserPlaylist, { as: "platformUserPlaylists", foreignKey: "appUserId"});
681
687
  RadioShow.belongsTo(AppUser, { as: "creatorUser", foreignKey: "creatorUserId"});
682
688
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId"});
683
- RadioShowMedia.belongsTo(AppUser, { as: "manualModerationByUser", foreignKey: "manualModerationByUserId"});
684
- AppUser.hasMany(RadioShowMedia, { as: "radioShowMedia", foreignKey: "manualModerationByUserId"});
685
689
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
686
690
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId"});
687
691
  UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
688
692
  AppUser.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "userId"});
693
+ UserBookmarks.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
694
+ AppUser.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "appUserId"});
689
695
  UserComments.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
690
696
  AppUser.hasMany(UserComments, { as: "userComments", foreignKey: "appUserId"});
691
697
  UserContacts.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
@@ -796,6 +802,8 @@ export function initModels(sequelize: Sequelize) {
796
802
  JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId"});
797
803
  Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
798
804
  JukeboxSession.hasMany(Notification, { as: "notifications", foreignKey: "jukeboxSessionId"});
805
+ UserBookmarks.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId"});
806
+ JukeboxSession.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "jukeboxId"});
799
807
  UserComments.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId"});
800
808
  JukeboxSession.hasMany(UserComments, { as: "userComments", foreignKey: "jukeboxId"});
801
809
  UserLikes.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId"});
@@ -808,6 +816,8 @@ export function initModels(sequelize: Sequelize) {
808
816
  JukeboxType.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "typeId"});
809
817
  JukeboxUser.belongsTo(JukeboxUserType, { as: "jukeboxUserType", foreignKey: "jukeboxUserTypeId"});
810
818
  JukeboxUserType.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxUserTypeId"});
819
+ UserBookmarks.belongsTo(MerchItem, { as: "merchItem", foreignKey: "merchItemId"});
820
+ MerchItem.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "merchItemId"});
811
821
  MerchItem.belongsTo(MerchPlatform, { as: "merchPlatform", foreignKey: "merchPlatformId"});
812
822
  MerchPlatform.hasMany(MerchItem, { as: "merchItems", foreignKey: "merchPlatformId"});
813
823
  MerchOrchestration.belongsTo(MerchPlatform, { as: "merchPlatform", foreignKey: "merchPlatformId"});
@@ -816,6 +826,8 @@ export function initModels(sequelize: Sequelize) {
816
826
  MerchType.hasMany(MerchItem, { as: "merchItems", foreignKey: "merchTypeId"});
817
827
  MerchOrchestration.belongsTo(MerchType, { as: "merchType", foreignKey: "merchTypeId"});
818
828
  MerchType.hasMany(MerchOrchestration, { as: "merchOrchestrations", foreignKey: "merchTypeId"});
829
+ UserBookmarks.belongsTo(NewsArticle, { as: "newsArticle", foreignKey: "newsArticleId"});
830
+ NewsArticle.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "newsArticleId"});
819
831
  NewsArticle.belongsTo(NewsPlatform, { as: "newsPlatform", foreignKey: "newsPlatformId"});
820
832
  NewsPlatform.hasMany(NewsArticle, { as: "newsArticles", foreignKey: "newsPlatformId"});
821
833
  Notification.belongsTo(NotificationType, { as: "notificationType", foreignKey: "notificationTypeId"});
@@ -902,6 +914,8 @@ export function initModels(sequelize: Sequelize) {
902
914
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistGenreAffinity, { as: "platformUserPlaylistGenreAffinities", foreignKey: "platformUserPlaylistId"});
903
915
  PlatformUserPlaylistTrack.belongsTo(PlatformUserPlaylist, { as: "platformUserPlaylist", foreignKey: "platformUserPlaylistId"});
904
916
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistTrack, { as: "platformUserPlaylistTracks", foreignKey: "platformUserPlaylistId"});
917
+ UserBookmarks.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId"});
918
+ PlatformUserPlaylist.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "playlistId"});
905
919
  UserComments.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId"});
906
920
  PlatformUserPlaylist.hasMany(UserComments, { as: "userComments", foreignKey: "playlistId"});
907
921
  UserLikes.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId"});
@@ -916,6 +930,8 @@ export function initModels(sequelize: Sequelize) {
916
930
  RadioShow.hasMany(RadioShowPlacement, { as: "radioShowPlacements", foreignKey: "radioShowId"});
917
931
  RadioShowPublishRequests.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
918
932
  RadioShow.hasMany(RadioShowPublishRequests, { as: "radioShowPublishRequests", foreignKey: "radioShowId"});
933
+ UserBookmarks.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
934
+ RadioShow.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "radioShowId"});
919
935
  UserComments.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
920
936
  RadioShow.hasMany(UserComments, { as: "userComments", foreignKey: "radioShowId"});
921
937
  UserLikes.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
@@ -1025,6 +1041,7 @@ export function initModels(sequelize: Sequelize) {
1025
1041
  UnmatchedArtist: UnmatchedArtist,
1026
1042
  UserAffinity: UserAffinity,
1027
1043
  UserArtistAffinity: UserArtistAffinity,
1044
+ UserBookmarks: UserBookmarks,
1028
1045
  UserComments: UserComments,
1029
1046
  UserContacts: UserContacts,
1030
1047
  UserEngagementFactor: UserEngagementFactor,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earbug/db-models",
3
- "version": "0.0.34",
3
+ "version": "0.0.35",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {