@earbug/db-models 0.0.29 → 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.
@@ -2,6 +2,8 @@ import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
3
  import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
4
4
  import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
5
+ import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
6
+ import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
5
7
  export interface AffinityTierAttributes {
6
8
  id: number;
7
9
  name: string;
@@ -34,5 +36,27 @@ export declare class AffinityTier extends Model<AffinityTierAttributes, Affinity
34
36
  hasJukeboxSessionGenreAffinity: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
35
37
  hasJukeboxSessionGenreAffinities: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
36
38
  countJukeboxSessionGenreAffinities: Sequelize.HasManyCountAssociationsMixin;
39
+ userArtistAffinities: UserArtistAffinity[];
40
+ getUserArtistAffinities: Sequelize.HasManyGetAssociationsMixin<UserArtistAffinity>;
41
+ setUserArtistAffinities: Sequelize.HasManySetAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
42
+ addUserArtistAffinity: Sequelize.HasManyAddAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
43
+ addUserArtistAffinities: Sequelize.HasManyAddAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
44
+ createUserArtistAffinity: Sequelize.HasManyCreateAssociationMixin<UserArtistAffinity>;
45
+ removeUserArtistAffinity: Sequelize.HasManyRemoveAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
46
+ removeUserArtistAffinities: Sequelize.HasManyRemoveAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
47
+ hasUserArtistAffinity: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
48
+ hasUserArtistAffinities: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
49
+ countUserArtistAffinities: Sequelize.HasManyCountAssociationsMixin;
50
+ userGenreAffinities: UserGenreAffinity[];
51
+ getUserGenreAffinities: Sequelize.HasManyGetAssociationsMixin<UserGenreAffinity>;
52
+ setUserGenreAffinities: Sequelize.HasManySetAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
53
+ addUserGenreAffinity: Sequelize.HasManyAddAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
54
+ addUserGenreAffinities: Sequelize.HasManyAddAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
55
+ createUserGenreAffinity: Sequelize.HasManyCreateAssociationMixin<UserGenreAffinity>;
56
+ removeUserGenreAffinity: Sequelize.HasManyRemoveAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
57
+ removeUserGenreAffinities: Sequelize.HasManyRemoveAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
58
+ hasUserGenreAffinity: Sequelize.HasManyHasAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
59
+ hasUserGenreAffinities: Sequelize.HasManyHasAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
60
+ countUserGenreAffinities: Sequelize.HasManyCountAssociationsMixin;
37
61
  static initModel(sequelize: Sequelize.Sequelize): typeof AffinityTier;
38
62
  }
package/dist/AppUser.d.ts CHANGED
@@ -12,9 +12,11 @@ import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUse
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
13
  import type { State, StateId } from './State';
14
14
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
15
+ import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
15
16
  import type { UserComments, UserCommentsId } from './UserComments';
16
17
  import type { UserContacts, UserContactsId } from './UserContacts';
17
18
  import type { UserEngagementFactor, UserEngagementFactorId } from './UserEngagementFactor';
19
+ import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
18
20
  import type { UserLikes, UserLikesId } from './UserLikes';
