@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.
- package/dist/AffinityTier.d.ts +24 -0
- package/dist/AppUser.d.ts +24 -0
- package/dist/CanonArtist.d.ts +12 -0
- package/dist/CanonGenre.d.ts +12 -0
- package/dist/UserArtistAffinity.d.ts +40 -0
- package/dist/UserArtistAffinity.js +120 -0
- package/dist/UserGenreAffinity.d.ts +40 -0
- package/dist/UserGenreAffinity.js +120 -0
- package/dist/init-models.d.ts +8 -2
- package/dist/init-models.js +21 -1
- package/models/AffinityTier.ts +26 -0
- package/models/AppUser.ts +26 -0
- package/models/CanonArtist.ts +13 -0
- package/models/CanonGenre.ts +13 -0
- package/models/UserArtistAffinity.ts +136 -0
- package/models/UserGenreAffinity.ts +136 -0
- package/models/init-models.ts +26 -0
- package/package.json +1 -1
package/dist/AffinityTier.d.ts
CHANGED
|
@@ -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>;
|
package/dist/CanonArtist.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/CanonGenre.d.ts
CHANGED
|
@@ -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;
|
package/dist/init-models.d.ts
CHANGED
|
@@ -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
|
};
|
package/dist/init-models.js
CHANGED
|
@@ -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
|
}
|
package/models/AffinityTier.ts
CHANGED
|
@@ -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>;
|
package/models/CanonArtist.ts
CHANGED
|
@@ -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({
|
package/models/CanonGenre.ts
CHANGED
|
@@ -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
|
+
}
|
package/models/init-models.ts
CHANGED
|
@@ -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
|
}
|