@earbug/db-models 0.0.27 → 0.0.29
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/.github/workflows/publish.yaml +2 -2
- package/dist/AffinityTier.d.ts +38 -0
- package/dist/AffinityTier.js +42 -0
- package/dist/CanonArtist.d.ts +12 -0
- package/dist/CanonGenre.d.ts +12 -0
- package/dist/JukeboxSession.d.ts +24 -0
- package/dist/JukeboxSessionArtistAffinity.d.ts +40 -0
- package/dist/JukeboxSessionArtistAffinity.js +120 -0
- package/dist/JukeboxSessionGenreAffinity.d.ts +40 -0
- package/dist/JukeboxSessionGenreAffinity.js +120 -0
- package/dist/init-models.d.ts +11 -2
- package/dist/init-models.js +26 -2
- package/models/AffinityTier.ts +79 -0
- package/models/CanonArtist.ts +13 -0
- package/models/CanonGenre.ts +13 -0
- package/models/JukeboxSession.ts +26 -0
- package/models/JukeboxSessionArtistAffinity.ts +136 -0
- package/models/JukeboxSessionGenreAffinity.ts +136 -0
- package/models/init-models.ts +33 -0
- package/package.json +1 -1
package/dist/init-models.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.UserLikes = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = 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.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 = void 0;
|
|
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.UserEngagementFactor = exports.UserContacts = exports.UserComments = 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.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; } });
|
|
8
8
|
const AffinityRelationshipType_1 = require("./AffinityRelationshipType");
|
|
9
9
|
Object.defineProperty(exports, "AffinityRelationshipType", { enumerable: true, get: function () { return AffinityRelationshipType_1.AffinityRelationshipType; } });
|
|
10
|
+
const AffinityTier_1 = require("./AffinityTier");
|
|
11
|
+
Object.defineProperty(exports, "AffinityTier", { enumerable: true, get: function () { return AffinityTier_1.AffinityTier; } });
|
|
10
12
|
const AppUser_1 = require("./AppUser");
|
|
11
13
|
Object.defineProperty(exports, "AppUser", { enumerable: true, get: function () { return AppUser_1.AppUser; } });
|
|
12
14
|
const AppUserDevice_1 = require("./AppUserDevice");
|
|
@@ -85,6 +87,10 @@ const JukeboxQueueMode_1 = require("./JukeboxQueueMode");
|
|
|
85
87
|
Object.defineProperty(exports, "JukeboxQueueMode", { enumerable: true, get: function () { return JukeboxQueueMode_1.JukeboxQueueMode; } });
|
|
86
88
|
const JukeboxSession_1 = require("./JukeboxSession");
|
|
87
89
|
Object.defineProperty(exports, "JukeboxSession", { enumerable: true, get: function () { return JukeboxSession_1.JukeboxSession; } });
|
|
90
|
+
const JukeboxSessionArtistAffinity_1 = require("./JukeboxSessionArtistAffinity");
|
|
91
|
+
Object.defineProperty(exports, "JukeboxSessionArtistAffinity", { enumerable: true, get: function () { return JukeboxSessionArtistAffinity_1.JukeboxSessionArtistAffinity; } });
|
|
92
|
+
const JukeboxSessionGenreAffinity_1 = require("./JukeboxSessionGenreAffinity");
|
|
93
|
+
Object.defineProperty(exports, "JukeboxSessionGenreAffinity", { enumerable: true, get: function () { return JukeboxSessionGenreAffinity_1.JukeboxSessionGenreAffinity; } });
|
|
88
94
|
const JukeboxStatus_1 = require("./JukeboxStatus");
|
|
89
95
|
Object.defineProperty(exports, "JukeboxStatus", { enumerable: true, get: function () { return JukeboxStatus_1.JukeboxStatus; } });
|
|
90
96
|
const JukeboxTerminationCondition_1 = require("./JukeboxTerminationCondition");
|
|
@@ -188,6 +194,7 @@ Object.defineProperty(exports, "UserLikes", { enumerable: true, get: function ()
|
|
|
188
194
|
function initModels(sequelize) {
|
|
189
195
|
const AccessControlPreference = AccessControlPreference_1.AccessControlPreference.initModel(sequelize);
|
|
190
196
|
const AffinityRelationshipType = AffinityRelationshipType_1.AffinityRelationshipType.initModel(sequelize);
|
|
197
|
+
const AffinityTier = AffinityTier_1.AffinityTier.initModel(sequelize);
|
|
191
198
|
const AppUser = AppUser_1.AppUser.initModel(sequelize);
|
|
192
199
|
const AppUserDevice = AppUserDevice_1.AppUserDevice.initModel(sequelize);
|
|
193
200
|
const AppUserFollowRelation = AppUserFollowRelation_1.AppUserFollowRelation.initModel(sequelize);
|
|
@@ -227,6 +234,8 @@ function initModels(sequelize) {
|
|
|
227
234
|
const JukeboxQueueEntry = JukeboxQueueEntry_1.JukeboxQueueEntry.initModel(sequelize);
|
|
228
235
|
const JukeboxQueueMode = JukeboxQueueMode_1.JukeboxQueueMode.initModel(sequelize);
|
|
229
236
|
const JukeboxSession = JukeboxSession_1.JukeboxSession.initModel(sequelize);
|
|
237
|
+
const JukeboxSessionArtistAffinity = JukeboxSessionArtistAffinity_1.JukeboxSessionArtistAffinity.initModel(sequelize);
|
|
238
|
+
const JukeboxSessionGenreAffinity = JukeboxSessionGenreAffinity_1.JukeboxSessionGenreAffinity.initModel(sequelize);
|
|
230
239
|
const JukeboxStatus = JukeboxStatus_1.JukeboxStatus.initModel(sequelize);
|
|
231
240
|
const JukeboxTerminationCondition = JukeboxTerminationCondition_1.JukeboxTerminationCondition.initModel(sequelize);
|
|
232
241
|
const JukeboxType = JukeboxType_1.JukeboxType.initModel(sequelize);
|
|
@@ -323,6 +332,10 @@ function initModels(sequelize) {
|
|
|
323
332
|
PlatformTrack.belongsToMany(PlatformGenre, { as: 'platformGenreIdPlatformGenrePlatformTrackGenreRelations', through: PlatformTrackGenreRelation, foreignKey: "platformTrackId", otherKey: "platformGenreId" });
|
|
324
333
|
UserAffinity.belongsTo(AffinityRelationshipType, { as: "affinityRelationshipType", foreignKey: "affinityRelationshipTypeId" });
|
|
325
334
|
AffinityRelationshipType.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "affinityRelationshipTypeId" });
|
|
335
|
+
JukeboxSessionArtistAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId" });
|
|
336
|
+
AffinityTier.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "affinityTierId" });
|
|
337
|
+
JukeboxSessionGenreAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId" });
|
|
338
|
+
AffinityTier.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "affinityTierId" });
|
|
326
339
|
AppUserDevice.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
327
340
|
AppUser.hasMany(AppUserDevice, { as: "appUserDevices", foreignKey: "appUserId" });
|
|
328
341
|
AppUserFollowRelation.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
@@ -375,6 +388,8 @@ function initModels(sequelize) {
|
|
|
375
388
|
CanonArtist.hasMany(CanonArtistTrackRelation, { as: "canonArtistTrackRelations", foreignKey: "canonArtistId" });
|
|
376
389
|
CanonToPlatformArtistRelation.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId" });
|
|
377
390
|
CanonArtist.hasMany(CanonToPlatformArtistRelation, { as: "canonToPlatformArtistRelations", foreignKey: "canonArtistId" });
|
|
391
|
+
JukeboxSessionArtistAffinity.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId" });
|
|
392
|
+
CanonArtist.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "canonArtistId" });
|
|
378
393
|
MerchItem.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId" });
|
|
379
394
|
CanonArtist.hasMany(MerchItem, { as: "merchItems", foreignKey: "canonArtistId" });
|
|
380
395
|
MerchOrchestration.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId" });
|
|
@@ -391,6 +406,8 @@ function initModels(sequelize) {
|
|
|
391
406
|
CanonGenre.hasMany(CanonToPlatformGenreRelation, { as: "canonToPlatformGenreRelations", foreignKey: "canonGenreId" });
|
|
392
407
|
JukeboxCanonGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId" });
|
|
393
408
|
CanonGenre.hasMany(JukeboxCanonGenreRelation, { as: "jukeboxCanonGenreRelations", foreignKey: "canonGenreId" });
|
|
409
|
+
JukeboxSessionGenreAffinity.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId" });
|
|
410
|
+
CanonGenre.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "canonGenreId" });
|
|
394
411
|
RadioShowGenres.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId" });
|
|
395
412
|
CanonGenre.hasMany(RadioShowGenres, { as: "radioShowGenres", foreignKey: "canonGenreId" });
|
|
396
413
|
CanonAlbumLabelRelation.belongsTo(CanonLabel, { as: "canonLabel", foreignKey: "canonLabelId" });
|
|
@@ -439,6 +456,10 @@ function initModels(sequelize) {
|
|
|
439
456
|
JukeboxSession.hasMany(JukeboxInvite, { as: "jukeboxInvites", foreignKey: "jukeboxSessionId" });
|
|
440
457
|
JukeboxQueueEntry.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
|
|
441
458
|
JukeboxSession.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "jukeboxSessionId" });
|
|
459
|
+
JukeboxSessionArtistAffinity.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
|
|
460
|
+
JukeboxSession.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "jukeboxSessionId" });
|
|
461
|
+
JukeboxSessionGenreAffinity.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
|
|
462
|
+
JukeboxSession.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "jukeboxSessionId" });
|
|
442
463
|
JukeboxUser.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
|
|
443
464
|
JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId" });
|
|
444
465
|
Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
|
|
@@ -576,6 +597,7 @@ function initModels(sequelize) {
|
|
|
576
597
|
return {
|
|
577
598
|
AccessControlPreference: AccessControlPreference,
|
|
578
599
|
AffinityRelationshipType: AffinityRelationshipType,
|
|
600
|
+
AffinityTier: AffinityTier,
|
|
579
601
|
AppUser: AppUser,
|
|
580
602
|
AppUserDevice: AppUserDevice,
|
|
581
603
|
AppUserFollowRelation: AppUserFollowRelation,
|
|
@@ -615,6 +637,8 @@ function initModels(sequelize) {
|
|
|
615
637
|
JukeboxQueueEntry: JukeboxQueueEntry,
|
|
616
638
|
JukeboxQueueMode: JukeboxQueueMode,
|
|
617
639
|
JukeboxSession: JukeboxSession,
|
|
640
|
+
JukeboxSessionArtistAffinity: JukeboxSessionArtistAffinity,
|
|
641
|
+
JukeboxSessionGenreAffinity: JukeboxSessionGenreAffinity,
|
|
618
642
|
JukeboxStatus: JukeboxStatus,
|
|
619
643
|
JukeboxTerminationCondition: JukeboxTerminationCondition,
|
|
620
644
|
JukeboxType: JukeboxType,
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
|
|
4
|
+
import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
|
|
5
|
+
|
|
6
|
+
export interface AffinityTierAttributes {
|
|
7
|
+
id: number;
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type AffinityTierPk = "id";
|
|
12
|
+
export type AffinityTierId = AffinityTier[AffinityTierPk];
|
|
13
|
+
export type AffinityTierCreationAttributes = AffinityTierAttributes;
|
|
14
|
+
|
|
15
|
+
export class AffinityTier extends Model<AffinityTierAttributes, AffinityTierCreationAttributes> implements AffinityTierAttributes {
|
|
16
|
+
id!: number;
|
|
17
|
+
name!: string;
|
|
18
|
+
|
|
19
|
+
// AffinityTier hasMany JukeboxSessionArtistAffinity via affinityTierId
|
|
20
|
+
jukeboxSessionArtistAffinities!: JukeboxSessionArtistAffinity[];
|
|
21
|
+
getJukeboxSessionArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionArtistAffinity>;
|
|
22
|
+
setJukeboxSessionArtistAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
23
|
+
addJukeboxSessionArtistAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
24
|
+
addJukeboxSessionArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
25
|
+
createJukeboxSessionArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionArtistAffinity>;
|
|
26
|
+
removeJukeboxSessionArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
27
|
+
removeJukeboxSessionArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
28
|
+
hasJukeboxSessionArtistAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
29
|
+
hasJukeboxSessionArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
30
|
+
countJukeboxSessionArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
31
|
+
// AffinityTier hasMany JukeboxSessionGenreAffinity via affinityTierId
|
|
32
|
+
jukeboxSessionGenreAffinities!: JukeboxSessionGenreAffinity[];
|
|
33
|
+
getJukeboxSessionGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionGenreAffinity>;
|
|
34
|
+
setJukeboxSessionGenreAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
35
|
+
addJukeboxSessionGenreAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
36
|
+
addJukeboxSessionGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
37
|
+
createJukeboxSessionGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionGenreAffinity>;
|
|
38
|
+
removeJukeboxSessionGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
39
|
+
removeJukeboxSessionGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
40
|
+
hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
41
|
+
hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
42
|
+
countJukeboxSessionGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
43
|
+
|
|
44
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof AffinityTier {
|
|
45
|
+
return AffinityTier.init({
|
|
46
|
+
id: {
|
|
47
|
+
type: DataTypes.SMALLINT,
|
|
48
|
+
allowNull: false,
|
|
49
|
+
primaryKey: true
|
|
50
|
+
},
|
|
51
|
+
name: {
|
|
52
|
+
type: DataTypes.STRING(32),
|
|
53
|
+
allowNull: false,
|
|
54
|
+
unique: "affinity_tier_name_unique"
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
sequelize,
|
|
58
|
+
tableName: 'affinity_tier',
|
|
59
|
+
schema: 'eb',
|
|
60
|
+
timestamps: false,
|
|
61
|
+
indexes: [
|
|
62
|
+
{
|
|
63
|
+
name: "affinity_tier_name_unique",
|
|
64
|
+
unique: true,
|
|
65
|
+
fields: [
|
|
66
|
+
{ name: "name" },
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "affinity_tier_pkey",
|
|
71
|
+
unique: true,
|
|
72
|
+
fields: [
|
|
73
|
+
{ name: "id" },
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
package/models/CanonArtist.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { CanonArtistImageHarvested, CanonArtistImageHarvestedId } from './C
|
|
|
5
5
|
import type { CanonArtistTrackRelation, CanonArtistTrackRelationId } from './CanonArtistTrackRelation';
|
|
6
6
|
import type { CanonToPlatformArtistRelation, CanonToPlatformArtistRelationId } from './CanonToPlatformArtistRelation';
|
|
7
7
|
import type { CanonTrack, CanonTrackId } from './CanonTrack';
|
|
8
|
+
import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
|
|
8
9
|
import type { MerchItem, MerchItemId } from './MerchItem';
|
|
9
10
|
import type { MerchOrchestration, MerchOrchestrationId } from './MerchOrchestration';
|
|
10
11
|
import type { NewsArticle, NewsArticleId } from './NewsArticle';
|
|
@@ -111,6 +112,18 @@ export class CanonArtist extends Model<CanonArtistAttributes, CanonArtistCreatio
|
|
|
111
112
|
hasCanonTrackIdCanonTrackCanonArtistTrackRelation!: Sequelize.BelongsToManyHasAssociationMixin<CanonTrack, CanonTrackId>;
|
|
112
113
|
hasCanonTrackIdCanonTrackCanonArtistTrackRelations!: Sequelize.BelongsToManyHasAssociationsMixin<CanonTrack, CanonTrackId>;
|
|
113
114
|
countCanonTrackIdCanonTrackCanonArtistTrackRelations!: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
115
|
+
// CanonArtist hasMany JukeboxSessionArtistAffinity via canonArtistId
|
|
116
|
+
jukeboxSessionArtistAffinities!: JukeboxSessionArtistAffinity[];
|
|
117
|
+
getJukeboxSessionArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionArtistAffinity>;
|
|
118
|
+
setJukeboxSessionArtistAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
119
|
+
addJukeboxSessionArtistAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
120
|
+
addJukeboxSessionArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
121
|
+
createJukeboxSessionArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionArtistAffinity>;
|
|
122
|
+
removeJukeboxSessionArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
123
|
+
removeJukeboxSessionArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
124
|
+
hasJukeboxSessionArtistAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
125
|
+
hasJukeboxSessionArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
126
|
+
countJukeboxSessionArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
114
127
|
// CanonArtist hasMany MerchItem via canonArtistId
|
|
115
128
|
merchItems!: MerchItem[];
|
|
116
129
|
getMerchItems!: Sequelize.HasManyGetAssociationsMixin<MerchItem>;
|
package/models/CanonGenre.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { CanonGenreExternalReferenceRelation, CanonGenreExternalReferenceRe
|
|
|
6
6
|
import type { CanonToPlatformGenreRelation, CanonToPlatformGenreRelationId } from './CanonToPlatformGenreRelation';
|
|
7
7
|
import type { ExternalReference, ExternalReferenceId } from './ExternalReference';
|
|
8
8
|
import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './JukeboxCanonGenreRelation';
|
|
9
|
+
import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
|
|
9
10
|
import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
|
|
10
11
|
import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
|
|
11
12
|
import type { PlatformGenre, PlatformGenreId } from './PlatformGenre';
|
|
@@ -107,6 +108,18 @@ export class CanonGenre extends Model<CanonGenreAttributes, CanonGenreCreationAt
|
|
|
107
108
|
hasJukeboxCanonGenreRelation!: Sequelize.HasManyHasAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
|
|
108
109
|
hasJukeboxCanonGenreRelations!: Sequelize.HasManyHasAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
|
|
109
110
|
countJukeboxCanonGenreRelations!: Sequelize.HasManyCountAssociationsMixin;
|
|
111
|
+
// CanonGenre hasMany JukeboxSessionGenreAffinity via canonGenreId
|
|
112
|
+
jukeboxSessionGenreAffinities!: JukeboxSessionGenreAffinity[];
|
|
113
|
+
getJukeboxSessionGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionGenreAffinity>;
|
|
114
|
+
setJukeboxSessionGenreAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
115
|
+
addJukeboxSessionGenreAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
116
|
+
addJukeboxSessionGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
117
|
+
createJukeboxSessionGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionGenreAffinity>;
|
|
118
|
+
removeJukeboxSessionGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
119
|
+
removeJukeboxSessionGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
120
|
+
hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
121
|
+
hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
122
|
+
countJukeboxSessionGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
110
123
|
// CanonGenre belongsToMany PlatformAlbum via canonGenreId and canonAlbumId
|
|
111
124
|
canonAlbumIdPlatformAlbums!: PlatformAlbum[];
|
|
112
125
|
getCanonAlbumIdPlatformAlbums!: Sequelize.BelongsToManyGetAssociationsMixin<PlatformAlbum>;
|
package/models/JukeboxSession.ts
CHANGED
|
@@ -6,6 +6,8 @@ import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './J
|
|
|
6
6
|
import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
|
|
7
7
|
import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
|
|
8
8
|
import type { JukeboxQueueMode, JukeboxQueueModeId } from './JukeboxQueueMode';
|
|
9
|
+
import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
|
|
10
|
+
import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
|
|
9
11
|
import type { JukeboxStatus, JukeboxStatusId } from './JukeboxStatus';
|
|
10
12
|
import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from './JukeboxTerminationCondition';
|
|
11
13
|
import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
|
|
@@ -106,6 +108,30 @@ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessi
|
|
|
106
108
|
hasJukeboxQueueEntry!: Sequelize.HasManyHasAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
|
|
107
109
|
hasJukeboxQueueEntries!: Sequelize.HasManyHasAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
|
|
108
110
|
countJukeboxQueueEntries!: Sequelize.HasManyCountAssociationsMixin;
|
|
111
|
+
// JukeboxSession hasMany JukeboxSessionArtistAffinity via jukeboxSessionId
|
|
112
|
+
jukeboxSessionArtistAffinities!: JukeboxSessionArtistAffinity[];
|
|
113
|
+
getJukeboxSessionArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionArtistAffinity>;
|
|
114
|
+
setJukeboxSessionArtistAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
115
|
+
addJukeboxSessionArtistAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
116
|
+
addJukeboxSessionArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
117
|
+
createJukeboxSessionArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionArtistAffinity>;
|
|
118
|
+
removeJukeboxSessionArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
119
|
+
removeJukeboxSessionArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
120
|
+
hasJukeboxSessionArtistAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
121
|
+
hasJukeboxSessionArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
122
|
+
countJukeboxSessionArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
123
|
+
// JukeboxSession hasMany JukeboxSessionGenreAffinity via jukeboxSessionId
|
|
124
|
+
jukeboxSessionGenreAffinities!: JukeboxSessionGenreAffinity[];
|
|
125
|
+
getJukeboxSessionGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionGenreAffinity>;
|
|
126
|
+
setJukeboxSessionGenreAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
127
|
+
addJukeboxSessionGenreAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
128
|
+
addJukeboxSessionGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
129
|
+
createJukeboxSessionGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionGenreAffinity>;
|
|
130
|
+
removeJukeboxSessionGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
131
|
+
removeJukeboxSessionGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
132
|
+
hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
133
|
+
hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
134
|
+
countJukeboxSessionGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
109
135
|
// JukeboxSession hasMany JukeboxUser via jukeboxSessionId
|
|
110
136
|
jukeboxUsers!: JukeboxUser[];
|
|
111
137
|
getJukeboxUsers!: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AffinityTier, AffinityTierId } from './AffinityTier';
|
|
4
|
+
import type { CanonArtist, CanonArtistId } from './CanonArtist';
|
|
5
|
+
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
6
|
+
|
|
7
|
+
export interface JukeboxSessionArtistAffinityAttributes {
|
|
8
|
+
jukeboxSessionId: string;
|
|
9
|
+
canonArtistId: string;
|
|
10
|
+
affinityTierId: number;
|
|
11
|
+
rank: number;
|
|
12
|
+
id: string;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
updatedAt: Date;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type JukeboxSessionArtistAffinityPk = "id";
|
|
18
|
+
export type JukeboxSessionArtistAffinityId = JukeboxSessionArtistAffinity[JukeboxSessionArtistAffinityPk];
|
|
19
|
+
export type JukeboxSessionArtistAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
|
|
20
|
+
export type JukeboxSessionArtistAffinityCreationAttributes = Optional<JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityOptionalAttributes>;
|
|
21
|
+
|
|
22
|
+
export class JukeboxSessionArtistAffinity extends Model<JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes> implements JukeboxSessionArtistAffinityAttributes {
|
|
23
|
+
jukeboxSessionId!: string;
|
|
24
|
+
canonArtistId!: string;
|
|
25
|
+
affinityTierId!: number;
|
|
26
|
+
rank!: number;
|
|
27
|
+
id!: string;
|
|
28
|
+
createdAt!: Date;
|
|
29
|
+
updatedAt!: Date;
|
|
30
|
+
|
|
31
|
+
// JukeboxSessionArtistAffinity belongsTo AffinityTier via affinityTierId
|
|
32
|
+
affinityTier!: AffinityTier;
|
|
33
|
+
getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
|
|
34
|
+
setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
|
|
35
|
+
createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
|
|
36
|
+
// JukeboxSessionArtistAffinity belongsTo CanonArtist via canonArtistId
|
|
37
|
+
canonArtist!: CanonArtist;
|
|
38
|
+
getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
|
|
39
|
+
setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
|
|
40
|
+
createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
|
|
41
|
+
// JukeboxSessionArtistAffinity belongsTo JukeboxSession via jukeboxSessionId
|
|
42
|
+
jukeboxSession!: JukeboxSession;
|
|
43
|
+
getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
|
44
|
+
setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
|
|
45
|
+
createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
|
|
46
|
+
|
|
47
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSessionArtistAffinity {
|
|
48
|
+
return JukeboxSessionArtistAffinity.init({
|
|
49
|
+
jukeboxSessionId: {
|
|
50
|
+
type: DataTypes.UUID,
|
|
51
|
+
allowNull: false,
|
|
52
|
+
references: {
|
|
53
|
+
model: 'jukebox_session',
|
|
54
|
+
key: 'id'
|
|
55
|
+
},
|
|
56
|
+
unique: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
|
|
57
|
+
field: 'jukebox_session_id'
|
|
58
|
+
},
|
|
59
|
+
canonArtistId: {
|
|
60
|
+
type: DataTypes.UUID,
|
|
61
|
+
allowNull: false,
|
|
62
|
+
references: {
|
|
63
|
+
model: 'canon_artist',
|
|
64
|
+
key: 'id'
|
|
65
|
+
},
|
|
66
|
+
unique: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
|
|
67
|
+
field: 'canon_artist_id'
|
|
68
|
+
},
|
|
69
|
+
affinityTierId: {
|
|
70
|
+
type: DataTypes.SMALLINT,
|
|
71
|
+
allowNull: false,
|
|
72
|
+
references: {
|
|
73
|
+
model: 'affinity_tier',
|
|
74
|
+
key: 'id'
|
|
75
|
+
},
|
|
76
|
+
field: 'affinity_tier_id'
|
|
77
|
+
},
|
|
78
|
+
rank: {
|
|
79
|
+
type: DataTypes.INTEGER,
|
|
80
|
+
allowNull: false
|
|
81
|
+
},
|
|
82
|
+
id: {
|
|
83
|
+
type: DataTypes.UUID,
|
|
84
|
+
allowNull: false,
|
|
85
|
+
defaultValue: DataTypes.UUIDV4,
|
|
86
|
+
primaryKey: true
|
|
87
|
+
},
|
|
88
|
+
createdAt: {
|
|
89
|
+
type: DataTypes.DATE,
|
|
90
|
+
allowNull: false,
|
|
91
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
92
|
+
field: 'created_at'
|
|
93
|
+
},
|
|
94
|
+
updatedAt: {
|
|
95
|
+
type: DataTypes.DATE,
|
|
96
|
+
allowNull: false,
|
|
97
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
98
|
+
field: 'updated_at'
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
sequelize,
|
|
102
|
+
tableName: 'jukebox_session_artist_affinity',
|
|
103
|
+
schema: 'eb',
|
|
104
|
+
timestamps: false,
|
|
105
|
+
indexes: [
|
|
106
|
+
{
|
|
107
|
+
name: "idx_jukebox_session_artist_affinity_artist",
|
|
108
|
+
fields: [
|
|
109
|
+
{ name: "canon_artist_id" },
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "idx_jukebox_session_artist_affinity_session",
|
|
114
|
+
fields: [
|
|
115
|
+
{ name: "jukebox_session_id" },
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
|
|
120
|
+
unique: true,
|
|
121
|
+
fields: [
|
|
122
|
+
{ name: "jukebox_session_id" },
|
|
123
|
+
{ name: "canon_artist_id" },
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "jukebox_session_artist_affinity_pkey",
|
|
128
|
+
unique: true,
|
|
129
|
+
fields: [
|
|
130
|
+
{ name: "id" },
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AffinityTier, AffinityTierId } from './AffinityTier';
|
|
4
|
+
import type { CanonGenre, CanonGenreId } from './CanonGenre';
|
|
5
|
+
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
6
|
+
|
|
7
|
+
export interface JukeboxSessionGenreAffinityAttributes {
|
|
8
|
+
jukeboxSessionId: string;
|
|
9
|
+
canonGenreId: string;
|
|
10
|
+
affinityTierId: number;
|
|
11
|
+
rank: number;
|
|
12
|
+
id: string;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
updatedAt: Date;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type JukeboxSessionGenreAffinityPk = "id";
|
|
18
|
+
export type JukeboxSessionGenreAffinityId = JukeboxSessionGenreAffinity[JukeboxSessionGenreAffinityPk];
|
|
19
|
+
export type JukeboxSessionGenreAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
|
|
20
|
+
export type JukeboxSessionGenreAffinityCreationAttributes = Optional<JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityOptionalAttributes>;
|
|
21
|
+
|
|
22
|
+
export class JukeboxSessionGenreAffinity extends Model<JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes> implements JukeboxSessionGenreAffinityAttributes {
|
|
23
|
+
jukeboxSessionId!: string;
|
|
24
|
+
canonGenreId!: string;
|
|
25
|
+
affinityTierId!: number;
|
|
26
|
+
rank!: number;
|
|
27
|
+
id!: string;
|
|
28
|
+
createdAt!: Date;
|
|
29
|
+
updatedAt!: Date;
|
|
30
|
+
|
|
31
|
+
// JukeboxSessionGenreAffinity belongsTo AffinityTier via affinityTierId
|
|
32
|
+
affinityTier!: AffinityTier;
|
|
33
|
+
getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
|
|
34
|
+
setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
|
|
35
|
+
createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
|
|
36
|
+
// JukeboxSessionGenreAffinity belongsTo CanonGenre via canonGenreId
|
|
37
|
+
canonGenre!: CanonGenre;
|
|
38
|
+
getCanonGenre!: Sequelize.BelongsToGetAssociationMixin<CanonGenre>;
|
|
39
|
+
setCanonGenre!: Sequelize.BelongsToSetAssociationMixin<CanonGenre, CanonGenreId>;
|
|
40
|
+
createCanonGenre!: Sequelize.BelongsToCreateAssociationMixin<CanonGenre>;
|
|
41
|
+
// JukeboxSessionGenreAffinity belongsTo JukeboxSession via jukeboxSessionId
|
|
42
|
+
jukeboxSession!: JukeboxSession;
|
|
43
|
+
getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
|
44
|
+
setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
|
|
45
|
+
createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
|
|
46
|
+
|
|
47
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSessionGenreAffinity {
|
|
48
|
+
return JukeboxSessionGenreAffinity.init({
|
|
49
|
+
jukeboxSessionId: {
|
|
50
|
+
type: DataTypes.UUID,
|
|
51
|
+
allowNull: false,
|
|
52
|
+
references: {
|
|
53
|
+
model: 'jukebox_session',
|
|
54
|
+
key: 'id'
|
|
55
|
+
},
|
|
56
|
+
unique: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
|
|
57
|
+
field: 'jukebox_session_id'
|
|
58
|
+
},
|
|
59
|
+
canonGenreId: {
|
|
60
|
+
type: DataTypes.UUID,
|
|
61
|
+
allowNull: false,
|
|
62
|
+
references: {
|
|
63
|
+
model: 'canon_genre',
|
|
64
|
+
key: 'id'
|
|
65
|
+
},
|
|
66
|
+
unique: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
|
|
67
|
+
field: 'canon_genre_id'
|
|
68
|
+
},
|
|
69
|
+
affinityTierId: {
|
|
70
|
+
type: DataTypes.SMALLINT,
|
|
71
|
+
allowNull: false,
|
|
72
|
+
references: {
|
|
73
|
+
model: 'affinity_tier',
|
|
74
|
+
key: 'id'
|
|
75
|
+
},
|
|
76
|
+
field: 'affinity_tier_id'
|
|
77
|
+
},
|
|
78
|
+
rank: {
|
|
79
|
+
type: DataTypes.INTEGER,
|
|
80
|
+
allowNull: false
|
|
81
|
+
},
|
|
82
|
+
id: {
|
|
83
|
+
type: DataTypes.UUID,
|
|
84
|
+
allowNull: false,
|
|
85
|
+
defaultValue: DataTypes.UUIDV4,
|
|
86
|
+
primaryKey: true
|
|
87
|
+
},
|
|
88
|
+
createdAt: {
|
|
89
|
+
type: DataTypes.DATE,
|
|
90
|
+
allowNull: false,
|
|
91
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
92
|
+
field: 'created_at'
|
|
93
|
+
},
|
|
94
|
+
updatedAt: {
|
|
95
|
+
type: DataTypes.DATE,
|
|
96
|
+
allowNull: false,
|
|
97
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
98
|
+
field: 'updated_at'
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
sequelize,
|
|
102
|
+
tableName: 'jukebox_session_genre_affinity',
|
|
103
|
+
schema: 'eb',
|
|
104
|
+
timestamps: false,
|
|
105
|
+
indexes: [
|
|
106
|
+
{
|
|
107
|
+
name: "idx_jukebox_session_genre_affinity_genre",
|
|
108
|
+
fields: [
|
|
109
|
+
{ name: "canon_genre_id" },
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "idx_jukebox_session_genre_affinity_session",
|
|
114
|
+
fields: [
|
|
115
|
+
{ name: "jukebox_session_id" },
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
|
|
120
|
+
unique: true,
|
|
121
|
+
fields: [
|
|
122
|
+
{ name: "jukebox_session_id" },
|
|
123
|
+
{ name: "canon_genre_id" },
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "jukebox_session_genre_affinity_pkey",
|
|
128
|
+
unique: true,
|
|
129
|
+
fields: [
|
|
130
|
+
{ name: "id" },
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|