@earbug/db-models 0.0.28 → 0.0.30

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.
@@ -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 { AppUser, AppUserId } from './AppUser';
5
+ import type { CanonArtist, CanonArtistId } from './CanonArtist';
6
+
7
+ export interface UserArtistAffinityAttributes {
8
+ userId: string;
9
+ canonArtistId: string;
10
+ affinityTierId: number;
11
+ rank: number;
12
+ id: string;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+
17
+ export type UserArtistAffinityPk = "id";
18
+ export type UserArtistAffinityId = UserArtistAffinity[UserArtistAffinityPk];
19
+ export type UserArtistAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
20
+ export type UserArtistAffinityCreationAttributes = Optional<UserArtistAffinityAttributes, UserArtistAffinityOptionalAttributes>;
21
+
22
+ export class UserArtistAffinity extends Model<UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes> implements UserArtistAffinityAttributes {
23
+ userId!: string;
24
+ canonArtistId!: string;
25
+ affinityTierId!: number;
26
+ rank!: number;
27
+ id!: string;
28
+ createdAt!: Date;
29
+ updatedAt!: Date;
30
+
31
+ // UserArtistAffinity belongsTo AffinityTier via affinityTierId
32
+ affinityTier!: AffinityTier;
33
+ getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
34
+ setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
35
+ createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
36
+ // UserArtistAffinity belongsTo AppUser via userId
37
+ user!: AppUser;
38
+ getUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
39
+ setUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
40
+ createUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
41
+ // UserArtistAffinity belongsTo CanonArtist via canonArtistId
42
+ canonArtist!: CanonArtist;
43
+ getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
44
+ setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
45
+ createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
46
+
47
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserArtistAffinity {
48
+ return UserArtistAffinity.init({
49
+ userId: {
50
+ type: DataTypes.UUID,
51
+ allowNull: false,
52
+ references: {
53
+ model: 'app_user',
54
+ key: 'id'
55
+ },
56
+ unique: "user_artist_affinity_user_id_canon_artist_id_unique",
57
+ field: 'user_id'
58
+ },
59
+ canonArtistId: {
60
+ type: DataTypes.UUID,
61
+ allowNull: false,
62
+ references: {
63
+ model: 'canon_artist',
64
+ key: 'id'
65
+ },
66
+ unique: "user_artist_affinity_user_id_canon_artist_id_unique",
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: 'user_artist_affinity',
103
+ schema: 'eb',
104
+ timestamps: false,
105
+ indexes: [
106
+ {
107
+ name: "idx_user_artist_affinity_artist",
108
+ fields: [
109
+ { name: "canon_artist_id" },
110
+ ]
111
+ },
112
+ {
113
+ name: "idx_user_artist_affinity_session",
114
+ fields: [
115
+ { name: "user_id" },
116
+ ]
117
+ },
118
+ {
119
+ name: "user_artist_affinity_pkey",
120
+ unique: true,
121
+ fields: [
122
+ { name: "id" },
123
+ ]
124
+ },
125
+ {
126
+ name: "user_artist_affinity_user_id_canon_artist_id_unique",
127
+ unique: true,
128
+ fields: [
129
+ { name: "user_id" },
130
+ { name: "canon_artist_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 { AppUser, AppUserId } from './AppUser';
5
+ import type { CanonGenre, CanonGenreId } from './CanonGenre';
6
+
7
+ export interface UserGenreAffinityAttributes {
8
+ userId: string;
9
+ canonGenreId: string;
10
+ affinityTierId: number;
11
+ rank: number;
12
+ id: string;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+
17
+ export type UserGenreAffinityPk = "id";
18
+ export type UserGenreAffinityId = UserGenreAffinity[UserGenreAffinityPk];
19
+ export type UserGenreAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
20
+ export type UserGenreAffinityCreationAttributes = Optional<UserGenreAffinityAttributes, UserGenreAffinityOptionalAttributes>;
21
+
22
+ export class UserGenreAffinity extends Model<UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes> implements UserGenreAffinityAttributes {
23
+ userId!: string;
24
+ canonGenreId!: string;
25
+ affinityTierId!: number;
26
+ rank!: number;
27
+ id!: string;
28
+ createdAt!: Date;
29
+ updatedAt!: Date;
30
+
31
+ // UserGenreAffinity belongsTo AffinityTier via affinityTierId
32
+ affinityTier!: AffinityTier;
33
+ getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
34
+ setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
35
+ createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
36
+ // UserGenreAffinity belongsTo AppUser via userId
37
+ user!: AppUser;
38
+ getUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
39
+ setUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
40
+ createUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
41
+ // UserGenreAffinity belongsTo CanonGenre via canonGenreId
42
+ canonGenre!: CanonGenre;
43
+ getCanonGenre!: Sequelize.BelongsToGetAssociationMixin<CanonGenre>;
44
+ setCanonGenre!: Sequelize.BelongsToSetAssociationMixin<CanonGenre, CanonGenreId>;
45
+ createCanonGenre!: Sequelize.BelongsToCreateAssociationMixin<CanonGenre>;
46
+
47
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserGenreAffinity {
48
+ return UserGenreAffinity.init({
49
+ userId: {
50
+ type: DataTypes.UUID,
51
+ allowNull: false,
52
+ references: {
53
+ model: 'app_user',
54
+ key: 'id'
55
+ },
56
+ unique: "user_genre_affinity_user_id_canon_genre_id_unique",
57
+ field: 'user_id'
58
+ },
59
+ canonGenreId: {
60
+ type: DataTypes.UUID,
61
+ allowNull: false,
62
+ references: {
63
+ model: 'canon_genre',
64
+ key: 'id'
65
+ },
66
+ unique: "user_genre_affinity_user_id_canon_genre_id_unique",
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: 'user_genre_affinity',
103
+ schema: 'eb',
104
+ timestamps: false,
105
+ indexes: [
106
+ {
107
+ name: "idx_user_genre_affinity_genre",
108
+ fields: [
109
+ { name: "canon_genre_id" },
110
+ ]
111
+ },
112
+ {
113
+ name: "idx_user_genre_affinity_session",
114
+ fields: [
115
+ { name: "user_id" },
116
+ ]
117
+ },
118
+ {
119
+ name: "user_genre_affinity_pkey",
120
+ unique: true,
121
+ fields: [
122
+ { name: "id" },
123
+ ]
124
+ },
125
+ {
126
+ name: "user_genre_affinity_user_id_canon_genre_id_unique",
127
+ unique: true,
128
+ fields: [
129
+ { name: "user_id" },
130
+ { name: "canon_genre_id" },
131
+ ]
132
+ },
133
+ ]
134
+ });
135
+ }
136
+ }
@@ -3,6 +3,8 @@ import { AccessControlPreference as _AccessControlPreference } from "./AccessCon
3
3
  import type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes } from "./AccessControlPreference";
4
4
  import { AffinityRelationshipType as _AffinityRelationshipType } from "./AffinityRelationshipType";
5
5
  import type { AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes } from "./AffinityRelationshipType";
6
+ import { AffinityTier as _AffinityTier } from "./AffinityTier";
7
+ import type { AffinityTierAttributes, AffinityTierCreationAttributes } from "./AffinityTier";
6
8
  import { AppUser as _AppUser } from "./AppUser";
7
9
  import type { AppUserAttributes, AppUserCreationAttributes } from "./AppUser";
8
10
  import { AppUserDevice as _AppUserDevice } from "./AppUserDevice";
@@ -81,6 +83,10 @@ import { JukeboxQueueMode as _JukeboxQueueMode } from "./JukeboxQueueMode";
81
83
  import type { JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes } from "./JukeboxQueueMode";
82
84
  import { JukeboxSession as _JukeboxSession } from "./JukeboxSession";
83
85
  import type { JukeboxSessionAttributes, JukeboxSessionCreationAttributes } from "./JukeboxSession";
86
+ import { JukeboxSessionArtistAffinity as _JukeboxSessionArtistAffinity } from "./JukeboxSessionArtistAffinity";
87
+ import type { JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes } from "./JukeboxSessionArtistAffinity";
88
+ import { JukeboxSessionGenreAffinity as _JukeboxSessionGenreAffinity } from "./JukeboxSessionGenreAffinity";
89
+ import type { JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes } from "./JukeboxSessionGenreAffinity";
84
90
  import { JukeboxStatus as _JukeboxStatus } from "./JukeboxStatus";
85
91
  import type { JukeboxStatusAttributes, JukeboxStatusCreationAttributes } from "./JukeboxStatus";
86
92
  import { JukeboxTerminationCondition as _JukeboxTerminationCondition } from "./JukeboxTerminationCondition";
@@ -173,18 +179,23 @@ import { UnmatchedArtist as _UnmatchedArtist } from "./UnmatchedArtist";
173
179
  import type { UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes } from "./UnmatchedArtist";
174
180
  import { UserAffinity as _UserAffinity } from "./UserAffinity";
175
181
  import type { UserAffinityAttributes, UserAffinityCreationAttributes } from "./UserAffinity";
182
+ import { UserArtistAffinity as _UserArtistAffinity } from "./UserArtistAffinity";
183
+ import type { UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes } from "./UserArtistAffinity";
176
184
  import { UserComments as _UserComments } from "./UserComments";
177
185
  import type { UserCommentsAttributes, UserCommentsCreationAttributes } from "./UserComments";
178
186
  import { UserContacts as _UserContacts } from "./UserContacts";
179
187
  import type { UserContactsAttributes, UserContactsCreationAttributes } from "./UserContacts";
180
188
  import { UserEngagementFactor as _UserEngagementFactor } from "./UserEngagementFactor";
181
189
  import type { UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes } from "./UserEngagementFactor";
190
+ import { UserGenreAffinity as _UserGenreAffinity } from "./UserGenreAffinity";
191
+ import type { UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes } from "./UserGenreAffinity";
182
192
  import { UserLikes as _UserLikes } from "./UserLikes";
183
193
  import type { UserLikesAttributes, UserLikesCreationAttributes } from "./UserLikes";
184
194
 
185
195
  export {
186
196
  _AccessControlPreference as AccessControlPreference,
187
197
  _AffinityRelationshipType as AffinityRelationshipType,
198
+ _AffinityTier as AffinityTier,
188
199
  _AppUser as AppUser,
189
200
  _AppUserDevice as AppUserDevice,
190
201
  _AppUserFollowRelation as AppUserFollowRelation,
@@ -224,6 +235,8 @@ export {
224
235
  _JukeboxQueueEntry as JukeboxQueueEntry,
225
236
  _JukeboxQueueMode as JukeboxQueueMode,
226
237
  _JukeboxSession as JukeboxSession,
238
+ _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity,
239
+ _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity,
227
240
  _JukeboxStatus as JukeboxStatus,
228
241
  _JukeboxTerminationCondition as JukeboxTerminationCondition,
229
242
  _JukeboxType as JukeboxType,
@@ -270,9 +283,11 @@ export {
270
283
  _UnmatchedAlbum as UnmatchedAlbum,
271
284
  _UnmatchedArtist as UnmatchedArtist,
272
285
  _UserAffinity as UserAffinity,
286
+ _UserArtistAffinity as UserArtistAffinity,
273
287
  _UserComments as UserComments,
274
288
  _UserContacts as UserContacts,
275
289
  _UserEngagementFactor as UserEngagementFactor,
290
+ _UserGenreAffinity as UserGenreAffinity,
276
291
  _UserLikes as UserLikes,
277
292
  };
278
293
 
@@ -281,6 +296,8 @@ export type {
281
296
  AccessControlPreferenceCreationAttributes,
282
297
  AffinityRelationshipTypeAttributes,
283
298
  AffinityRelationshipTypeCreationAttributes,
299
+ AffinityTierAttributes,
300
+ AffinityTierCreationAttributes,
284
301
  AppUserAttributes,
285
302
  AppUserCreationAttributes,
286
303
  AppUserDeviceAttributes,
@@ -359,6 +376,10 @@ export type {
359
376
  JukeboxQueueModeCreationAttributes,
360
377
  JukeboxSessionAttributes,
361
378
  JukeboxSessionCreationAttributes,
379
+ JukeboxSessionArtistAffinityAttributes,
380
+ JukeboxSessionArtistAffinityCreationAttributes,
381
+ JukeboxSessionGenreAffinityAttributes,
382
+ JukeboxSessionGenreAffinityCreationAttributes,
362
383
  JukeboxStatusAttributes,
363
384
  JukeboxStatusCreationAttributes,
364
385
  JukeboxTerminationConditionAttributes,
@@ -451,12 +472,16 @@ export type {
451
472
  UnmatchedArtistCreationAttributes,
452
473
  UserAffinityAttributes,
453
474
  UserAffinityCreationAttributes,
475
+ UserArtistAffinityAttributes,
476
+ UserArtistAffinityCreationAttributes,
454
477
  UserCommentsAttributes,
455
478
  UserCommentsCreationAttributes,
456
479
  UserContactsAttributes,
457
480
  UserContactsCreationAttributes,
458
481
  UserEngagementFactorAttributes,
459
482
  UserEngagementFactorCreationAttributes,
483
+ UserGenreAffinityAttributes,
484
+ UserGenreAffinityCreationAttributes,
460
485
  UserLikesAttributes,
461
486
  UserLikesCreationAttributes,
462
487
  };
@@ -464,6 +489,7 @@ export type {
464
489
  export function initModels(sequelize: Sequelize) {
465
490
  const AccessControlPreference = _AccessControlPreference.initModel(sequelize);
466
491
  const AffinityRelationshipType = _AffinityRelationshipType.initModel(sequelize);
492
+ const AffinityTier = _AffinityTier.initModel(sequelize);
467
493
  const AppUser = _AppUser.initModel(sequelize);
468
494
  const AppUserDevice = _AppUserDevice.initModel(sequelize);
469
495
  const AppUserFollowRelation = _AppUserFollowRelation.initModel(sequelize);
@@ -503,6 +529,8 @@ export function initModels(sequelize: Sequelize) {
503
529
  const JukeboxQueueEntry = _JukeboxQueueEntry.initModel(sequelize);
504
530
  const JukeboxQueueMode = _JukeboxQueueMode.initModel(sequelize);
505
531
  const JukeboxSession = _JukeboxSession.initModel(sequelize);
532
+ const JukeboxSessionArtistAffinity = _JukeboxSessionArtistAffinity.initModel(sequelize);
533
+ const JukeboxSessionGenreAffinity = _JukeboxSessionGenreAffinity.initModel(sequelize);
506
534
  const JukeboxStatus = _JukeboxStatus.initModel(sequelize);
507
535
  const JukeboxTerminationCondition = _JukeboxTerminationCondition.initModel(sequelize);
508
536
  const JukeboxType = _JukeboxType.initModel(sequelize);
@@ -549,9 +577,11 @@ export function initModels(sequelize: Sequelize) {
549
577
  const UnmatchedAlbum = _UnmatchedAlbum.initModel(sequelize);
550
578
  const UnmatchedArtist = _UnmatchedArtist.initModel(sequelize);
551
579
  const UserAffinity = _UserAffinity.initModel(sequelize);
580
+ const UserArtistAffinity = _UserArtistAffinity.initModel(sequelize);
552
581
  const UserComments = _UserComments.initModel(sequelize);
553
582
  const UserContacts = _UserContacts.initModel(sequelize);
554
583
  const UserEngagementFactor = _UserEngagementFactor.initModel(sequelize);
584
+ const UserGenreAffinity = _UserGenreAffinity.initModel(sequelize);
555
585
  const UserLikes = _UserLikes.initModel(sequelize);
556
586
 
557
587
  CanonAlbum.belongsToMany(CanonTrack, { as: 'canonTrackIdCanonTracks', through: CanonAlbumTrackRelation, foreignKey: "canonAlbumId", otherKey: "canonTrackId" });
@@ -600,6 +630,14 @@ export function initModels(sequelize: Sequelize) {
600
630
  PlatformTrack.belongsToMany(PlatformGenre, { as: 'platformGenreIdPlatformGenrePlatformTrackGenreRelations', through: PlatformTrackGenreRelation, foreignKey: "platformTrackId", otherKey: "platformGenreId" });
601
631
  UserAffinity.belongsTo(AffinityRelationshipType, { as: "affinityRelationshipType", foreignKey: "affinityRelationshipTypeId"});
602
632
  AffinityRelationshipType.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "affinityRelationshipTypeId"});
633
+ JukeboxSessionArtistAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId"});
634
+ AffinityTier.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "affinityTierId"});
635
+ JukeboxSessionGenreAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId"});
636
+ AffinityTier.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "affinityTierId"});
637
+ UserArtistAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId"});
638
+ AffinityTier.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "affinityTierId"});
639
+ UserGenreAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId"});
640
+ AffinityTier.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "affinityTierId"});
603
641
  AppUserDevice.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
604
642
  AppUser.hasMany(AppUserDevice, { as: "appUserDevices", foreignKey: "appUserId"});
605
643
  AppUserFollowRelation.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
@@ -628,12 +666,16 @@ export function initModels(sequelize: Sequelize) {
628
666
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId"});
629
667
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
630
668
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId"});
669
+ UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
670
+ AppUser.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "userId"});
631
671
  UserComments.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
632
672
  AppUser.hasMany(UserComments, { as: "userComments", foreignKey: "appUserId"});
633
673
  UserContacts.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
634
674
  AppUser.hasMany(UserContacts, { as: "userContacts", foreignKey: "appUserId"});
635
675
  UserEngagementFactor.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
636
676
  AppUser.hasMany(UserEngagementFactor, { as: "userEngagementFactors", foreignKey: "userId"});
677
+ UserGenreAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
678
+ AppUser.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "userId"});
637
679
  UserLikes.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
638
680
  AppUser.hasMany(UserLikes, { as: "userLikes", foreignKey: "appUserId"});
639
681
  CanonAlbumExternalReferenceRelation.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId"});
@@ -652,12 +694,16 @@ export function initModels(sequelize: Sequelize) {
652
694
  CanonArtist.hasMany(CanonArtistTrackRelation, { as: "canonArtistTrackRelations", foreignKey: "canonArtistId"});
653
695
  CanonToPlatformArtistRelation.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
654
696
  CanonArtist.hasMany(CanonToPlatformArtistRelation, { as: "canonToPlatformArtistRelations", foreignKey: "canonArtistId"});
697
+ JukeboxSessionArtistAffinity.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
698
+ CanonArtist.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "canonArtistId"});
655
699
  MerchItem.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
656
700
  CanonArtist.hasMany(MerchItem, { as: "merchItems", foreignKey: "canonArtistId"});
657
701
  MerchOrchestration.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
658
702
  CanonArtist.hasMany(MerchOrchestration, { as: "merchOrchestrations", foreignKey: "canonArtistId"});
659
703
  NewsArticle.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
660
704
  CanonArtist.hasMany(NewsArticle, { as: "newsArticles", foreignKey: "canonArtistId"});
705
+ UserArtistAffinity.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
706
+ CanonArtist.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "canonArtistId"});
661
707
  CanonAlbumGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
662
708
  CanonGenre.hasMany(CanonAlbumGenreRelation, { as: "canonAlbumGenreRelations", foreignKey: "canonGenreId"});
663
709
  CanonArtistGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
@@ -668,8 +714,12 @@ export function initModels(sequelize: Sequelize) {
668
714
  CanonGenre.hasMany(CanonToPlatformGenreRelation, { as: "canonToPlatformGenreRelations", foreignKey: "canonGenreId"});
669
715
  JukeboxCanonGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
670
716
  CanonGenre.hasMany(JukeboxCanonGenreRelation, { as: "jukeboxCanonGenreRelations", foreignKey: "canonGenreId"});
717
+ JukeboxSessionGenreAffinity.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
718
+ CanonGenre.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "canonGenreId"});
671
719
  RadioShowGenres.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
672
720
  CanonGenre.hasMany(RadioShowGenres, { as: "radioShowGenres", foreignKey: "canonGenreId"});
721
+ UserGenreAffinity.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
722
+ CanonGenre.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "canonGenreId"});
673
723
  CanonAlbumLabelRelation.belongsTo(CanonLabel, { as: "canonLabel", foreignKey: "canonLabelId"});
674
724
  CanonLabel.hasMany(CanonAlbumLabelRelation, { as: "canonAlbumLabelRelations", foreignKey: "canonLabelId"});
675
725
  CanonLabelExternalReferenceRelation.belongsTo(CanonLabel, { as: "canonLabel", foreignKey: "canonLabelId"});
@@ -716,6 +766,10 @@ export function initModels(sequelize: Sequelize) {
716
766
  JukeboxSession.hasMany(JukeboxInvite, { as: "jukeboxInvites", foreignKey: "jukeboxSessionId"});
717
767
  JukeboxQueueEntry.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
718
768
  JukeboxSession.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "jukeboxSessionId"});