19
21
  export interface AppUserAttributes {
20
22
  email: string;
@@ -194,6 +196,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
194
196
  hasUserAffinity: Sequelize.HasManyHasAssociationMixin<UserAffinity, UserAffinityId>;
195
197
  hasUserAffinities: Sequelize.HasManyHasAssociationsMixin<UserAffinity, UserAffinityId>;
196
198
  countUserAffinities: Sequelize.HasManyCountAssociationsMixin;
199
+ userArtistAffinities: UserArtistAffinity[];
200
+ getUserArtistAffinities: Sequelize.HasManyGetAssociationsMixin<UserArtistAffinity>;
201
+ setUserArtistAffinities: Sequelize.HasManySetAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
202
+ addUserArtistAffinity: Sequelize.HasManyAddAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
203
+ addUserArtistAffinities: Sequelize.HasManyAddAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
204
+ createUserArtistAffinity: Sequelize.HasManyCreateAssociationMixin<UserArtistAffinity>;
205
+ removeUserArtistAffinity: Sequelize.HasManyRemoveAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
206
+ removeUserArtistAffinities: Sequelize.HasManyRemoveAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
207
+ hasUserArtistAffinity: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
208
+ hasUserArtistAffinities: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
209
+ countUserArtistAffinities: Sequelize.HasManyCountAssociationsMixin;
197
210
  userComments: UserComments[];
198
211
  getUserComments: Sequelize.HasManyGetAssociationsMixin<UserComments>;
199
212
  setUserComments: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
@@ -227,6 +240,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
227
240
  hasUserEngagementFactor: Sequelize.HasManyHasAssociationMixin<UserEngagementFactor, UserEngagementFactorId>;
228
241
  hasUserEngagementFactors: Sequelize.HasManyHasAssociationsMixin<UserEngagementFactor, UserEngagementFactorId>;
229
242
  countUserEngagementFactors: Sequelize.HasManyCountAssociationsMixin;
243
+ userGenreAffinities: UserGenreAffinity[];
244
+ getUserGenreAffinities: Sequelize.HasManyGetAssociationsMixin<UserGenreAffinity>;
245
+ setUserGenreAffinities: Sequelize.HasManySetAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
246
+ addUserGenreAffinity: Sequelize.HasManyAddAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
247
+ addUserGenreAffinities: Sequelize.HasManyAddAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
248
+ createUserGenreAffinity: Sequelize.HasManyCreateAssociationMixin<UserGenreAffinity>;
249
+ removeUserGenreAffinity: Sequelize.HasManyRemoveAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
250
+ removeUserGenreAffinities: Sequelize.HasManyRemoveAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
251
+ hasUserGenreAffinity: Sequelize.HasManyHasAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
252
+ hasUserGenreAffinities: Sequelize.HasManyHasAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
253
+ countUserGenreAffinities: Sequelize.HasManyCountAssociationsMixin;
230
254
  userLikes: UserLikes[];
231
255
  getUserLikes: Sequelize.HasManyGetAssociationsMixin<UserLikes>;
232
256
  setUserLikes: Sequelize.HasManySetAssociationsMixin<UserLikes, UserLikesId>;
@@ -11,6 +11,7 @@ import type { MerchOrchestration, MerchOrchestrationId } from './MerchOrchestrat
11
11
  import type { NewsArticle, NewsArticleId } from './NewsArticle';
12
12
  import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
13
13
  import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
14
+ import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
14
15
  export interface CanonArtistAttributes {
15
16
  name: string;
16
17
  asciiName: string;
@@ -169,5 +170,16 @@ export declare class CanonArtist extends Model<CanonArtistAttributes, CanonArtis
169
170
  hasPlatformArtistIdPlatformArtist: Sequelize.BelongsToManyHasAssociationMixin<PlatformArtist, PlatformArtistId>;
170
171
  hasPlatformArtistIdPlatformArtists: Sequelize.BelongsToManyHasAssociationsMixin<PlatformArtist, PlatformArtistId>;
171
172
  countPlatformArtistIdPlatformArtists: Sequelize.BelongsToManyCountAssociationsMixin;
173
+ userArtistAffinities: UserArtistAffinity[];
174
+ getUserArtistAffinities: Sequelize.HasManyGetAssociationsMixin<UserArtistAffinity>;
175
+ setUserArtistAffinities: Sequelize.HasManySetAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
176
+ addUserArtistAffinity: Sequelize.HasManyAddAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
177
+ addUserArtistAffinities: Sequelize.HasManyAddAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
178
+ createUserArtistAffinity: Sequelize.HasManyCreateAssociationMixin<UserArtistAffinity>;
179
+ removeUserArtistAffinity: Sequelize.HasManyRemoveAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
180
+ removeUserArtistAffinities: Sequelize.HasManyRemoveAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
181
+ hasUserArtistAffinity: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
182
+ hasUserArtistAffinities: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
183
+ countUserArtistAffinities: Sequelize.HasManyCountAssociationsMixin;
172
184
  static initModel(sequelize: Sequelize.Sequelize): typeof CanonArtist;
173
185
  }
@@ -11,6 +11,7 @@ import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
11
11
  import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
12
12
  import type { PlatformGenre, PlatformGenreId } from './PlatformGenre';
13
13
  import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
14
+ import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
14
15
  export interface CanonGenreAttributes {
15
16
  name: string;
16
17
  asciiName: string;
@@ -153,5 +154,16 @@ export declare class CanonGenre extends Model<CanonGenreAttributes, CanonGenreCr
153
154
  hasRadioShowGenre: Sequelize.HasManyHasAssociationMixin<RadioShowGenres, RadioShowGenresId>;
154
155
  hasRadioShowGenres: Sequelize.HasManyHasAssociationsMixin<RadioShowGenres, RadioShowGenresId>;
155
156
  countRadioShowGenres: Sequelize.HasManyCountAssociationsMixin;
157
+ userGenreAffinities: UserGenreAffinity[];
158
+ getUserGenreAffinities: Sequelize.HasManyGetAssociationsMixin<UserGenreAffinity>;
159
+ setUserGenreAffinities: Sequelize.HasManySetAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
160
+ addUserGenreAffinity: Sequelize.HasManyAddAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
161
+ addUserGenreAffinities: Sequelize.HasManyAddAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
162
+ createUserGenreAffinity: Sequelize.HasManyCreateAssociationMixin<UserGenreAffinity>;
163
+ removeUserGenreAffinity: Sequelize.HasManyRemoveAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
164
+ removeUserGenreAffinities: Sequelize.HasManyRemoveAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
165
+ hasUserGenreAffinity: Sequelize.HasManyHasAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
166
+ hasUserGenreAffinities: Sequelize.HasManyHasAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
167
+ countUserGenreAffinities: Sequelize.HasManyCountAssociationsMixin;
156
168
  static initModel(sequelize: Sequelize.Sequelize): typeof CanonGenre;
157
169
  }
@@ -0,0 +1,40 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { 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
+ export interface UserArtistAffinityAttributes {
7
+ userId: string;
8
+ canonArtistId: string;
9
+ affinityTierId: number;
10
+ rank: number;
11
+ id: string;
12
+ createdAt: Date;
13
+ updatedAt: Date;
14
+ }
15
+ export type UserArtistAffinityPk = "id";
16
+ export type UserArtistAffinityId = UserArtistAffinity[UserArtistAffinityPk];
17
+ export type UserArtistAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
18
+ export type UserArtistAffinityCreationAttributes = Optional<UserArtistAffinityAttributes, UserArtistAffinityOptionalAttributes>;
19
+ export declare class UserArtistAffinity extends Model<UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes> implements UserArtistAffinityAttributes {
20
+ userId: string;
21
+ canonArtistId: string;
22
+ affinityTierId: number;
23
+ rank: number;
24
+ id: string;
25
+ createdAt: Date;
26
+ updatedAt: Date;
27
+ affinityTier: AffinityTier;
28
+ getAffinityTier: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
29
+ setAffinityTier: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
30
+ createAffinityTier: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
31
+ user: AppUser;
32
+ getUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
33
+ setUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
34
+ createUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
35
+ canonArtist: CanonArtist;
36
+ getCanonArtist: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
37
+ setCanonArtist: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
38
+ createCanonArtist: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
39
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserArtistAffinity;
40
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.UserArtistAffinity = void 0;
27
+ const Sequelize = __importStar(require("sequelize"));
28
+ const sequelize_1 = require("sequelize");
29
+ class UserArtistAffinity extends sequelize_1.Model {
30
+ static initModel(sequelize) {
31
+ return UserArtistAffinity.init({
32
+ userId: {
33
+ type: sequelize_1.DataTypes.UUID,
34
+ allowNull: false,
35
+ references: {
36
+ model: 'app_user',
37
+ key: 'id'
38
+ },
39
+ unique: "user_artist_affinity_user_id_canon_artist_id_unique",
40
+ field: 'user_id'
41
+ },
42
+ canonArtistId: {
43
+ type: sequelize_1.DataTypes.UUID,
44
+ allowNull: false,
45
+ references: {
46
+ model: 'canon_artist',
47
+ key: 'id'
48
+ },
49
+ unique: "user_artist_affinity_user_id_canon_artist_id_unique",
50
+ field: 'canon_artist_id'
51
+ },
52
+ affinityTierId: {
53
+ type: sequelize_1.DataTypes.SMALLINT,
54
+ allowNull: false,
55
+ references: {
56
+ model: 'affinity_tier',
57
+ key: 'id'
58
+ },
59
+ field: 'affinity_tier_id'
60
+ },
61
+ rank: {
62
+ type: sequelize_1.DataTypes.INTEGER,
63
+ allowNull: false
64
+ },
65
+ id: {
66
+ type: sequelize_1.DataTypes.UUID,
67
+ allowNull: false,
68
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
69
+ primaryKey: true
70
+ },
71
+ createdAt: {
72
+ type: sequelize_1.DataTypes.DATE,
73
+ allowNull: false,
74
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
75
+ field: 'created_at'
76
+ },
77
+ updatedAt: {
78
+ type: sequelize_1.DataTypes.DATE,
79
+ allowNull: false,
80
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
81
+ field: 'updated_at'
82
+ }
83
+ }, {
84
+ sequelize,
85
+ tableName: 'user_artist_affinity',
86
+ schema: 'eb',
87
+ timestamps: false,
88
+ indexes: [
89
+ {
90
+ name: "idx_user_artist_affinity_artist",
91
+ fields: [
92
+ { name: "canon_artist_id" },
93
+ ]
94
+ },
95
+ {
96
+ name: "idx_user_artist_affinity_session",
97
+ fields: [
98
+ { name: "user_id" },
99
+ ]
100
+ },
101
+ {
102
+ name: "user_artist_affinity_pkey",
103
+ unique: true,
104
+ fields: [
105
+ { name: "id" },
106
+ ]
107
+ },
108
+ {
109
+ name: "user_artist_affinity_user_id_canon_artist_id_unique",
110
+ unique: true,
111
+ fields: [
112
+ { name: "user_id" },
113
+ { name: "canon_artist_id" },
114
+ ]
115
+ },
116
+ ]
117
+ });
118
+ }
119
+ }
120
+ exports.UserArtistAffinity = UserArtistAffinity;
@@ -0,0 +1,40 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { 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
+ export interface UserGenreAffinityAttributes {
7
+ userId: string;
8
+ canonGenreId: string;
9
+ affinityTierId: number;
10
+ rank: number;
11
+ id: string;
12
+ createdAt: Date;
13
+ updatedAt: Date;
14
+ }
15
+ export type UserGenreAffinityPk = "id";
16
+ export type UserGenreAffinityId = UserGenreAffinity[UserGenreAffinityPk];
17
+ export type UserGenreAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
18
+ export type UserGenreAffinityCreationAttributes = Optional<UserGenreAffinityAttributes, UserGenreAffinityOptionalAttributes>;
19
+ export declare class UserGenreAffinity extends Model<UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes> implements UserGenreAffinityAttributes {
20
+ userId: string;
21
+ canonGenreId: string;
22
+ affinityTierId: number;
23
+ rank: number;
24
+ id: string;
25
+ createdAt: Date;
26
+ updatedAt: Date;
27
+ affinityTier: AffinityTier;
28
+ getAffinityTier: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
29
+ setAffinityTier: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
30
+ createAffinityTier: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
31
+ user: AppUser;
32
+ getUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
33
+ setUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
34
+ createUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
35
+ canonGenre: CanonGenre;
36
+ getCanonGenre: Sequelize.BelongsToGetAssociationMixin<CanonGenre>;
37
+ setCanonGenre: Sequelize.BelongsToSetAssociationMixin<CanonGenre, CanonGenreId>;
38
+ createCanonGenre: Sequelize.BelongsToCreateAssociationMixin<CanonGenre>;
39
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserGenreAffinity;
40
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.UserGenreAffinity = void 0;
27
+ const Sequelize = __importStar(require("sequelize"));
28
+ const sequelize_1 = require("sequelize");
29
+ class UserGenreAffinity extends sequelize_1.Model {
30
+ static initModel(sequelize) {
31
+ return UserGenreAffinity.init({
32
+ userId: {
33
+ type: sequelize_1.DataTypes.UUID,
34
+ allowNull: false,
35
+ references: {
36
+ model: 'app_user',
37
+ key: 'id'
38
+ },
39
+ unique: "user_genre_affinity_user_id_canon_genre_id_unique",
40
+ field: 'user_id'
41
+ },
42
+ canonGenreId: {
43
+ type: sequelize_1.DataTypes.UUID,
44
+ allowNull: false,
45
+ references: {
46
+ model: 'canon_genre',
47
+ key: 'id'
48
+ },
49
+ unique: "user_genre_affinity_user_id_canon_genre_id_unique",
50
+ field: 'canon_genre_id'
51
+ },
52
+ affinityTierId: {
53
+ type: sequelize_1.DataTypes.SMALLINT,
54
+ allowNull: false,
55
+ references: {
56
+ model: 'affinity_tier',
57
+ key: 'id'
58
+ },
59
+ field: 'affinity_tier_id'
60
+ },
61
+ rank: {
62
+ type: sequelize_1.DataTypes.INTEGER,
63
+ allowNull: false
64
+ },
65
+ id: {
66
+ type: sequelize_1.DataTypes.UUID,
67
+ allowNull: false,
68
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
69
+ primaryKey: true
70
+ },
71
+ createdAt: {
72
+ type: sequelize_1.DataTypes.DATE,
73
+ allowNull: false,
74
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
75
+ field: 'created_at'
76
+ },
77
+ updatedAt: {
78
+ type: sequelize_1.DataTypes.DATE,
79
+ allowNull: false,
80
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
81
+ field: 'updated_at'
82
+ }
83
+ }, {
84
+ sequelize,
85
+ tableName: 'user_genre_affinity',
86
+ schema: 'eb',
87
+ timestamps: false,
88
+ indexes: [
89
+ {
90
+ name: "idx_user_genre_affinity_genre",
91
+ fields: [
92
+ { name: "canon_genre_id" },
93
+ ]
94
+ },
95
+ {
96
+ name: "idx_user_genre_affinity_session",
97
+ fields: [
98
+ { name: "user_id" },
99
+ ]
100
+ },
101
+ {
102
+ name: "user_genre_affinity_pkey",
103
+ unique: true,
104
+ fields: [
105
+ { name: "id" },
106
+ ]
107
+ },
108
+ {
109
+ name: "user_genre_affinity_user_id_canon_genre_id_unique",
110
+ unique: true,
111
+ fields: [
112
+ { name: "user_id" },
113
+ { name: "canon_genre_id" },
114
+ ]
115
+ },
116
+ ]
117
+ });
118
+ }
119
+ }
120
+ exports.UserGenreAffinity = UserGenreAffinity;
@@ -179,16 +179,20 @@ import { UnmatchedArtist as _UnmatchedArtist } from "./UnmatchedArtist";
179
179
  import type { UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes } from "./UnmatchedArtist";
180
180
  import { UserAffinity as _UserAffinity } from "./UserAffinity";
181
181
  import type { UserAffinityAttributes, UserAffinityCreationAttributes } from "./UserAffinity";
182
+ import { UserArtistAffinity as _UserArtistAffinity } from "./UserArtistAffinity";
183
+ import type { UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes } from "./UserArtistAffinity";
182
184
  import { UserComments as _UserComments } from "./UserComments";
183
185
  import type { UserCommentsAttributes, UserCommentsCreationAttributes } from "./UserComments";
184
186
  import { UserContacts as _UserContacts } from "./UserContacts";
185
187
  import type { UserContactsAttributes, UserContactsCreationAttributes } from "./UserContacts";
186
188
  import { UserEngagementFactor as _UserEngagementFactor } from "./UserEngagementFactor";
187
189
  import type { UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes } from "./UserEngagementFactor";
190
+ import { UserGenreAffinity as _UserGenreAffinity } from "./UserGenreAffinity";
191
+ import type { UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes } from "./UserGenreAffinity";
188
192
  import { UserLikes as _UserLikes } from "./UserLikes";
189
193
  import type { UserLikesAttributes, UserLikesCreationAttributes } from "./UserLikes";
190
- export { _AccessControlPreference as AccessControlPreference, _AffinityRelationshipType as AffinityRelationshipType, _AffinityTier as AffinityTier, _AppUser as AppUser, _AppUserDevice as AppUserDevice, _AppUserFollowRelation as AppUserFollowRelation, _AppUserPlatformRelation as AppUserPlatformRelation, _CanonAlbum as CanonAlbum, _CanonAlbumExternalReferenceRelation as CanonAlbumExternalReferenceRelation, _CanonAlbumGenreRelation as CanonAlbumGenreRelation, _CanonAlbumImageHarvested as CanonAlbumImageHarvested, _CanonAlbumLabelRelation as CanonAlbumLabelRelation, _CanonAlbumTrackRelation as CanonAlbumTrackRelation, _CanonArtist as CanonArtist, _CanonArtistAlbumRelation as CanonArtistAlbumRelation, _CanonArtistExternalReferenceRelation as CanonArtistExternalReferenceRelation, _CanonArtistGenreRelation as CanonArtistGenreRelation, _CanonArtistImageHarvested as CanonArtistImageHarvested, _CanonArtistMemberRelation as CanonArtistMemberRelation, _CanonArtistTrackRelation as CanonArtistTrackRelation, _CanonGenre as CanonGenre, _CanonGenreExternalReferenceRelation as CanonGenreExternalReferenceRelation, _CanonLabel as CanonLabel, _CanonLabelExternalReferenceRelation as CanonLabelExternalReferenceRelation, _CanonMember as CanonMember, _CanonMemberExternalReferenceRelation as CanonMemberExternalReferenceRelation, _CanonToPlatformAlbumRelation as CanonToPlatformAlbumRelation, _CanonToPlatformArtistRelation as CanonToPlatformArtistRelation, _CanonToPlatformGenreRelation as CanonToPlatformGenreRelation, _CanonToPlatformTrackRelation as CanonToPlatformTrackRelation, _CanonTrack as CanonTrack, _ConfigParam as ConfigParam, _ExternalReference as ExternalReference, _FeedConfig as FeedConfig, _FeedContentType as FeedContentType, _GuestUser as GuestUser, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity, _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MerchItem as MerchItem, _MerchOrchestration as MerchOrchestration, _MerchPlatform as MerchPlatform, _MerchType as MerchType, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsArticle as NewsArticle, _NewsPlatform as NewsPlatform, _NewsSite as NewsSite, _Notification as Notification, _NotificationType as NotificationType, _PauseStatusType as PauseStatusType, _Platform as Platform, _PlatformAlbum as PlatformAlbum, _PlatformAlbumGenreRelation as PlatformAlbumGenreRelation, _PlatformAlbumTrackRelation as PlatformAlbumTrackRelation, _PlatformArtist as PlatformArtist, _PlatformArtistAlbumRelation as PlatformArtistAlbumRelation, _PlatformArtistGenreRelation as PlatformArtistGenreRelation, _PlatformArtistTrackRelation as PlatformArtistTrackRelation, _PlatformGenre as PlatformGenre, _PlatformTrack as PlatformTrack, _PlatformTrackGenreRelation as PlatformTrackGenreRelation, _PlatformUserAlbum as PlatformUserAlbum, _PlatformUserAlbumTrack as PlatformUserAlbumTrack, _PlatformUserPlaylist as PlatformUserPlaylist, _PlatformUserPlaylistTrack as PlatformUserPlaylistTrack, _PlaybackStatus as PlaybackStatus, _PlaybackStatusType as PlaybackStatusType, _RadioShow as RadioShow, _RadioShowGenres as RadioShowGenres, _RadioShowMedia as RadioShowMedia, _RadioShowPlacement as RadioShowPlacement, _RadioShowPublishRequests as RadioShowPublishRequests, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserAffinity as UserAffinity, _UserComments as UserComments, _UserContacts as UserContacts, _UserEngagementFactor as UserEngagementFactor, _UserLikes as UserLikes, };
191
- export type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes, AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes, AffinityTierAttributes, AffinityTierCreationAttributes, AppUserAttributes, AppUserCreationAttributes, AppUserDeviceAttributes, AppUserDeviceCreationAttributes, AppUserFollowRelationAttributes, AppUserFollowRelationCreationAttributes, AppUserPlatformRelationAttributes, AppUserPlatformRelationCreationAttributes, CanonAlbumAttributes, CanonAlbumCreationAttributes, CanonAlbumExternalReferenceRelationAttributes, CanonAlbumExternalReferenceRelationCreationAttributes, CanonAlbumGenreRelationAttributes, CanonAlbumGenreRelationCreationAttributes, CanonAlbumImageHarvestedAttributes, CanonAlbumImageHarvestedCreationAttributes, CanonAlbumLabelRelationAttributes, CanonAlbumLabelRelationCreationAttributes, CanonAlbumTrackRelationAttributes, CanonAlbumTrackRelationCreationAttributes, CanonArtistAttributes, CanonArtistCreationAttributes, CanonArtistAlbumRelationAttributes, CanonArtistAlbumRelationCreationAttributes, CanonArtistExternalReferenceRelationAttributes, CanonArtistExternalReferenceRelationCreationAttributes, CanonArtistGenreRelationAttributes, CanonArtistGenreRelationCreationAttributes, CanonArtistImageHarvestedAttributes, CanonArtistImageHarvestedCreationAttributes, CanonArtistMemberRelationAttributes, CanonArtistMemberRelationCreationAttributes, CanonArtistTrackRelationAttributes, CanonArtistTrackRelationCreationAttributes, CanonGenreAttributes, CanonGenreCreationAttributes, CanonGenreExternalReferenceRelationAttributes, CanonGenreExternalReferenceRelationCreationAttributes, CanonLabelAttributes, CanonLabelCreationAttributes, CanonLabelExternalReferenceRelationAttributes, CanonLabelExternalReferenceRelationCreationAttributes, CanonMemberAttributes, CanonMemberCreationAttributes, CanonMemberExternalReferenceRelationAttributes, CanonMemberExternalReferenceRelationCreationAttributes, CanonToPlatformAlbumRelationAttributes, CanonToPlatformAlbumRelationCreationAttributes, CanonToPlatformArtistRelationAttributes, CanonToPlatformArtistRelationCreationAttributes, CanonToPlatformGenreRelationAttributes, CanonToPlatformGenreRelationCreationAttributes, CanonToPlatformTrackRelationAttributes, CanonToPlatformTrackRelationCreationAttributes, CanonTrackAttributes, CanonTrackCreationAttributes, ConfigParamAttributes, ConfigParamCreationAttributes, ExternalReferenceAttributes, ExternalReferenceCreationAttributes, FeedConfigAttributes, FeedConfigCreationAttributes, FeedContentTypeAttributes, FeedContentTypeCreationAttributes, GuestUserAttributes, GuestUserCreationAttributes, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes, JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MerchItemAttributes, MerchItemCreationAttributes, MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes, MerchPlatformAttributes, MerchPlatformCreationAttributes, MerchTypeAttributes, MerchTypeCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsArticleAttributes, NewsArticleCreationAttributes, NewsPlatformAttributes, NewsPlatformCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, NotificationAttributes, NotificationCreationAttributes, NotificationTypeAttributes, NotificationTypeCreationAttributes, PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes, PlatformAttributes, PlatformCreationAttributes, PlatformAlbumAttributes, PlatformAlbumCreationAttributes, PlatformAlbumGenreRelationAttributes, PlatformAlbumGenreRelationCreationAttributes, PlatformAlbumTrackRelationAttributes, PlatformAlbumTrackRelationCreationAttributes, PlatformArtistAttributes, PlatformArtistCreationAttributes, PlatformArtistAlbumRelationAttributes, PlatformArtistAlbumRelationCreationAttributes, PlatformArtistGenreRelationAttributes, PlatformArtistGenreRelationCreationAttributes, PlatformArtistTrackRelationAttributes, PlatformArtistTrackRelationCreationAttributes, PlatformGenreAttributes, PlatformGenreCreationAttributes, PlatformTrackAttributes, PlatformTrackCreationAttributes, PlatformTrackGenreRelationAttributes, PlatformTrackGenreRelationCreationAttributes, PlatformUserAlbumAttributes, PlatformUserAlbumCreationAttributes, PlatformUserAlbumTrackAttributes, PlatformUserAlbumTrackCreationAttributes, PlatformUserPlaylistAttributes, PlatformUserPlaylistCreationAttributes, PlatformUserPlaylistTrackAttributes, PlatformUserPlaylistTrackCreationAttributes, PlaybackStatusAttributes, PlaybackStatusCreationAttributes, PlaybackStatusTypeAttributes, PlaybackStatusTypeCreationAttributes, RadioShowAttributes, RadioShowCreationAttributes, RadioShowGenresAttributes, RadioShowGenresCreationAttributes, RadioShowMediaAttributes, RadioShowMediaCreationAttributes, RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes, RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, };
194
+ export { _AccessControlPreference as AccessControlPreference, _AffinityRelationshipType as AffinityRelationshipType, _AffinityTier as AffinityTier, _AppUser as AppUser, _AppUserDevice as AppUserDevice, _AppUserFollowRelation as AppUserFollowRelation, _AppUserPlatformRelation as AppUserPlatformRelation, _CanonAlbum as CanonAlbum, _CanonAlbumExternalReferenceRelation as CanonAlbumExternalReferenceRelation, _CanonAlbumGenreRelation as CanonAlbumGenreRelation, _CanonAlbumImageHarvested as CanonAlbumImageHarvested, _CanonAlbumLabelRelation as CanonAlbumLabelRelation, _CanonAlbumTrackRelation as CanonAlbumTrackRelation, _CanonArtist as CanonArtist, _CanonArtistAlbumRelation as CanonArtistAlbumRelation, _CanonArtistExternalReferenceRelation as CanonArtistExternalReferenceRelation, _CanonArtistGenreRelation as CanonArtistGenreRelation, _CanonArtistImageHarvested as CanonArtistImageHarvested, _CanonArtistMemberRelation as CanonArtistMemberRelation, _CanonArtistTrackRelation as CanonArtistTrackRelation, _CanonGenre as CanonGenre, _CanonGenreExternalReferenceRelation as CanonGenreExternalReferenceRelation, _CanonLabel as CanonLabel, _CanonLabelExternalReferenceRelation as CanonLabelExternalReferenceRelation, _CanonMember as CanonMember, _CanonMemberExternalReferenceRelation as CanonMemberExternalReferenceRelation, _CanonToPlatformAlbumRelation as CanonToPlatformAlbumRelation, _CanonToPlatformArtistRelation as CanonToPlatformArtistRelation, _CanonToPlatformGenreRelation as CanonToPlatformGenreRelation, _CanonToPlatformTrackRelation as CanonToPlatformTrackRelation, _CanonTrack as CanonTrack, _ConfigParam as ConfigParam, _ExternalReference as ExternalReference, _FeedConfig as FeedConfig, _FeedContentType as FeedContentType, _GuestUser as GuestUser, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity, _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MerchItem as MerchItem, _MerchOrchestration as MerchOrchestration, _MerchPlatform as MerchPlatform, _MerchType as MerchType, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsArticle as NewsArticle, _NewsPlatform as NewsPlatform, _NewsSite as NewsSite, _Notification as Notification, _NotificationType as NotificationType, _PauseStatusType as PauseStatusType, _Platform as Platform, _PlatformAlbum as PlatformAlbum, _PlatformAlbumGenreRelation as PlatformAlbumGenreRelation, _PlatformAlbumTrackRelation as PlatformAlbumTrackRelation, _PlatformArtist as PlatformArtist, _PlatformArtistAlbumRelation as PlatformArtistAlbumRelation, _PlatformArtistGenreRelation as PlatformArtistGenreRelation, _PlatformArtistTrackRelation as PlatformArtistTrackRelation, _PlatformGenre as PlatformGenre, _PlatformTrack as PlatformTrack, _PlatformTrackGenreRelation as PlatformTrackGenreRelation, _PlatformUserAlbum as PlatformUserAlbum, _PlatformUserAlbumTrack as PlatformUserAlbumTrack, _PlatformUserPlaylist as PlatformUserPlaylist, _PlatformUserPlaylistTrack as PlatformUserPlaylistTrack, _PlaybackStatus as PlaybackStatus, _PlaybackStatusType as PlaybackStatusType, _RadioShow as RadioShow, _RadioShowGenres as RadioShowGenres, _RadioShowMedia as RadioShowMedia, _RadioShowPlacement as RadioShowPlacement, _RadioShowPublishRequests as RadioShowPublishRequests, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserAffinity as UserAffinity, _UserArtistAffinity as UserArtistAffinity, _UserComments as UserComments, _UserContacts as UserContacts, _UserEngagementFactor as UserEngagementFactor, _UserGenreAffinity as UserGenreAffinity, _UserLikes as UserLikes, };
195
+ export type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes, AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes, AffinityTierAttributes, AffinityTierCreationAttributes, AppUserAttributes, AppUserCreationAttributes, AppUserDeviceAttributes, AppUserDeviceCreationAttributes, AppUserFollowRelationAttributes, AppUserFollowRelationCreationAttributes, AppUserPlatformRelationAttributes, AppUserPlatformRelationCreationAttributes, CanonAlbumAttributes, CanonAlbumCreationAttributes, CanonAlbumExternalReferenceRelationAttributes, CanonAlbumExternalReferenceRelationCreationAttributes, CanonAlbumGenreRelationAttributes, CanonAlbumGenreRelationCreationAttributes, CanonAlbumImageHarvestedAttributes, CanonAlbumImageHarvestedCreationAttributes, CanonAlbumLabelRelationAttributes, CanonAlbumLabelRelationCreationAttributes, CanonAlbumTrackRelationAttributes, CanonAlbumTrackRelationCreationAttributes, CanonArtistAttributes, CanonArtistCreationAttributes, CanonArtistAlbumRelationAttributes, CanonArtistAlbumRelationCreationAttributes, CanonArtistExternalReferenceRelationAttributes, CanonArtistExternalReferenceRelationCreationAttributes, CanonArtistGenreRelationAttributes, CanonArtistGenreRelationCreationAttributes, CanonArtistImageHarvestedAttributes, CanonArtistImageHarvestedCreationAttributes, CanonArtistMemberRelationAttributes, CanonArtistMemberRelationCreationAttributes, CanonArtistTrackRelationAttributes, CanonArtistTrackRelationCreationAttributes, CanonGenreAttributes, CanonGenreCreationAttributes, CanonGenreExternalReferenceRelationAttributes, CanonGenreExternalReferenceRelationCreationAttributes, CanonLabelAttributes, CanonLabelCreationAttributes, CanonLabelExternalReferenceRelationAttributes, CanonLabelExternalReferenceRelationCreationAttributes, CanonMemberAttributes, CanonMemberCreationAttributes, CanonMemberExternalReferenceRelationAttributes, CanonMemberExternalReferenceRelationCreationAttributes, CanonToPlatformAlbumRelationAttributes, CanonToPlatformAlbumRelationCreationAttributes, CanonToPlatformArtistRelationAttributes, CanonToPlatformArtistRelationCreationAttributes, CanonToPlatformGenreRelationAttributes, CanonToPlatformGenreRelationCreationAttributes, CanonToPlatformTrackRelationAttributes, CanonToPlatformTrackRelationCreationAttributes, CanonTrackAttributes, CanonTrackCreationAttributes, ConfigParamAttributes, ConfigParamCreationAttributes, ExternalReferenceAttributes, ExternalReferenceCreationAttributes, FeedConfigAttributes, FeedConfigCreationAttributes, FeedContentTypeAttributes, FeedContentTypeCreationAttributes, GuestUserAttributes, GuestUserCreationAttributes, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes, JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MerchItemAttributes, MerchItemCreationAttributes, MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes, MerchPlatformAttributes, MerchPlatformCreationAttributes, MerchTypeAttributes, MerchTypeCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsArticleAttributes, NewsArticleCreationAttributes, NewsPlatformAttributes, NewsPlatformCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, NotificationAttributes, NotificationCreationAttributes, NotificationTypeAttributes, NotificationTypeCreationAttributes, PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes, PlatformAttributes, PlatformCreationAttributes, PlatformAlbumAttributes, PlatformAlbumCreationAttributes, PlatformAlbumGenreRelationAttributes, PlatformAlbumGenreRelationCreationAttributes, PlatformAlbumTrackRelationAttributes, PlatformAlbumTrackRelationCreationAttributes, PlatformArtistAttributes, PlatformArtistCreationAttributes, PlatformArtistAlbumRelationAttributes, PlatformArtistAlbumRelationCreationAttributes, PlatformArtistGenreRelationAttributes, PlatformArtistGenreRelationCreationAttributes, PlatformArtistTrackRelationAttributes, PlatformArtistTrackRelationCreationAttributes, PlatformGenreAttributes, PlatformGenreCreationAttributes, PlatformTrackAttributes, PlatformTrackCreationAttributes, PlatformTrackGenreRelationAttributes, PlatformTrackGenreRelationCreationAttributes, PlatformUserAlbumAttributes, PlatformUserAlbumCreationAttributes, PlatformUserAlbumTrackAttributes, PlatformUserAlbumTrackCreationAttributes, PlatformUserPlaylistAttributes, PlatformUserPlaylistCreationAttributes, PlatformUserPlaylistTrackAttributes, PlatformUserPlaylistTrackCreationAttributes, PlaybackStatusAttributes, PlaybackStatusCreationAttributes, PlaybackStatusTypeAttributes, PlaybackStatusTypeCreationAttributes, RadioShowAttributes, RadioShowCreationAttributes, RadioShowGenresAttributes, RadioShowGenresCreationAttributes, RadioShowMediaAttributes, RadioShowMediaCreationAttributes, RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes, RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, };
192
196
  export declare function initModels(sequelize: Sequelize): {
193
197
  AccessControlPreference: typeof _AccessControlPreference;
194
198
  AffinityRelationshipType: typeof _AffinityRelationshipType;
@@ -280,8 +284,10 @@ export declare function initModels(sequelize: Sequelize): {
280
284
  UnmatchedAlbum: typeof _UnmatchedAlbum;
281
285
  UnmatchedArtist: typeof _UnmatchedArtist;
282
286
  UserAffinity: typeof _UserAffinity;
287
+ UserArtistAffinity: typeof _UserArtistAffinity;
283
288
  UserComments: typeof _UserComments;
284
289
  UserContacts: typeof _UserContacts;
285
290
  UserEngagementFactor: typeof _UserEngagementFactor;
291
+ UserGenreAffinity: typeof _UserGenreAffinity;
286
292
  UserLikes: typeof _UserLikes;
287
293
  };
@@ -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.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;
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.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; } });
@@ -183,12 +183,16 @@ const UnmatchedArtist_1 = require("./UnmatchedArtist");
183
183
  Object.defineProperty(exports, "UnmatchedArtist", { enumerable: true, get: function () { return UnmatchedArtist_1.UnmatchedArtist; } });
184
184
  const UserAffinity_1 = require("./UserAffinity");
185
185
  Object.defineProperty(exports, "UserAffinity", { enumerable: true, get: function () { return UserAffinity_1.UserAffinity; } });
186
+ const UserArtistAffinity_1 = require("./UserArtistAffinity");
187
+ Object.defineProperty(exports, "UserArtistAffinity", { enumerable: true, get: function () { return UserArtistAffinity_1.UserArtistAffinity; } });
186
188
  const UserComments_1 = require("./UserComments");
187
189
  Object.defineProperty(exports, "UserComments", { enumerable: true, get: function () { return UserComments_1.UserComments; } });
188
190
  const UserContacts_1 = require("./UserContacts");
189
191
  Object.defineProperty(exports, "UserContacts", { enumerable: true, get: function () { return UserContacts_1.UserContacts; } });
190
192
  const UserEngagementFactor_1 = require("./UserEngagementFactor");
191
193
  Object.defineProperty(exports, "UserEngagementFactor", { enumerable: true, get: function () { return UserEngagementFactor_1.UserEngagementFactor; } });
194
+ const UserGenreAffinity_1 = require("./UserGenreAffinity");
195
+ Object.defineProperty(exports, "UserGenreAffinity", { enumerable: true, get: function () { return UserGenreAffinity_1.UserGenreAffinity; } });
192
196
  const UserLikes_1 = require("./UserLikes");
193
197
  Object.defineProperty(exports, "UserLikes", { enumerable: true, get: function () { return UserLikes_1.UserLikes; } });
194
198
  function initModels(sequelize) {
@@ -282,9 +286,11 @@ function initModels(sequelize) {
282
286
  const UnmatchedAlbum = UnmatchedAlbum_1.UnmatchedAlbum.initModel(sequelize);
283
287
  const UnmatchedArtist = UnmatchedArtist_1.UnmatchedArtist.initModel(sequelize);
284
288
  const UserAffinity = UserAffinity_1.UserAffinity.initModel(sequelize);
289
+ const UserArtistAffinity = UserArtistAffinity_1.UserArtistAffinity.initModel(sequelize);
285
290
  const UserComments = UserComments_1.UserComments.initModel(sequelize);
286
291
  const UserContacts = UserContacts_1.UserContacts.initModel(sequelize);
287
292
  const UserEngagementFactor = UserEngagementFactor_1.UserEngagementFactor.initModel(sequelize);
293
+ const UserGenreAffinity = UserGenreAffinity_1.UserGenreAffinity.initModel(sequelize);
288
294
  const UserLikes = UserLikes_1.UserLikes.initModel(sequelize);
289
295
  CanonAlbum.belongsToMany(CanonTrack, { as: 'canonTrackIdCanonTracks', through: CanonAlbumTrackRelation, foreignKey: "canonAlbumId", otherKey: "canonTrackId" });
290
296
  CanonAlbum.belongsToMany(ExternalReference, { as: 'externalReferenceIdExternalReferences', through: CanonAlbumExternalReferenceRelation, foreignKey: "canonAlbumId", otherKey: "externalReferenceId" });
@@ -336,6 +342,10 @@ function initModels(sequelize) {
336
342
  AffinityTier.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "affinityTierId" });
337
343
  JukeboxSessionGenreAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId" });
338
344
  AffinityTier.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "affinityTierId" });
345
+ UserArtistAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId" });
346
+ AffinityTier.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "affinityTierId" });
347
+ UserGenreAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId" });
348
+ AffinityTier.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "affinityTierId" });
339
349
  AppUserDevice.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
340
350
  AppUser.hasMany(AppUserDevice, { as: "appUserDevices", foreignKey: "appUserId" });
341
351
  AppUserFollowRelation.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
@@ -364,12 +374,16 @@ function initModels(sequelize) {
364
374
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId" });
365
375
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
366
376
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId" });
377
+ UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
378
+ AppUser.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "userId" });
367
379
  UserComments.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
368
380
  AppUser.hasMany(UserComments, { as: "userComments", foreignKey: "appUserId" });
369
381
  UserContacts.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
370
382
  AppUser.hasMany(UserContacts, { as: "userContacts", foreignKey: "appUserId" });
371
383
  UserEngagementFactor.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
372
384
  AppUser.hasMany(UserEngagementFactor, { as: "userEngagementFactors", foreignKey: "userId" });
385
+ UserGenreAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
386
+ AppUser.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "userId" });
373
387
  UserLikes.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
374
388
  AppUser.hasMany(UserLikes, { as: "userLikes", foreignKey: "appUserId" });
375
389
  CanonAlbumExternalReferenceRelation.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId" });
@@ -396,6 +410,8 @@ function initModels(sequelize) {
396
410
  CanonArtist.hasMany(MerchOrchestration, { as: "merchOrchestrations", foreignKey: "canonArtistId" });
397
411
  NewsArticle.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId" });
398
412
  CanonArtist.hasMany(NewsArticle, { as: "newsArticles", foreignKey: "canonArtistId" });
413
+ UserArtistAffinity.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId" });
414
+ CanonArtist.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "canonArtistId" });
399
415
  CanonAlbumGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId" });
400
416
  CanonGenre.hasMany(CanonAlbumGenreRelation, { as: "canonAlbumGenreRelations", foreignKey: "canonGenreId" });
401
417
  CanonArtistGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId" });
@@ -410,6 +426,8 @@ function initModels(sequelize) {
410
426
  CanonGenre.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "canonGenreId" });
411
427
  RadioShowGenres.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId" });
412
428
  CanonGenre.hasMany(RadioShowGenres, { as: "radioShowGenres", foreignKey: "canonGenreId" });
429
+ UserGenreAffinity.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId" });
430
+ CanonGenre.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "canonGenreId" });
413
431
  CanonAlbumLabelRelation.belongsTo(CanonLabel, { as: "canonLabel", foreignKey: "canonLabelId" });
414
432
  CanonLabel.hasMany(CanonAlbumLabelRelation, { as: "canonAlbumLabelRelations", foreignKey: "canonLabelId" });
415
433
  CanonLabelExternalReferenceRelation.belongsTo(CanonLabel, { as: "canonLabel", foreignKey: "canonLabelId" });
@@ -685,9 +703,11 @@ function initModels(sequelize) {
685
703
  UnmatchedAlbum: UnmatchedAlbum,
686
704
  UnmatchedArtist: UnmatchedArtist,
687
705
  UserAffinity: UserAffinity,
706
+ UserArtistAffinity: UserArtistAffinity,
688
707
  UserComments: UserComments,
689
708
  UserContacts: UserContacts,
690
709
  UserEngagementFactor: UserEngagementFactor,
710
+ UserGenreAffinity: UserGenreAffinity,
691
711
  UserLikes: UserLikes,
692
712
  };
693
713
  }
@@ -2,6 +2,8 @@ import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
3
  import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
4
4
  import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
5
+ import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
6
+ import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
5
7
 
6
8
  export interface AffinityTierAttributes {
7
9
  id: number;
@@ -40,6 +42,30 @@ export class AffinityTier extends Model<AffinityTierAttributes, AffinityTierCrea
40
42
  hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
41
43
  hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
42
44
  countJukeboxSessionGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
45
+ // AffinityTier hasMany UserArtistAffinity via affinityTierId
46
+ userArtistAffinities!: UserArtistAffinity[];
47
+ getUserArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<UserArtistAffinity>;
48
+ setUserArtistAffinities!: Sequelize.HasManySetAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
49
+ addUserArtistAffinity!: Sequelize.HasManyAddAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
50
+ addUserArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
51
+ createUserArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<UserArtistAffinity>;
52
+ removeUserArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
53
+ removeUserArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
54
+ hasUserArtistAffinity!: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
55
+ hasUserArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
56
+ countUserArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
57
+ // AffinityTier hasMany UserGenreAffinity via affinityTierId
58
+ userGenreAffinities!: UserGenreAffinity[];
59
+ getUserGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<UserGenreAffinity>;
60
+ setUserGenreAffinities!: Sequelize.HasManySetAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
61
+ addUserGenreAffinity!: Sequelize.HasManyAddAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
62
+ addUserGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
63
+ createUserGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<UserGenreAffinity>;
64
+ removeUserGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
65
+ removeUserGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
66
+ hasUserGenreAffinity!: Sequelize.HasManyHasAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
67
+ hasUserGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
68
+ countUserGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
43
69
 
44
70
  static initModel(sequelize: Sequelize.Sequelize): typeof AffinityTier {
45
71
  return AffinityTier.init({
package/models/AppUser.ts CHANGED
@@ -12,9 +12,11 @@ import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUse
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
13
  import type { State, StateId } from './State';
14
14
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
15
+ import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
15
16
  import type { UserComments, UserCommentsId } from './UserComments';
16
17
  import type { UserContacts, UserContactsId } from './UserContacts';
17
18
  import type { UserEngagementFactor, UserEngagementFactorId } from './UserEngagementFactor';
19
+ import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
18
20
  import type { UserLikes, UserLikesId } from './UserLikes';
19
21
 
20
22
  export interface AppUserAttributes {
@@ -212,6 +214,18 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
212
214
  hasUserAffinity!: Sequelize.HasManyHasAssociationMixin<UserAffinity, UserAffinityId>;
213
215
  hasUserAffinities!: Sequelize.HasManyHasAssociationsMixin<UserAffinity, UserAffinityId>;
214
216
  countUserAffinities!: Sequelize.HasManyCountAssociationsMixin;
217
+ // AppUser hasMany UserArtistAffinity via userId
218
+ userArtistAffinities!: UserArtistAffinity[];
219
+ getUserArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<UserArtistAffinity>;
220
+ setUserArtistAffinities!: Sequelize.HasManySetAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
221
+ addUserArtistAffinity!: Sequelize.HasManyAddAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
222
+ addUserArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
223
+ createUserArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<UserArtistAffinity>;
224
+ removeUserArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
225
+ removeUserArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
226
+ hasUserArtistAffinity!: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
227
+ hasUserArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
228
+ countUserArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
215
229
  // AppUser hasMany UserComments via appUserId
216
230
  userComments!: UserComments[];
217
231
  getUserComments!: Sequelize.HasManyGetAssociationsMixin<UserComments>;
@@ -248,6 +262,18 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
248
262
  hasUserEngagementFactor!: Sequelize.HasManyHasAssociationMixin<UserEngagementFactor, UserEngagementFactorId>;
249
263
  hasUserEngagementFactors!: Sequelize.HasManyHasAssociationsMixin<UserEngagementFactor, UserEngagementFactorId>;
250
264
  countUserEngagementFactors!: Sequelize.HasManyCountAssociationsMixin;
265
+ // AppUser hasMany UserGenreAffinity via userId
266
+ userGenreAffinities!: UserGenreAffinity[];
267
+ getUserGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<UserGenreAffinity>;
268
+ setUserGenreAffinities!: Sequelize.HasManySetAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
269
+ addUserGenreAffinity!: Sequelize.HasManyAddAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
270
+ addUserGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
271
+ createUserGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<UserGenreAffinity>;
272
+ removeUserGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
273
+ removeUserGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
274
+ hasUserGenreAffinity!: Sequelize.HasManyHasAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
275
+ hasUserGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
276
+ countUserGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
251
277
  // AppUser hasMany UserLikes via appUserId
252
278
  userLikes!: UserLikes[];
253
279
  getUserLikes!: Sequelize.HasManyGetAssociationsMixin<UserLikes>;
@@ -11,6 +11,7 @@ import type { MerchOrchestration, MerchOrchestrationId } from './MerchOrchestrat
11
11
  import type { NewsArticle, NewsArticleId } from './NewsArticle';
12
12
  import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
13
13
  import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
14
+ import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
14
15
 
15
16
  export interface CanonArtistAttributes {
16
17
  name: string;
@@ -184,6 +185,18 @@ export class CanonArtist extends Model<CanonArtistAttributes, CanonArtistCreatio
184
185
  hasPlatformArtistIdPlatformArtist!: Sequelize.BelongsToManyHasAssociationMixin<PlatformArtist, PlatformArtistId>;
185
186
  hasPlatformArtistIdPlatformArtists!: Sequelize.BelongsToManyHasAssociationsMixin<PlatformArtist, PlatformArtistId>;
186
187
  countPlatformArtistIdPlatformArtists!: Sequelize.BelongsToManyCountAssociationsMixin;
188
+ // CanonArtist hasMany UserArtistAffinity via canonArtistId
189
+ userArtistAffinities!: UserArtistAffinity[];
190
+ getUserArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<UserArtistAffinity>;
191
+ setUserArtistAffinities!: Sequelize.HasManySetAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
192
+ addUserArtistAffinity!: Sequelize.HasManyAddAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
193
+ addUserArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
194
+ createUserArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<UserArtistAffinity>;
195
+ removeUserArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
196
+ removeUserArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
197
+ hasUserArtistAffinity!: Sequelize.HasManyHasAssociationMixin<UserArtistAffinity, UserArtistAffinityId>;
198
+ hasUserArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<UserArtistAffinity, UserArtistAffinityId>;
199
+ countUserArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
187
200
 
188
201
  static initModel(sequelize: Sequelize.Sequelize): typeof CanonArtist {
189
202
  return CanonArtist.init({
@@ -11,6 +11,7 @@ import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
11
11
  import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
12
12
  import type { PlatformGenre, PlatformGenreId } from './PlatformGenre';
13
13
  import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
14
+ import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
14
15
 
15
16
  export interface CanonGenreAttributes {
16
17
  name: string;
@@ -168,6 +169,18 @@ export class CanonGenre extends Model<CanonGenreAttributes, CanonGenreCreationAt
168
169
  hasRadioShowGenre!: Sequelize.HasManyHasAssociationMixin<RadioShowGenres, RadioShowGenresId>;
169
170
  hasRadioShowGenres!: Sequelize.HasManyHasAssociationsMixin<RadioShowGenres, RadioShowGenresId>;
170
171
  countRadioShowGenres!: Sequelize.HasManyCountAssociationsMixin;
172
+ // CanonGenre hasMany UserGenreAffinity via canonGenreId
173
+ userGenreAffinities!: UserGenreAffinity[];
174
+ getUserGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<UserGenreAffinity>;
175
+ setUserGenreAffinities!: Sequelize.HasManySetAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
176
+ addUserGenreAffinity!: Sequelize.HasManyAddAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
177
+ addUserGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
178
+ createUserGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<UserGenreAffinity>;
179
+ removeUserGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
180
+ removeUserGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
181
+ hasUserGenreAffinity!: Sequelize.HasManyHasAssociationMixin<UserGenreAffinity, UserGenreAffinityId>;
182
+ hasUserGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<UserGenreAffinity, UserGenreAffinityId>;
183
+ countUserGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
171
184
 
172
185
  static initModel(sequelize: Sequelize.Sequelize): typeof CanonGenre {
173
186
  return CanonGenre.init({
@@ -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
+ }
@@ -179,12 +179,16 @@ import { UnmatchedArtist as _UnmatchedArtist } from "./UnmatchedArtist";
179
179
  import type { UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes } from "./UnmatchedArtist";
180
180
  import { UserAffinity as _UserAffinity } from "./UserAffinity";
181
181
  import type { UserAffinityAttributes, UserAffinityCreationAttributes } from "./UserAffinity";
182
+ import { UserArtistAffinity as _UserArtistAffinity } from "./UserArtistAffinity";
183
+ import type { UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes } from "./UserArtistAffinity";
182
184
  import { UserComments as _UserComments } from "./UserComments";
183
185
  import type { UserCommentsAttributes, UserCommentsCreationAttributes } from "./UserComments";
184
186
  import { UserContacts as _UserContacts } from "./UserContacts";
185
187
  import type { UserContactsAttributes, UserContactsCreationAttributes } from "./UserContacts";
186
188
  import { UserEngagementFactor as _UserEngagementFactor } from "./UserEngagementFactor";
187
189
  import type { UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes } from "./UserEngagementFactor";
190
+ import { UserGenreAffinity as _UserGenreAffinity } from "./UserGenreAffinity";
191
+ import type { UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes } from "./UserGenreAffinity";
188
192
  import { UserLikes as _UserLikes } from "./UserLikes";
189
193
  import type { UserLikesAttributes, UserLikesCreationAttributes } from "./UserLikes";
190
194
 
@@ -279,9 +283,11 @@ export {
279
283
  _UnmatchedAlbum as UnmatchedAlbum,
280
284
  _UnmatchedArtist as UnmatchedArtist,
281
285
  _UserAffinity as UserAffinity,
286
+ _UserArtistAffinity as UserArtistAffinity,
282
287
  _UserComments as UserComments,
283
288
  _UserContacts as UserContacts,
284
289
  _UserEngagementFactor as UserEngagementFactor,
290
+ _UserGenreAffinity as UserGenreAffinity,
285
291
  _UserLikes as UserLikes,
286
292
  };
287
293
 
@@ -466,12 +472,16 @@ export type {
466
472
  UnmatchedArtistCreationAttributes,
467
473
  UserAffinityAttributes,
468
474
  UserAffinityCreationAttributes,
475
+ UserArtistAffinityAttributes,
476
+ UserArtistAffinityCreationAttributes,
469
477
  UserCommentsAttributes,
470
478
  UserCommentsCreationAttributes,
471
479
  UserContactsAttributes,
472
480
  UserContactsCreationAttributes,
473
481
  UserEngagementFactorAttributes,
474
482
  UserEngagementFactorCreationAttributes,
483
+ UserGenreAffinityAttributes,
484
+ UserGenreAffinityCreationAttributes,
475
485
  UserLikesAttributes,
476
486
  UserLikesCreationAttributes,
477
487
  };
@@ -567,9 +577,11 @@ export function initModels(sequelize: Sequelize) {
567
577
  const UnmatchedAlbum = _UnmatchedAlbum.initModel(sequelize);
568
578
  const UnmatchedArtist = _UnmatchedArtist.initModel(sequelize);
569
579
  const UserAffinity = _UserAffinity.initModel(sequelize);
580
+ const UserArtistAffinity = _UserArtistAffinity.initModel(sequelize);
570
581
  const UserComments = _UserComments.initModel(sequelize);
571
582
  const UserContacts = _UserContacts.initModel(sequelize);
572
583
  const UserEngagementFactor = _UserEngagementFactor.initModel(sequelize);
584
+ const UserGenreAffinity = _UserGenreAffinity.initModel(sequelize);
573
585
  const UserLikes = _UserLikes.initModel(sequelize);
574
586
 
575
587
  CanonAlbum.belongsToMany(CanonTrack, { as: 'canonTrackIdCanonTracks', through: CanonAlbumTrackRelation, foreignKey: "canonAlbumId", otherKey: "canonTrackId" });
@@ -622,6 +634,10 @@ export function initModels(sequelize: Sequelize) {
622
634
  AffinityTier.hasMany(JukeboxSessionArtistAffinity, { as: "jukeboxSessionArtistAffinities", foreignKey: "affinityTierId"});
623
635
  JukeboxSessionGenreAffinity.belongsTo(AffinityTier, { as: "affinityTier", foreignKey: "affinityTierId"});
624
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"});
625
641
  AppUserDevice.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
626
642
  AppUser.hasMany(AppUserDevice, { as: "appUserDevices", foreignKey: "appUserId"});
627
643
  AppUserFollowRelation.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
@@ -650,12 +666,16 @@ export function initModels(sequelize: Sequelize) {
650
666
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId"});
651
667
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
652
668
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId"});
669
+ UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
670
+ AppUser.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "userId"});
653
671
  UserComments.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
654
672
  AppUser.hasMany(UserComments, { as: "userComments", foreignKey: "appUserId"});
655
673
  UserContacts.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
656
674
  AppUser.hasMany(UserContacts, { as: "userContacts", foreignKey: "appUserId"});
657
675
  UserEngagementFactor.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
658
676
  AppUser.hasMany(UserEngagementFactor, { as: "userEngagementFactors", foreignKey: "userId"});
677
+ UserGenreAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
678
+ AppUser.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "userId"});
659
679
  UserLikes.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
660
680
  AppUser.hasMany(UserLikes, { as: "userLikes", foreignKey: "appUserId"});
661
681
  CanonAlbumExternalReferenceRelation.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId"});
@@ -682,6 +702,8 @@ export function initModels(sequelize: Sequelize) {
682
702
  CanonArtist.hasMany(MerchOrchestration, { as: "merchOrchestrations", foreignKey: "canonArtistId"});
683
703
  NewsArticle.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
684
704
  CanonArtist.hasMany(NewsArticle, { as: "newsArticles", foreignKey: "canonArtistId"});
705
+ UserArtistAffinity.belongsTo(CanonArtist, { as: "canonArtist", foreignKey: "canonArtistId"});
706
+ CanonArtist.hasMany(UserArtistAffinity, { as: "userArtistAffinities", foreignKey: "canonArtistId"});
685
707
  CanonAlbumGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
686
708
  CanonGenre.hasMany(CanonAlbumGenreRelation, { as: "canonAlbumGenreRelations", foreignKey: "canonGenreId"});
687
709
  CanonArtistGenreRelation.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
@@ -696,6 +718,8 @@ export function initModels(sequelize: Sequelize) {
696
718
  CanonGenre.hasMany(JukeboxSessionGenreAffinity, { as: "jukeboxSessionGenreAffinities", foreignKey: "canonGenreId"});
697
719
  RadioShowGenres.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
698
720
  CanonGenre.hasMany(RadioShowGenres, { as: "radioShowGenres", foreignKey: "canonGenreId"});
721
+ UserGenreAffinity.belongsTo(CanonGenre, { as: "canonGenre", foreignKey: "canonGenreId"});
722
+ CanonGenre.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "canonGenreId"});
699
723
  CanonAlbumLabelRelation.belongsTo(CanonLabel, { as: "canonLabel", foreignKey: "canonLabelId"});
700
724
  CanonLabel.hasMany(CanonAlbumLabelRelation, { as: "canonAlbumLabelRelations", foreignKey: "canonLabelId"});
701
725
  CanonLabelExternalReferenceRelation.belongsTo(CanonLabel, { as: "canonLabel", foreignKey: "canonLabelId"});
@@ -972,9 +996,11 @@ export function initModels(sequelize: Sequelize) {
972
996
  UnmatchedAlbum: UnmatchedAlbum,
973
997
  UnmatchedArtist: UnmatchedArtist,
974
998
  UserAffinity: UserAffinity,
999
+ UserArtistAffinity: UserArtistAffinity,
975
1000
  UserComments: UserComments,
976
1001
  UserContacts: UserContacts,
977
1002
  UserEngagementFactor: UserEngagementFactor,
1003
+ UserGenreAffinity: UserGenreAffinity,
978
1004
  UserLikes: UserLikes,
979
1005
  };
980
1006
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earbug/db-models",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {