@earbug/db-models 0.0.33 → 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.
@@ -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);
@@ -386,6 +389,8 @@ function initModels(sequelize) {
386
389
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId" });
387
390
  UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
388
391
  AppUser.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "userId" });
392
+ UserBookmarks.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
393
+ AppUser.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "appUserId" });
389
394
  UserComments.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
390
395
  AppUser.hasMany(UserComments, { as: "userComments", foreignKey: "appUserId" });
391
396
  UserContacts.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
@@ -496,6 +501,8 @@ function initModels(sequelize) {
496
501
  JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId" });
497
502
  Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
498
503
  JukeboxSession.hasMany(Notification, { as: "notifications", foreignKey: "jukeboxSessionId" });
504
+ UserBookmarks.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
505
+ JukeboxSession.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "jukeboxId" });
499
506
  UserComments.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
500
507
  JukeboxSession.hasMany(UserComments, { as: "userComments", foreignKey: "jukeboxId" });
501
508
  UserLikes.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
@@ -508,6 +515,8 @@ function initModels(sequelize) {
508
515
  JukeboxType.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "typeId" });
509
516
  JukeboxUser.belongsTo(JukeboxUserType, { as: "jukeboxUserType", foreignKey: "jukeboxUserTypeId" });
510
517
  JukeboxUserType.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxUserTypeId" });
518
+ UserBookmarks.belongsTo(MerchItem, { as: "merchItem", foreignKey: "merchItemId" });
519
+ MerchItem.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "merchItemId" });
511
520
  MerchItem.belongsTo(MerchPlatform, { as: "merchPlatform", foreignKey: "merchPlatformId" });
512
521
  MerchPlatform.hasMany(MerchItem, { as: "merchItems", foreignKey: "merchPlatformId" });
513
522
  MerchOrchestration.belongsTo(MerchPlatform, { as: "merchPlatform", foreignKey: "merchPlatformId" });
@@ -516,6 +525,8 @@ function initModels(sequelize) {
516
525
  MerchType.hasMany(MerchItem, { as: "merchItems", foreignKey: "merchTypeId" });
517
526
  MerchOrchestration.belongsTo(MerchType, { as: "merchType", foreignKey: "merchTypeId" });
518
527
  MerchType.hasMany(MerchOrchestration, { as: "merchOrchestrations", foreignKey: "merchTypeId" });
528
+ UserBookmarks.belongsTo(NewsArticle, { as: "newsArticle", foreignKey: "newsArticleId" });
529
+ NewsArticle.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "newsArticleId" });
519
530
  NewsArticle.belongsTo(NewsPlatform, { as: "newsPlatform", foreignKey: "newsPlatformId" });
520
531
  NewsPlatform.hasMany(NewsArticle, { as: "newsArticles", foreignKey: "newsPlatformId" });
521
532
  Notification.belongsTo(NotificationType, { as: "notificationType", foreignKey: "notificationTypeId" });
@@ -602,6 +613,8 @@ function initModels(sequelize) {
602
613
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistGenreAffinity, { as: "platformUserPlaylistGenreAffinities", foreignKey: "platformUserPlaylistId" });
603
614
  PlatformUserPlaylistTrack.belongsTo(PlatformUserPlaylist, { as: "platformUserPlaylist", foreignKey: "platformUserPlaylistId" });
604
615
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistTrack, { as: "platformUserPlaylistTracks", foreignKey: "platformUserPlaylistId" });
616
+ UserBookmarks.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
617
+ PlatformUserPlaylist.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "playlistId" });
605
618
  UserComments.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
606
619
  PlatformUserPlaylist.hasMany(UserComments, { as: "userComments", foreignKey: "playlistId" });
607
620
  UserLikes.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
@@ -616,6 +629,8 @@ function initModels(sequelize) {
616
629
  RadioShow.hasMany(RadioShowPlacement, { as: "radioShowPlacements", foreignKey: "radioShowId" });
617
630
  RadioShowPublishRequests.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
618
631
  RadioShow.hasMany(RadioShowPublishRequests, { as: "radioShowPublishRequests", foreignKey: "radioShowId" });
632
+ UserBookmarks.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
633
+ RadioShow.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "radioShowId" });
619
634
  UserComments.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
620
635
  RadioShow.hasMany(UserComments, { as: "userComments", foreignKey: "radioShowId" });
621
636
  UserLikes.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