769
+ JukeboxSessionArtistAffinity.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
770
+ JukeboxSession.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "jukeboxSessionId"});
771
+ JukeboxSessionGenreAffinity.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
772
+ JukeboxSession.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "jukeboxSessionId"});
719
773
  JukeboxUser.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
720
774
  JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId"});
721
775
  Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
@@ -854,6 +908,7 @@ export function initModels(sequelize: Sequelize) {
854
908
  return {
855
909
  AccessControlPreference: AccessControlPreference,
856
910
  AffinityRelationshipType: AffinityRelationshipType,
911
+ AffinityTier: AffinityTier,
857
912
  AppUser: AppUser,
858
913
  AppUserDevice: AppUserDevice,
859
914
  AppUserFollowRelation: AppUserFollowRelation,
@@ -893,6 +948,8 @@ export function initModels(sequelize: Sequelize) {
893
948
  JukeboxQueueEntry: JukeboxQueueEntry,
894
949
  JukeboxQueueMode: JukeboxQueueMode,
895
950
  JukeboxSession: JukeboxSession,
951
+ JukeboxSessionArtistAffinity: JukeboxSessionArtistAffinity,
952
+ JukeboxSessionGenreAffinity: JukeboxSessionGenreAffinity,
896
953
  JukeboxStatus: JukeboxStatus,
897
954
  JukeboxTerminationCondition: JukeboxTerminationCondition,
898
955
  JukeboxType: JukeboxType,
@@ -939,9 +996,11 @@ export function initModels(sequelize: Sequelize) {
939
996
  UnmatchedAlbum: UnmatchedAlbum,
940
997
  UnmatchedArtist: UnmatchedArtist,
941
998
  UserAffinity: UserAffinity,
999
+ UserArtistAffinity: UserArtistAffinity,
942
1000
  UserComments: UserComments,
943
1001
  UserContacts: UserContacts,
944
1002
  UserEngagementFactor: UserEngagementFactor,
1003
+ UserGenreAffinity: UserGenreAffinity,
945
1004
  UserLikes: UserLikes,
946
1005
  };
947
1006
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earbug/db-models",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {