@earbug/db-models 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AffinityTier.d.ts +62 -0
- package/dist/AffinityTier.js +42 -0
- package/dist/AppUser.d.ts +24 -0
- package/dist/CanonArtist.d.ts +24 -0
- package/dist/CanonGenre.d.ts +24 -0
- package/dist/JukeboxSession.d.ts +24 -0
- package/dist/JukeboxSessionArtistAffinity.d.ts +40 -0
- package/dist/JukeboxSessionArtistAffinity.js +120 -0
- package/dist/JukeboxSessionGenreAffinity.d.ts +40 -0
- package/dist/JukeboxSessionGenreAffinity.js +120 -0
- package/dist/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 +17 -2
- package/dist/init-models.js +46 -2
- package/models/AffinityTier.ts +105 -0
- package/models/AppUser.ts +26 -0
- package/models/CanonArtist.ts +26 -0
- package/models/CanonGenre.ts +26 -0
- package/models/JukeboxSession.ts +26 -0
- package/models/JukeboxSessionArtistAffinity.ts +136 -0
- package/models/JukeboxSessionGenreAffinity.ts +136 -0
- package/models/UserArtistAffinity.ts +136 -0
- package/models/UserGenreAffinity.ts +136 -0
- package/models/init-models.ts +59 -0
- package/package.json +1 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
|
|
4
|
+
import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
|
|
5
|
+
import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
|
|
6
|
+
import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
|
|
7
|
+
|
|
8
|
+
export interface AffinityTierAttributes {
|
|
9
|
+
id: number;
|
|
10
|
+
name: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type AffinityTierPk = "id";
|
|
14
|
+
export type AffinityTierId = AffinityTier[AffinityTierPk];
|
|
15
|
+
export type AffinityTierCreationAttributes = AffinityTierAttributes;
|
|
16
|
+
|
|
17
|
+
export class AffinityTier extends Model<AffinityTierAttributes, AffinityTierCreationAttributes> implements AffinityTierAttributes {
|
|
18
|
+
id!: number;
|
|
19
|
+
name!: string;
|
|
20
|
+
|
|
21
|
+
// AffinityTier hasMany JukeboxSessionArtistAffinity via affinityTierId
|
|
22
|
+
jukeboxSessionArtistAffinities!: JukeboxSessionArtistAffinity[];
|
|
23
|
+
getJukeboxSessionArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionArtistAffinity>;
|
|
24
|
+
setJukeboxSessionArtistAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
25
|
+
addJukeboxSessionArtistAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
26
|
+
addJukeboxSessionArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
27
|
+
createJukeboxSessionArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionArtistAffinity>;
|
|
28
|
+
removeJukeboxSessionArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
29
|
+
removeJukeboxSessionArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
30
|
+
hasJukeboxSessionArtistAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
31
|
+
hasJukeboxSessionArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
32
|
+
countJukeboxSessionArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
33
|
+
// AffinityTier hasMany JukeboxSessionGenreAffinity via affinityTierId
|
|
34
|
+
jukeboxSessionGenreAffinities!: JukeboxSessionGenreAffinity[];
|
|
35
|
+
getJukeboxSessionGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionGenreAffinity>;
|
|
36
|
+
setJukeboxSessionGenreAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
37
|
+
addJukeboxSessionGenreAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
38
|
+
addJukeboxSessionGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
39
|
+
createJukeboxSessionGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionGenreAffinity>;
|
|
40
|
+
removeJukeboxSessionGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
41
|
+
removeJukeboxSessionGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
42
|
+
hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
43
|
+
hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
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;
|
|
69
|
+
|
|
70
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof AffinityTier {
|
|
71
|
+
return AffinityTier.init({
|
|
72
|
+
id: {
|
|
73
|
+
type: DataTypes.SMALLINT,
|
|
74
|
+
allowNull: false,
|
|
75
|
+
primaryKey: true
|
|
76
|
+
},
|
|
77
|
+
name: {
|
|
78
|
+
type: DataTypes.STRING(32),
|
|
79
|
+
allowNull: false,
|
|
80
|
+
unique: "affinity_tier_name_unique"
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
sequelize,
|
|
84
|
+
tableName: 'affinity_tier',
|
|
85
|
+
schema: 'eb',
|
|
86
|
+
timestamps: false,
|
|
87
|
+
indexes: [
|
|
88
|
+
{
|
|
89
|
+
name: "affinity_tier_name_unique",
|
|
90
|
+
unique: true,
|
|
91
|
+
fields: [
|
|
92
|
+
{ name: "name" },
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: "affinity_tier_pkey",
|
|
97
|
+
unique: true,
|
|
98
|
+
fields: [
|
|
99
|
+
{ name: "id" },
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
]
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
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
|
@@ -5,11 +5,13 @@ import type { CanonArtistImageHarvested, CanonArtistImageHarvestedId } from './C
|
|
|
5
5
|
import type { CanonArtistTrackRelation, CanonArtistTrackRelationId } from './CanonArtistTrackRelation';
|
|
6
6
|
import type { CanonToPlatformArtistRelation, CanonToPlatformArtistRelationId } from './CanonToPlatformArtistRelation';
|
|
7
7
|
import type { CanonTrack, CanonTrackId } from './CanonTrack';
|
|
8
|
+
import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
|
|
8
9
|
import type { MerchItem, MerchItemId } from './MerchItem';
|
|
9
10
|
import type { MerchOrchestration, MerchOrchestrationId } from './MerchOrchestration';
|
|
10
11
|
import type { NewsArticle, NewsArticleId } from './NewsArticle';
|
|
11
12
|
import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
|
|
12
13
|
import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
|
|
14
|
+
import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
|
|
13
15
|
|
|
14
16
|
export interface CanonArtistAttributes {
|
|
15
17
|
name: string;
|
|
@@ -111,6 +113,18 @@ export class CanonArtist extends Model<CanonArtistAttributes, CanonArtistCreatio
|
|
|
111
113
|
hasCanonTrackIdCanonTrackCanonArtistTrackRelation!: Sequelize.BelongsToManyHasAssociationMixin<CanonTrack, CanonTrackId>;
|
|
112
114
|
hasCanonTrackIdCanonTrackCanonArtistTrackRelations!: Sequelize.BelongsToManyHasAssociationsMixin<CanonTrack, CanonTrackId>;
|
|
113
115
|
countCanonTrackIdCanonTrackCanonArtistTrackRelations!: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
116
|
+
// CanonArtist hasMany JukeboxSessionArtistAffinity via canonArtistId
|
|
117
|
+
jukeboxSessionArtistAffinities!: JukeboxSessionArtistAffinity[];
|
|
118
|
+
getJukeboxSessionArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionArtistAffinity>;
|
|
119
|
+
setJukeboxSessionArtistAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
120
|
+
addJukeboxSessionArtistAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
121
|
+
addJukeboxSessionArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
122
|
+
createJukeboxSessionArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionArtistAffinity>;
|
|
123
|
+
removeJukeboxSessionArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
124
|
+
removeJukeboxSessionArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
125
|
+
hasJukeboxSessionArtistAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
126
|
+
hasJukeboxSessionArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
127
|
+
countJukeboxSessionArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
114
128
|
// CanonArtist hasMany MerchItem via canonArtistId
|
|
115
129
|
merchItems!: MerchItem[];
|
|
116
130
|
getMerchItems!: Sequelize.HasManyGetAssociationsMixin<MerchItem>;
|
|
@@ -171,6 +185,18 @@ export class CanonArtist extends Model<CanonArtistAttributes, CanonArtistCreatio
|
|
|
171
185
|
hasPlatformArtistIdPlatformArtist!: Sequelize.BelongsToManyHasAssociationMixin<PlatformArtist, PlatformArtistId>;
|
|
172
186
|
hasPlatformArtistIdPlatformArtists!: Sequelize.BelongsToManyHasAssociationsMixin<PlatformArtist, PlatformArtistId>;
|
|
173
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;
|
|
174
200
|
|
|
175
201
|
static initModel(sequelize: Sequelize.Sequelize): typeof CanonArtist {
|
|
176
202
|
return CanonArtist.init({
|
package/models/CanonGenre.ts
CHANGED
|
@@ -6,10 +6,12 @@ import type { CanonGenreExternalReferenceRelation, CanonGenreExternalReferenceRe
|
|
|
6
6
|
import type { CanonToPlatformGenreRelation, CanonToPlatformGenreRelationId } from './CanonToPlatformGenreRelation';
|
|
7
7
|
import type { ExternalReference, ExternalReferenceId } from './ExternalReference';
|
|
8
8
|
import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './JukeboxCanonGenreRelation';
|
|
9
|
+
import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
|
|
9
10
|
import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
|
|
10
11
|
import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
|
|
11
12
|
import type { PlatformGenre, PlatformGenreId } from './PlatformGenre';
|
|
12
13
|
import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
|
|
14
|
+
import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
|
|
13
15
|
|
|
14
16
|
export interface CanonGenreAttributes {
|
|
15
17
|
name: string;
|
|
@@ -107,6 +109,18 @@ export class CanonGenre extends Model<CanonGenreAttributes, CanonGenreCreationAt
|
|
|
107
109
|
hasJukeboxCanonGenreRelation!: Sequelize.HasManyHasAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
|
|
108
110
|
hasJukeboxCanonGenreRelations!: Sequelize.HasManyHasAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
|
|
109
111
|
countJukeboxCanonGenreRelations!: Sequelize.HasManyCountAssociationsMixin;
|
|
112
|
+
// CanonGenre hasMany JukeboxSessionGenreAffinity via canonGenreId
|
|
113
|
+
jukeboxSessionGenreAffinities!: JukeboxSessionGenreAffinity[];
|
|
114
|
+
getJukeboxSessionGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionGenreAffinity>;
|
|
115
|
+
setJukeboxSessionGenreAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
116
|
+
addJukeboxSessionGenreAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
117
|
+
addJukeboxSessionGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
118
|
+
createJukeboxSessionGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionGenreAffinity>;
|
|
119
|
+
removeJukeboxSessionGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
120
|
+
removeJukeboxSessionGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
121
|
+
hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
122
|
+
hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
123
|
+
countJukeboxSessionGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
110
124
|
// CanonGenre belongsToMany PlatformAlbum via canonGenreId and canonAlbumId
|
|
111
125
|
canonAlbumIdPlatformAlbums!: PlatformAlbum[];
|
|
112
126
|
getCanonAlbumIdPlatformAlbums!: Sequelize.BelongsToManyGetAssociationsMixin<PlatformAlbum>;
|
|
@@ -155,6 +169,18 @@ export class CanonGenre extends Model<CanonGenreAttributes, CanonGenreCreationAt
|
|
|
155
169
|
hasRadioShowGenre!: Sequelize.HasManyHasAssociationMixin<RadioShowGenres, RadioShowGenresId>;
|
|
156
170
|
hasRadioShowGenres!: Sequelize.HasManyHasAssociationsMixin<RadioShowGenres, RadioShowGenresId>;
|
|
157
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;
|
|
158
184
|
|
|
159
185
|
static initModel(sequelize: Sequelize.Sequelize): typeof CanonGenre {
|
|
160
186
|
return CanonGenre.init({
|
package/models/JukeboxSession.ts
CHANGED
|
@@ -6,6 +6,8 @@ import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './J
|
|
|
6
6
|
import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
|
|
7
7
|
import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
|
|
8
8
|
import type { JukeboxQueueMode, JukeboxQueueModeId } from './JukeboxQueueMode';
|
|
9
|
+
import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
|
|
10
|
+
import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
|
|
9
11
|
import type { JukeboxStatus, JukeboxStatusId } from './JukeboxStatus';
|
|
10
12
|
import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from './JukeboxTerminationCondition';
|
|
11
13
|
import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
|
|
@@ -106,6 +108,30 @@ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessi
|
|
|
106
108
|
hasJukeboxQueueEntry!: Sequelize.HasManyHasAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
|
|
107
109
|
hasJukeboxQueueEntries!: Sequelize.HasManyHasAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
|
|
108
110
|
countJukeboxQueueEntries!: Sequelize.HasManyCountAssociationsMixin;
|
|
111
|
+
// JukeboxSession hasMany JukeboxSessionArtistAffinity via jukeboxSessionId
|
|
112
|
+
jukeboxSessionArtistAffinities!: JukeboxSessionArtistAffinity[];
|
|
113
|
+
getJukeboxSessionArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionArtistAffinity>;
|
|
114
|
+
setJukeboxSessionArtistAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
115
|
+
addJukeboxSessionArtistAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
116
|
+
addJukeboxSessionArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
117
|
+
createJukeboxSessionArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionArtistAffinity>;
|
|
118
|
+
removeJukeboxSessionArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
119
|
+
removeJukeboxSessionArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
120
|
+
hasJukeboxSessionArtistAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
121
|
+
hasJukeboxSessionArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
|
|
122
|
+
countJukeboxSessionArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
123
|
+
// JukeboxSession hasMany JukeboxSessionGenreAffinity via jukeboxSessionId
|
|
124
|
+
jukeboxSessionGenreAffinities!: JukeboxSessionGenreAffinity[];
|
|
125
|
+
getJukeboxSessionGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionGenreAffinity>;
|
|
126
|
+
setJukeboxSessionGenreAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
127
|
+
addJukeboxSessionGenreAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
128
|
+
addJukeboxSessionGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
129
|
+
createJukeboxSessionGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionGenreAffinity>;
|
|
130
|
+
removeJukeboxSessionGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
131
|
+
removeJukeboxSessionGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
132
|
+
hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
133
|
+
hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
|
|
134
|
+
countJukeboxSessionGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
|
|
109
135
|
// JukeboxSession hasMany JukeboxUser via jukeboxSessionId
|
|
110
136
|
jukeboxUsers!: JukeboxUser[];
|
|
111
137
|
getJukeboxUsers!: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AffinityTier, AffinityTierId } from './AffinityTier';
|
|
4
|
+
import type { CanonArtist, CanonArtistId } from './CanonArtist';
|
|
5
|
+
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
6
|
+
|
|
7
|
+
export interface JukeboxSessionArtistAffinityAttributes {
|
|
8
|
+
jukeboxSessionId: string;
|
|
9
|
+
canonArtistId: string;
|
|
10
|
+
affinityTierId: number;
|
|
11
|
+
rank: number;
|
|
12
|
+
id: string;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
updatedAt: Date;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type JukeboxSessionArtistAffinityPk = "id";
|
|
18
|
+
export type JukeboxSessionArtistAffinityId = JukeboxSessionArtistAffinity[JukeboxSessionArtistAffinityPk];
|
|
19
|
+
export type JukeboxSessionArtistAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
|
|
20
|
+
export type JukeboxSessionArtistAffinityCreationAttributes = Optional<JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityOptionalAttributes>;
|
|
21
|
+
|
|
22
|
+
export class JukeboxSessionArtistAffinity extends Model<JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes> implements JukeboxSessionArtistAffinityAttributes {
|
|
23
|
+
jukeboxSessionId!: string;
|
|
24
|
+
canonArtistId!: string;
|
|
25
|
+
affinityTierId!: number;
|
|
26
|
+
rank!: number;
|
|
27
|
+
id!: string;
|
|
28
|
+
createdAt!: Date;
|
|
29
|
+
updatedAt!: Date;
|
|
30
|
+
|
|
31
|
+
// JukeboxSessionArtistAffinity belongsTo AffinityTier via affinityTierId
|
|
32
|
+
affinityTier!: AffinityTier;
|
|
33
|
+
getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
|
|
34
|
+
setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
|
|
35
|
+
createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
|
|
36
|
+
// JukeboxSessionArtistAffinity belongsTo CanonArtist via canonArtistId
|
|
37
|
+
canonArtist!: CanonArtist;
|
|
38
|
+
getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
|
|
39
|
+
setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
|
|
40
|
+
createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
|
|
41
|
+
// JukeboxSessionArtistAffinity belongsTo JukeboxSession via jukeboxSessionId
|
|
42
|
+
jukeboxSession!: JukeboxSession;
|
|
43
|
+
getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
|
44
|
+
setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
|
|
45
|
+
createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
|
|
46
|
+
|
|
47
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSessionArtistAffinity {
|
|
48
|
+
return JukeboxSessionArtistAffinity.init({
|
|
49
|
+
jukeboxSessionId: {
|
|
50
|
+
type: DataTypes.UUID,
|
|
51
|
+
allowNull: false,
|
|
52
|
+
references: {
|
|
53
|
+
model: 'jukebox_session',
|
|
54
|
+
key: 'id'
|
|
55
|
+
},
|
|
56
|
+
unique: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
|
|
57
|
+
field: 'jukebox_session_id'
|
|
58
|
+
},
|
|
59
|
+
canonArtistId: {
|
|
60
|
+
type: DataTypes.UUID,
|
|
61
|
+
allowNull: false,
|
|
62
|
+
references: {
|
|
63
|
+
model: 'canon_artist',
|
|
64
|
+
key: 'id'
|
|
65
|
+
},
|
|
66
|
+
unique: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
|
|
67
|
+
field: 'canon_artist_id'
|
|
68
|
+
},
|
|
69
|
+
affinityTierId: {
|
|
70
|
+
type: DataTypes.SMALLINT,
|
|
71
|
+
allowNull: false,
|
|
72
|
+
references: {
|
|
73
|
+
model: 'affinity_tier',
|
|
74
|
+
key: 'id'
|
|
75
|
+
},
|
|
76
|
+
field: 'affinity_tier_id'
|
|
77
|
+
},
|
|
78
|
+
rank: {
|
|
79
|
+
type: DataTypes.INTEGER,
|
|
80
|
+
allowNull: false
|
|
81
|
+
},
|
|
82
|
+
id: {
|
|
83
|
+
type: DataTypes.UUID,
|
|
84
|
+
allowNull: false,
|
|
85
|
+
defaultValue: DataTypes.UUIDV4,
|
|
86
|
+
primaryKey: true
|
|
87
|
+
},
|
|
88
|
+
createdAt: {
|
|
89
|
+
type: DataTypes.DATE,
|
|
90
|
+
allowNull: false,
|
|
91
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
92
|
+
field: 'created_at'
|
|
93
|
+
},
|
|
94
|
+
updatedAt: {
|
|
95
|
+
type: DataTypes.DATE,
|
|
96
|
+
allowNull: false,
|
|
97
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
98
|
+
field: 'updated_at'
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
sequelize,
|
|
102
|
+
tableName: 'jukebox_session_artist_affinity',
|
|
103
|
+
schema: 'eb',
|
|
104
|
+
timestamps: false,
|
|
105
|
+
indexes: [
|
|
106
|
+
{
|
|
107
|
+
name: "idx_jukebox_session_artist_affinity_artist",
|
|
108
|
+
fields: [
|
|
109
|
+
{ name: "canon_artist_id" },
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "idx_jukebox_session_artist_affinity_session",
|
|
114
|
+
fields: [
|
|
115
|
+
{ name: "jukebox_session_id" },
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
|
|
120
|
+
unique: true,
|
|
121
|
+
fields: [
|
|
122
|
+
{ name: "jukebox_session_id" },
|
|
123
|
+
{ name: "canon_artist_id" },
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "jukebox_session_artist_affinity_pkey",
|
|
128
|
+
unique: true,
|
|
129
|
+
fields: [
|
|
130
|
+
{ name: "id" },
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AffinityTier, AffinityTierId } from './AffinityTier';
|
|
4
|
+
import type { CanonGenre, CanonGenreId } from './CanonGenre';
|
|
5
|
+
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
6
|
+
|
|
7
|
+
export interface JukeboxSessionGenreAffinityAttributes {
|
|
8
|
+
jukeboxSessionId: string;
|
|
9
|
+
canonGenreId: string;
|
|
10
|
+
affinityTierId: number;
|
|
11
|
+
rank: number;
|
|
12
|
+
id: string;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
updatedAt: Date;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type JukeboxSessionGenreAffinityPk = "id";
|
|
18
|
+
export type JukeboxSessionGenreAffinityId = JukeboxSessionGenreAffinity[JukeboxSessionGenreAffinityPk];
|
|
19
|
+
export type JukeboxSessionGenreAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
|
|
20
|
+
export type JukeboxSessionGenreAffinityCreationAttributes = Optional<JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityOptionalAttributes>;
|
|
21
|
+
|
|
22
|
+
export class JukeboxSessionGenreAffinity extends Model<JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes> implements JukeboxSessionGenreAffinityAttributes {
|
|
23
|
+
jukeboxSessionId!: string;
|
|
24
|
+
canonGenreId!: string;
|
|
25
|
+
affinityTierId!: number;
|
|
26
|
+
rank!: number;
|
|
27
|
+
id!: string;
|
|
28
|
+
createdAt!: Date;
|
|
29
|
+
updatedAt!: Date;
|
|
30
|
+
|
|
31
|
+
// JukeboxSessionGenreAffinity belongsTo AffinityTier via affinityTierId
|
|
32
|
+
affinityTier!: AffinityTier;
|
|
33
|
+
getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
|
|
34
|
+
setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
|
|
35
|
+
createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
|
|
36
|
+
// JukeboxSessionGenreAffinity belongsTo CanonGenre via canonGenreId
|
|
37
|
+
canonGenre!: CanonGenre;
|
|
38
|
+
getCanonGenre!: Sequelize.BelongsToGetAssociationMixin<CanonGenre>;
|
|
39
|
+
setCanonGenre!: Sequelize.BelongsToSetAssociationMixin<CanonGenre, CanonGenreId>;
|
|
40
|
+
createCanonGenre!: Sequelize.BelongsToCreateAssociationMixin<CanonGenre>;
|
|
41
|
+
// JukeboxSessionGenreAffinity belongsTo JukeboxSession via jukeboxSessionId
|
|
42
|
+
jukeboxSession!: JukeboxSession;
|
|
43
|
+
getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
|
44
|
+
setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
|
|
45
|
+
createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
|
|
46
|
+
|
|
47
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSessionGenreAffinity {
|
|
48
|
+
return JukeboxSessionGenreAffinity.init({
|
|
49
|
+
jukeboxSessionId: {
|
|
50
|
+
type: DataTypes.UUID,
|
|
51
|
+
allowNull: false,
|
|
52
|
+
references: {
|
|
53
|
+
model: 'jukebox_session',
|
|
54
|
+
key: 'id'
|
|
55
|
+
},
|
|
56
|
+
unique: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
|
|
57
|
+
field: 'jukebox_session_id'
|
|
58
|
+
},
|
|
59
|
+
canonGenreId: {
|
|
60
|
+
type: DataTypes.UUID,
|
|
61
|
+
allowNull: false,
|
|
62
|
+
references: {
|
|
63
|
+
model: 'canon_genre',
|
|
64
|
+
key: 'id'
|
|
65
|
+
},
|
|
66
|
+
unique: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
|
|
67
|
+
field: 'canon_genre_id'
|
|
68
|
+
},
|
|
69
|
+
affinityTierId: {
|
|
70
|
+
type: DataTypes.SMALLINT,
|
|
71
|
+
allowNull: false,
|
|
72
|
+
references: {
|
|
73
|
+
model: 'affinity_tier',
|
|
74
|
+
key: 'id'
|
|
75
|
+
},
|
|
76
|
+
field: 'affinity_tier_id'
|
|
77
|
+
},
|
|
78
|
+
rank: {
|
|
79
|
+
type: DataTypes.INTEGER,
|
|
80
|
+
allowNull: false
|
|
81
|
+
},
|
|
82
|
+
id: {
|
|
83
|
+
type: DataTypes.UUID,
|
|
84
|
+
allowNull: false,
|
|
85
|
+
defaultValue: DataTypes.UUIDV4,
|
|
86
|
+
primaryKey: true
|
|
87
|
+
},
|
|
88
|
+
createdAt: {
|
|
89
|
+
type: DataTypes.DATE,
|
|
90
|
+
allowNull: false,
|
|
91
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
92
|
+
field: 'created_at'
|
|
93
|
+
},
|
|
94
|
+
updatedAt: {
|
|
95
|
+
type: DataTypes.DATE,
|
|
96
|
+
allowNull: false,
|
|
97
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
98
|
+
field: 'updated_at'
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
sequelize,
|
|
102
|
+
tableName: 'jukebox_session_genre_affinity',
|
|
103
|
+
schema: 'eb',
|
|
104
|
+
timestamps: false,
|
|
105
|
+
indexes: [
|
|
106
|
+
{
|
|
107
|
+
name: "idx_jukebox_session_genre_affinity_genre",
|
|
108
|
+
fields: [
|
|
109
|
+
{ name: "canon_genre_id" },
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "idx_jukebox_session_genre_affinity_session",
|
|
114
|
+
fields: [
|
|
115
|
+
{ name: "jukebox_session_id" },
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
|
|
120
|
+
unique: true,
|
|
121
|
+
fields: [
|
|
122
|
+
{ name: "jukebox_session_id" },
|
|
123
|
+
{ name: "canon_genre_id" },
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "jukebox_session_genre_affinity_pkey",
|
|
128
|
+
unique: true,
|
|
129
|
+
fields: [
|
|
130
|
+
{ name: "id" },
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|