@@ -724,6 +739,7 @@ function initModels(sequelize) {
724
739
  UnmatchedArtist: UnmatchedArtist,
725
740
  UserAffinity: UserAffinity,
726
741
  UserArtistAffinity: UserArtistAffinity,
742
+ UserBookmarks: UserBookmarks,
727
743
  UserComments: UserComments,
728
744
  UserContacts: UserContacts,
729
745
  UserEngagementFactor: UserEngagementFactor,
package/models/AppUser.ts CHANGED
@@ -13,6 +13,7 @@ import type { RadioShow, RadioShowId } from './RadioShow';
13
13
  import type { State, StateId } from './State';
14
14
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
15
15
  import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
16
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
16
17
  import type { UserComments, UserCommentsId } from './UserComments';
17
18
  import type { UserContacts, UserContactsId } from './UserContacts';
18
19
  import type { UserEngagementFactor, UserEngagementFactorId } from './UserEngagementFactor';
@@ -226,6 +227,18 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
226
227
  hasUserArtistAffinity!: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
227
228
  hasUserArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
228
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;
229
242
  // AppUser hasMany UserComments via appUserId
230
243
  userComments!: UserComments[];
231
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>;
@@ -7,7 +7,6 @@ export interface RadioShowMediaAttributes {
7
7
  originalMediaType?: number;
8
8
  s3VideoUrl?: string;
9
9
  s3AudioUrl: string;
10
- approved?: boolean;
11
10
  id: string;
12
11
  createDate: Date;
13
12
  description?: string;
@@ -15,11 +14,17 @@ export interface RadioShowMediaAttributes {
15
14
  deleted?: boolean;
16
15
  sourceS3Key?: string;
17
16
  isAppRecorded?: boolean;
17
+ automatedModerationApproved?: boolean;
18
+ automatedModerationRejectionMetadata?: object;
19
+ automatedModerationDecidedAt?: Date;
20
+ manualModerationApproved?: boolean;
21
+ manualModerationDecidedAt?: Date;
22
+ manualModerationBy?: string;
18
23
  }
19
24
 
20
25
  export type RadioShowMediaPk = "id";
21
26
  export type RadioShowMediaId = RadioShowMedia[RadioShowMediaPk];
22
- export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "approved" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded";
27
+ export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationBy";
23
28
  export type RadioShowMediaCreationAttributes = Optional<RadioShowMediaAttributes, RadioShowMediaOptionalAttributes>;
24
29
 
25
30
  export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMediaCreationAttributes> implements RadioShowMediaAttributes {
@@ -27,7 +32,6 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
27
32
  originalMediaType?: number;
28
33
  s3VideoUrl?: string;
29
34
  s3AudioUrl!: string;
30
- approved?: boolean;
31
35
  id!: string;
32
36
  createDate!: Date;
33
37
  description?: string;
@@ -35,6 +39,12 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
35
39
  deleted?: boolean;
36
40
  sourceS3Key?: string;
37
41
  isAppRecorded?: boolean;
42
+ automatedModerationApproved?: boolean;
43
+ automatedModerationRejectionMetadata?: object;
44
+ automatedModerationDecidedAt?: Date;
45
+ manualModerationApproved?: boolean;
46
+ manualModerationDecidedAt?: Date;
47
+ manualModerationBy?: string;
38
48
 
39
49
  // RadioShowMedia belongsTo RadioShow via radioShowId
40
50
  radioShow!: RadioShow;
@@ -68,10 +78,6 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
68
78
  allowNull: false,
69
79
  field: 's3_audio_url'
70
80
  },
71
- approved: {
72
- type: DataTypes.BOOLEAN,
73
- allowNull: true
74
- },
75
81
  id: {
76
82
  type: DataTypes.UUID,
77
83
  allowNull: false,
@@ -106,6 +112,36 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
106
112
  type: DataTypes.BOOLEAN,
107
113
  allowNull: true,
108
114
  field: 'is_app_recorded'
115
+ },
116
+ automatedModerationApproved: {
117
+ type: DataTypes.BOOLEAN,
118
+ allowNull: true,
119
+ field: 'automated_moderation_approved'
120
+ },
121
+ automatedModerationRejectionMetadata: {
122
+ type: DataTypes.JSONB,
123
+ allowNull: true,
124
+ field: 'automated_moderation_rejection_metadata'
125
+ },
126
+ automatedModerationDecidedAt: {
127
+ type: DataTypes.DATE,
128
+ allowNull: true,
129
+ field: 'automated_moderation_decided_at'
130
+ },
131
+ manualModerationApproved: {
132
+ type: DataTypes.BOOLEAN,
133
+ allowNull: true,
134
+ field: 'manual_moderation_approved'
135
+ },
136
+ manualModerationDecidedAt: {
137
+ type: DataTypes.DATE,
138
+ allowNull: true,
139
+ field: 'manual_moderation_decided_at'
140
+ },
141
+ manualModerationBy: {
142
+ type: DataTypes.TEXT,
143
+ allowNull: true,
144
+ field: 'manual_moderation_by'
109
145
  }
110
146
  }, {
111
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
+ }