@earbug/db-models 0.0.44 → 0.0.46
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/AppUser.d.ts +23 -1
- package/dist/AppUser.js +25 -0
- package/dist/GuestUser.d.ts +12 -0
- package/dist/VersusOption.d.ts +17 -1
- package/dist/VersusOption.js +30 -0
- package/dist/init-models.js +4 -0
- package/models/AppUser.ts +49 -1
- package/models/GuestUser.ts +13 -0
- package/models/VersusOption.ts +49 -1
- package/models/init-models.ts +4 -0
- package/package.json +1 -1
package/dist/AppUser.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ import type { UserLikes, UserLikesId } from './UserLikes';
|
|
|
23
23
|
import type { UserMessages, UserMessagesId } from './UserMessages';
|
|
24
24
|
import type { Versus, VersusId } from './Versus';
|
|
25
25
|
import type { VersusCoCreator, VersusCoCreatorId } from './VersusCoCreator';
|
|
26
|
+
import type { VersusOption, VersusOptionId } from './VersusOption';
|
|
26
27
|
export interface AppUserAttributes {
|
|
27
28
|
email: string;
|
|
28
29
|
firstName: string;
|
|
@@ -36,10 +37,15 @@ export interface AppUserAttributes {
|
|
|
36
37
|
lastHarvested?: Date;
|
|
37
38
|
lastHarvestedError?: string;
|
|
38
39
|
earbugAccessControlPreference: string;
|
|
40
|
+
unsubscribeAll?: Date;
|
|
41
|
+
unsubscribeBiweeklyEmail?: Date;
|
|
42
|
+
unsubscribeFollowingNotifications?: Date;
|
|
43
|
+
unsubscribeInterestNotifications?: Date;
|
|
44
|
+
unsubscribeFunNotifications?: Date;
|
|
39
45
|
}
|
|
40
46
|
export type AppUserPk = "id";
|
|
41
47
|
export type AppUserId = AppUser[AppUserPk];
|
|
42
|
-
export type AppUserOptionalAttributes = "id" | "createDate" | "updateDate" | "syncContacts" | "stateId" | "lastName" | "autoApproveFollowers" | "lastHarvested" | "lastHarvestedError" | "earbugAccessControlPreference";
|
|
48
|
+
export type AppUserOptionalAttributes = "id" | "createDate" | "updateDate" | "syncContacts" | "stateId" | "lastName" | "autoApproveFollowers" | "lastHarvested" | "lastHarvestedError" | "earbugAccessControlPreference" | "unsubscribeAll" | "unsubscribeBiweeklyEmail" | "unsubscribeFollowingNotifications" | "unsubscribeInterestNotifications" | "unsubscribeFunNotifications";
|
|
43
49
|
export type AppUserCreationAttributes = Optional<AppUserAttributes, AppUserOptionalAttributes>;
|
|
44
50
|
export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes> implements AppUserAttributes {
|
|
45
51
|
email: string;
|
|
@@ -54,6 +60,11 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
|
|
|
54
60
|
lastHarvested?: Date;
|
|
55
61
|
lastHarvestedError?: string;
|
|
56
62
|
earbugAccessControlPreference: string;
|
|
63
|
+
unsubscribeAll?: Date;
|
|
64
|
+
unsubscribeBiweeklyEmail?: Date;
|
|
65
|
+
unsubscribeFollowingNotifications?: Date;
|
|
66
|
+
unsubscribeInterestNotifications?: Date;
|
|
67
|
+
unsubscribeFunNotifications?: Date;
|
|
57
68
|
appUserDevices: AppUserDevice[];
|
|
58
69
|
getAppUserDevices: Sequelize.HasManyGetAssociationsMixin<AppUserDevice>;
|
|
59
70
|
setAppUserDevices: Sequelize.HasManySetAssociationsMixin<AppUserDevice, AppUserDeviceId>;
|
|
@@ -333,6 +344,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
|
|
|
333
344
|
hasVersusCoCreator: Sequelize.HasManyHasAssociationMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
334
345
|
hasVersusCoCreators: Sequelize.HasManyHasAssociationsMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
335
346
|
countVersusCoCreators: Sequelize.HasManyCountAssociationsMixin;
|
|
347
|
+
versusOptions: VersusOption[];
|
|
348
|
+
getVersusOptions: Sequelize.HasManyGetAssociationsMixin<VersusOption>;
|
|
349
|
+
setVersusOptions: Sequelize.HasManySetAssociationsMixin<VersusOption, VersusOptionId>;
|
|
350
|
+
addVersusOption: Sequelize.HasManyAddAssociationMixin<VersusOption, VersusOptionId>;
|
|
351
|
+
addVersusOptions: Sequelize.HasManyAddAssociationsMixin<VersusOption, VersusOptionId>;
|
|
352
|
+
createVersusOption: Sequelize.HasManyCreateAssociationMixin<VersusOption>;
|
|
353
|
+
removeVersusOption: Sequelize.HasManyRemoveAssociationMixin<VersusOption, VersusOptionId>;
|
|
354
|
+
removeVersusOptions: Sequelize.HasManyRemoveAssociationsMixin<VersusOption, VersusOptionId>;
|
|
355
|
+
hasVersusOption: Sequelize.HasManyHasAssociationMixin<VersusOption, VersusOptionId>;
|
|
356
|
+
hasVersusOptions: Sequelize.HasManyHasAssociationsMixin<VersusOption, VersusOptionId>;
|
|
357
|
+
countVersusOptions: Sequelize.HasManyCountAssociationsMixin;
|
|
336
358
|
state: State;
|
|
337
359
|
getState: Sequelize.BelongsToGetAssociationMixin<State>;
|
|
338
360
|
setState: Sequelize.BelongsToSetAssociationMixin<State, StateId>;
|
package/dist/AppUser.js
CHANGED
|
@@ -99,6 +99,31 @@ class AppUser extends sequelize_1.Model {
|
|
|
99
99
|
allowNull: false,
|
|
100
100
|
defaultValue: "PUBLIC",
|
|
101
101
|
field: 'earbug_access_control_preference'
|
|
102
|
+
},
|
|
103
|
+
unsubscribeAll: {
|
|
104
|
+
type: sequelize_1.DataTypes.DATE,
|
|
105
|
+
allowNull: true,
|
|
106
|
+
field: 'unsubscribe_all'
|
|
107
|
+
},
|
|
108
|
+
unsubscribeBiweeklyEmail: {
|
|
109
|
+
type: sequelize_1.DataTypes.DATE,
|
|
110
|
+
allowNull: true,
|
|
111
|
+
field: 'unsubscribe_biweekly_email'
|
|
112
|
+
},
|
|
113
|
+
unsubscribeFollowingNotifications: {
|
|
114
|
+
type: sequelize_1.DataTypes.DATE,
|
|
115
|
+
allowNull: true,
|
|
116
|
+
field: 'unsubscribe_following_notifications'
|
|
117
|
+
},
|
|
118
|
+
unsubscribeInterestNotifications: {
|
|
119
|
+
type: sequelize_1.DataTypes.DATE,
|
|
120
|
+
allowNull: true,
|
|
121
|
+
field: 'unsubscribe_interest_notifications'
|
|
122
|
+
},
|
|
123
|
+
unsubscribeFunNotifications: {
|
|
124
|
+
type: sequelize_1.DataTypes.DATE,
|
|
125
|
+
allowNull: true,
|
|
126
|
+
field: 'unsubscribe_fun_notifications'
|
|
102
127
|
}
|
|
103
128
|
}, {
|
|
104
129
|
sequelize,
|
package/dist/GuestUser.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry
|
|
|
4
4
|
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
5
5
|
import type { Versus, VersusId } from './Versus';
|
|
6
6
|
import type { VersusCoCreator, VersusCoCreatorId } from './VersusCoCreator';
|
|
7
|
+
import type { VersusOption, VersusOptionId } from './VersusOption';
|
|
7
8
|
export interface GuestUserAttributes {
|
|
8
9
|
jukeboxSessionId?: string;
|
|
9
10
|
firstName: string;
|
|
@@ -49,6 +50,17 @@ export declare class GuestUser extends Model<GuestUserAttributes, GuestUserCreat
|
|
|
49
50
|
hasVersusCoCreator: Sequelize.HasManyHasAssociationMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
50
51
|
hasVersusCoCreators: Sequelize.HasManyHasAssociationsMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
51
52
|
countVersusCoCreators: Sequelize.HasManyCountAssociationsMixin;
|
|
53
|
+
versusOptions: VersusOption[];
|
|
54
|
+
getVersusOptions: Sequelize.HasManyGetAssociationsMixin<VersusOption>;
|
|
55
|
+
setVersusOptions: Sequelize.HasManySetAssociationsMixin<VersusOption, VersusOptionId>;
|
|
56
|
+
addVersusOption: Sequelize.HasManyAddAssociationMixin<VersusOption, VersusOptionId>;
|
|
57
|
+
addVersusOptions: Sequelize.HasManyAddAssociationsMixin<VersusOption, VersusOptionId>;
|
|
58
|
+
createVersusOption: Sequelize.HasManyCreateAssociationMixin<VersusOption>;
|
|
59
|
+
removeVersusOption: Sequelize.HasManyRemoveAssociationMixin<VersusOption, VersusOptionId>;
|
|
60
|
+
removeVersusOptions: Sequelize.HasManyRemoveAssociationsMixin<VersusOption, VersusOptionId>;
|
|
61
|
+
hasVersusOption: Sequelize.HasManyHasAssociationMixin<VersusOption, VersusOptionId>;
|
|
62
|
+
hasVersusOptions: Sequelize.HasManyHasAssociationsMixin<VersusOption, VersusOptionId>;
|
|
63
|
+
countVersusOptions: Sequelize.HasManyCountAssociationsMixin;
|
|
52
64
|
jukeboxSession: JukeboxSession;
|
|
53
65
|
getJukeboxSession: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
|
54
66
|
setJukeboxSession: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
|
package/dist/VersusOption.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AppUser, AppUserId } from './AppUser';
|
|
3
4
|
import type { CanonAlbum, CanonAlbumId } from './CanonAlbum';
|
|
4
5
|
import type { CanonArtist, CanonArtistId } from './CanonArtist';
|
|
5
6
|
import type { CanonTrack, CanonTrackId } from './CanonTrack';
|
|
7
|
+
import type { GuestUser, GuestUserId } from './GuestUser';
|
|
6
8
|
import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
|
|
7
9
|
import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
|
|
8
10
|
import type { PlatformTrack, PlatformTrackId } from './PlatformTrack';
|
|
@@ -23,10 +25,13 @@ export interface VersusOptionAttributes {
|
|
|
23
25
|
id: string;
|
|
24
26
|
createdAt: Date;
|
|
25
27
|
updatedAt: Date;
|
|
28
|
+
deleted: boolean;
|
|
29
|
+
appUserId?: string;
|
|
30
|
+
guestUserId?: string;
|
|
26
31
|
}
|
|
27
32
|
export type VersusOptionPk = "id";
|
|
28
33
|
export type VersusOptionId = VersusOption[VersusOptionPk];
|
|
29
|
-
export type VersusOptionOptionalAttributes = "canonTrackId" | "platformTrackId" | "canonAlbumId" | "platformAlbumId" | "canonArtistId" | "platformArtistId" | "voteScore" | "resultsScore" | "id" | "createdAt" | "updatedAt";
|
|
34
|
+
export type VersusOptionOptionalAttributes = "canonTrackId" | "platformTrackId" | "canonAlbumId" | "platformAlbumId" | "canonArtistId" | "platformArtistId" | "voteScore" | "resultsScore" | "id" | "createdAt" | "updatedAt" | "appUserId" | "guestUserId";
|
|
30
35
|
export type VersusOptionCreationAttributes = Optional<VersusOptionAttributes, VersusOptionOptionalAttributes>;
|
|
31
36
|
export declare class VersusOption extends Model<VersusOptionAttributes, VersusOptionCreationAttributes> implements VersusOptionAttributes {
|
|
32
37
|
versusId: string;
|
|
@@ -43,6 +48,13 @@ export declare class VersusOption extends Model<VersusOptionAttributes, VersusOp
|
|
|
43
48
|
id: string;
|
|
44
49
|
createdAt: Date;
|
|
45
50
|
updatedAt: Date;
|
|
51
|
+
deleted: boolean;
|
|
52
|
+
appUserId?: string;
|
|
53
|
+
guestUserId?: string;
|
|
54
|
+
appUser: AppUser;
|
|
55
|
+
getAppUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
56
|
+
setAppUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
57
|
+
createAppUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
46
58
|
canonAlbum: CanonAlbum;
|
|
47
59
|
getCanonAlbum: Sequelize.BelongsToGetAssociationMixin<CanonAlbum>;
|
|
48
60
|
setCanonAlbum: Sequelize.BelongsToSetAssociationMixin<CanonAlbum, CanonAlbumId>;
|
|
@@ -55,6 +67,10 @@ export declare class VersusOption extends Model<VersusOptionAttributes, VersusOp
|
|
|
55
67
|
getCanonTrack: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
|
|
56
68
|
setCanonTrack: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
|
|
57
69
|
createCanonTrack: Sequelize.BelongsToCreateAssociationMixin<CanonTrack>;
|
|
70
|
+
guestUser: GuestUser;
|
|
71
|
+
getGuestUser: Sequelize.BelongsToGetAssociationMixin<GuestUser>;
|
|
72
|
+
setGuestUser: Sequelize.BelongsToSetAssociationMixin<GuestUser, GuestUserId>;
|
|
73
|
+
createGuestUser: Sequelize.BelongsToCreateAssociationMixin<GuestUser>;
|
|
58
74
|
platformAlbum: PlatformAlbum;
|
|
59
75
|
getPlatformAlbum: Sequelize.BelongsToGetAssociationMixin<PlatformAlbum>;
|
|
60
76
|
setPlatformAlbum: Sequelize.BelongsToSetAssociationMixin<PlatformAlbum, PlatformAlbumId>;
|
package/dist/VersusOption.js
CHANGED
|
@@ -133,6 +133,29 @@ class VersusOption extends sequelize_1.Model {
|
|
|
133
133
|
allowNull: false,
|
|
134
134
|
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
135
135
|
field: 'updated_at'
|
|
136
|
+
},
|
|
137
|
+
deleted: {
|
|
138
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
139
|
+
allowNull: false,
|
|
140
|
+
defaultValue: false
|
|
141
|
+
},
|
|
142
|
+
appUserId: {
|
|
143
|
+
type: sequelize_1.DataTypes.UUID,
|
|
144
|
+
allowNull: true,
|
|
145
|
+
references: {
|
|
146
|
+
model: 'app_user',
|
|
147
|
+
key: 'id'
|
|
148
|
+
},
|
|
149
|
+
field: 'app_user_id'
|
|
150
|
+
},
|
|
151
|
+
guestUserId: {
|
|
152
|
+
type: sequelize_1.DataTypes.UUID,
|
|
153
|
+
allowNull: true,
|
|
154
|
+
references: {
|
|
155
|
+
model: 'guest_user',
|
|
156
|
+
key: 'id'
|
|
157
|
+
},
|
|
158
|
+
field: 'guest_user_id'
|
|
136
159
|
}
|
|
137
160
|
}, {
|
|
138
161
|
sequelize,
|
|
@@ -146,6 +169,13 @@ class VersusOption extends sequelize_1.Model {
|
|
|
146
169
|
{ name: "versus_id" },
|
|
147
170
|
]
|
|
148
171
|
},
|
|
172
|
+
{
|
|
173
|
+
name: "idx_versus_option_versus_deleted",
|
|
174
|
+
fields: [
|
|
175
|
+
{ name: "versus_id" },
|
|
176
|
+
{ name: "deleted" },
|
|
177
|
+
]
|
|
178
|
+
},
|
|
149
179
|
{
|
|
150
180
|
name: "idx_versus_option_versus_sort",
|
|
151
181
|
fields: [
|
package/dist/init-models.js
CHANGED
|
@@ -460,6 +460,8 @@ function initModels(sequelize) {
|
|
|
460
460
|
AppUser.hasMany(Versus, { as: "versus", foreignKey: "creatorUserId" });
|
|
461
461
|
VersusCoCreator.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
462
462
|
AppUser.hasMany(VersusCoCreator, { as: "versusCoCreators", foreignKey: "appUserId" });
|
|
463
|
+
VersusOption.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
464
|
+
AppUser.hasMany(VersusOption, { as: "versusOptions", foreignKey: "appUserId" });
|
|
463
465
|
CanonAlbumExternalReferenceRelation.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId" });
|
|
464
466
|
CanonAlbum.hasMany(CanonAlbumExternalReferenceRelation, { as: "canonAlbumExternalReferenceRelations", foreignKey: "canonAlbumId" });
|
|
465
467
|
CanonAlbumImageHarvested.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId" });
|
|
@@ -554,6 +556,8 @@ function initModels(sequelize) {
|
|
|
554
556
|
GuestUser.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackAddedGuestUserId" });
|
|
555
557
|
VersusCoCreator.belongsTo(GuestUser, { as: "guestUser", foreignKey: "guestUserId" });
|
|
556
558
|
GuestUser.hasMany(VersusCoCreator, { as: "versusCoCreators", foreignKey: "guestUserId" });
|
|
559
|
+
VersusOption.belongsTo(GuestUser, { as: "guestUser", foreignKey: "guestUserId" });
|
|
560
|
+
GuestUser.hasMany(VersusOption, { as: "versusOptions", foreignKey: "guestUserId" });
|
|
557
561
|
JukeboxSession.belongsTo(JukeboxAccessType, { as: "accessType", foreignKey: "accessTypeId" });
|
|
558
562
|
JukeboxAccessType.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "accessTypeId" });
|
|
559
563
|
JukeboxUser.belongsTo(JukeboxQueueEntry, { as: "pausedQueueEntry", foreignKey: "pausedQueueEntryId" });
|
package/models/AppUser.ts
CHANGED
|
@@ -23,6 +23,7 @@ import type { UserLikes, UserLikesId } from './UserLikes';
|
|
|
23
23
|
import type { UserMessages, UserMessagesId } from './UserMessages';
|
|
24
24
|
import type { Versus, VersusId } from './Versus';
|
|
25
25
|
import type { VersusCoCreator, VersusCoCreatorId } from './VersusCoCreator';
|
|
26
|
+
import type { VersusOption, VersusOptionId } from './VersusOption';
|
|
26
27
|
|
|
27
28
|
export interface AppUserAttributes {
|
|
28
29
|
email: string;
|
|
@@ -37,11 +38,16 @@ export interface AppUserAttributes {
|
|
|
37
38
|
lastHarvested?: Date;
|
|
38
39
|
lastHarvestedError?: string;
|
|
39
40
|
earbugAccessControlPreference: string;
|
|
41
|
+
unsubscribeAll?: Date;
|
|
42
|
+
unsubscribeBiweeklyEmail?: Date;
|
|
43
|
+
unsubscribeFollowingNotifications?: Date;
|
|
44
|
+
unsubscribeInterestNotifications?: Date;
|
|
45
|
+
unsubscribeFunNotifications?: Date;
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
export type AppUserPk = "id";
|
|
43
49
|
export type AppUserId = AppUser[AppUserPk];
|
|
44
|
-
export type AppUserOptionalAttributes = "id" | "createDate" | "updateDate" | "syncContacts" | "stateId" | "lastName" | "autoApproveFollowers" | "lastHarvested" | "lastHarvestedError" | "earbugAccessControlPreference";
|
|
50
|
+
export type AppUserOptionalAttributes = "id" | "createDate" | "updateDate" | "syncContacts" | "stateId" | "lastName" | "autoApproveFollowers" | "lastHarvested" | "lastHarvestedError" | "earbugAccessControlPreference" | "unsubscribeAll" | "unsubscribeBiweeklyEmail" | "unsubscribeFollowingNotifications" | "unsubscribeInterestNotifications" | "unsubscribeFunNotifications";
|
|
45
51
|
export type AppUserCreationAttributes = Optional<AppUserAttributes, AppUserOptionalAttributes>;
|
|
46
52
|
|
|
47
53
|
export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes> implements AppUserAttributes {
|
|
@@ -57,6 +63,11 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
|
|
|
57
63
|
lastHarvested?: Date;
|
|
58
64
|
lastHarvestedError?: string;
|
|
59
65
|
earbugAccessControlPreference!: string;
|
|
66
|
+
unsubscribeAll?: Date;
|
|
67
|
+
unsubscribeBiweeklyEmail?: Date;
|
|
68
|
+
unsubscribeFollowingNotifications?: Date;
|
|
69
|
+
unsubscribeInterestNotifications?: Date;
|
|
70
|
+
unsubscribeFunNotifications?: Date;
|
|
60
71
|
|
|
61
72
|
// AppUser hasMany AppUserDevice via appUserId
|
|
62
73
|
appUserDevices!: AppUserDevice[];
|
|
@@ -363,6 +374,18 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
|
|
|
363
374
|
hasVersusCoCreator!: Sequelize.HasManyHasAssociationMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
364
375
|
hasVersusCoCreators!: Sequelize.HasManyHasAssociationsMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
365
376
|
countVersusCoCreators!: Sequelize.HasManyCountAssociationsMixin;
|
|
377
|
+
// AppUser hasMany VersusOption via appUserId
|
|
378
|
+
versusOptions!: VersusOption[];
|
|
379
|
+
getVersusOptions!: Sequelize.HasManyGetAssociationsMixin<VersusOption>;
|
|
380
|
+
setVersusOptions!: Sequelize.HasManySetAssociationsMixin<VersusOption, VersusOptionId>;
|
|
381
|
+
addVersusOption!: Sequelize.HasManyAddAssociationMixin<VersusOption, VersusOptionId>;
|
|
382
|
+
addVersusOptions!: Sequelize.HasManyAddAssociationsMixin<VersusOption, VersusOptionId>;
|
|
383
|
+
createVersusOption!: Sequelize.HasManyCreateAssociationMixin<VersusOption>;
|
|
384
|
+
removeVersusOption!: Sequelize.HasManyRemoveAssociationMixin<VersusOption, VersusOptionId>;
|
|
385
|
+
removeVersusOptions!: Sequelize.HasManyRemoveAssociationsMixin<VersusOption, VersusOptionId>;
|
|
386
|
+
hasVersusOption!: Sequelize.HasManyHasAssociationMixin<VersusOption, VersusOptionId>;
|
|
387
|
+
hasVersusOptions!: Sequelize.HasManyHasAssociationsMixin<VersusOption, VersusOptionId>;
|
|
388
|
+
countVersusOptions!: Sequelize.HasManyCountAssociationsMixin;
|
|
366
389
|
// AppUser belongsTo State via stateId
|
|
367
390
|
state!: State;
|
|
368
391
|
getState!: Sequelize.BelongsToGetAssociationMixin<State>;
|
|
@@ -441,6 +464,31 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
|
|
|
441
464
|
allowNull: false,
|
|
442
465
|
defaultValue: "PUBLIC",
|
|
443
466
|
field: 'earbug_access_control_preference'
|
|
467
|
+
},
|
|
468
|
+
unsubscribeAll: {
|
|
469
|
+
type: DataTypes.DATE,
|
|
470
|
+
allowNull: true,
|
|
471
|
+
field: 'unsubscribe_all'
|
|
472
|
+
},
|
|
473
|
+
unsubscribeBiweeklyEmail: {
|
|
474
|
+
type: DataTypes.DATE,
|
|
475
|
+
allowNull: true,
|
|
476
|
+
field: 'unsubscribe_biweekly_email'
|
|
477
|
+
},
|
|
478
|
+
unsubscribeFollowingNotifications: {
|
|
479
|
+
type: DataTypes.DATE,
|
|
480
|
+
allowNull: true,
|
|
481
|
+
field: 'unsubscribe_following_notifications'
|
|
482
|
+
},
|
|
483
|
+
unsubscribeInterestNotifications: {
|
|
484
|
+
type: DataTypes.DATE,
|
|
485
|
+
allowNull: true,
|
|
486
|
+
field: 'unsubscribe_interest_notifications'
|
|
487
|
+
},
|
|
488
|
+
unsubscribeFunNotifications: {
|
|
489
|
+
type: DataTypes.DATE,
|
|
490
|
+
allowNull: true,
|
|
491
|
+
field: 'unsubscribe_fun_notifications'
|
|
444
492
|
}
|
|
445
493
|
}, {
|
|
446
494
|
sequelize,
|
package/models/GuestUser.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry
|
|
|
4
4
|
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
5
5
|
import type { Versus, VersusId } from './Versus';
|
|
6
6
|
import type { VersusCoCreator, VersusCoCreatorId } from './VersusCoCreator';
|
|
7
|
+
import type { VersusOption, VersusOptionId } from './VersusOption';
|
|
7
8
|
|
|
8
9
|
export interface GuestUserAttributes {
|
|
9
10
|
jukeboxSessionId?: string;
|
|
@@ -55,6 +56,18 @@ export class GuestUser extends Model<GuestUserAttributes, GuestUserCreationAttri
|
|
|
55
56
|
hasVersusCoCreator!: Sequelize.HasManyHasAssociationMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
56
57
|
hasVersusCoCreators!: Sequelize.HasManyHasAssociationsMixin<VersusCoCreator, VersusCoCreatorId>;
|
|
57
58
|
countVersusCoCreators!: Sequelize.HasManyCountAssociationsMixin;
|
|
59
|
+
// GuestUser hasMany VersusOption via guestUserId
|
|
60
|
+
versusOptions!: VersusOption[];
|
|
61
|
+
getVersusOptions!: Sequelize.HasManyGetAssociationsMixin<VersusOption>;
|
|
62
|
+
setVersusOptions!: Sequelize.HasManySetAssociationsMixin<VersusOption, VersusOptionId>;
|
|
63
|
+
addVersusOption!: Sequelize.HasManyAddAssociationMixin<VersusOption, VersusOptionId>;
|
|
64
|
+
addVersusOptions!: Sequelize.HasManyAddAssociationsMixin<VersusOption, VersusOptionId>;
|
|
65
|
+
createVersusOption!: Sequelize.HasManyCreateAssociationMixin<VersusOption>;
|
|
66
|
+
removeVersusOption!: Sequelize.HasManyRemoveAssociationMixin<VersusOption, VersusOptionId>;
|
|
67
|
+
removeVersusOptions!: Sequelize.HasManyRemoveAssociationsMixin<VersusOption, VersusOptionId>;
|
|
68
|
+
hasVersusOption!: Sequelize.HasManyHasAssociationMixin<VersusOption, VersusOptionId>;
|
|
69
|
+
hasVersusOptions!: Sequelize.HasManyHasAssociationsMixin<VersusOption, VersusOptionId>;
|
|
70
|
+
countVersusOptions!: Sequelize.HasManyCountAssociationsMixin;
|
|
58
71
|
// GuestUser belongsTo JukeboxSession via jukeboxSessionId
|
|
59
72
|
jukeboxSession!: JukeboxSession;
|
|
60
73
|
getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
package/models/VersusOption.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AppUser, AppUserId } from './AppUser';
|
|
3
4
|
import type { CanonAlbum, CanonAlbumId } from './CanonAlbum';
|
|
4
5
|
import type { CanonArtist, CanonArtistId } from './CanonArtist';
|
|
5
6
|
import type { CanonTrack, CanonTrackId } from './CanonTrack';
|
|
7
|
+
import type { GuestUser, GuestUserId } from './GuestUser';
|
|
6
8
|
import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
|
|
7
9
|
import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
|
|
8
10
|
import type { PlatformTrack, PlatformTrackId } from './PlatformTrack';
|
|
@@ -24,11 +26,14 @@ export interface VersusOptionAttributes {
|
|
|
24
26
|
id: string;
|
|
25
27
|
createdAt: Date;
|
|
26
28
|
updatedAt: Date;
|
|
29
|
+
deleted: boolean;
|
|
30
|
+
appUserId?: string;
|
|
31
|
+
guestUserId?: string;
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
export type VersusOptionPk = "id";
|
|
30
35
|
export type VersusOptionId = VersusOption[VersusOptionPk];
|
|
31
|
-
export type VersusOptionOptionalAttributes = "canonTrackId" | "platformTrackId" | "canonAlbumId" | "platformAlbumId" | "canonArtistId" | "platformArtistId" | "voteScore" | "resultsScore" | "id" | "createdAt" | "updatedAt";
|
|
36
|
+
export type VersusOptionOptionalAttributes = "canonTrackId" | "platformTrackId" | "canonAlbumId" | "platformAlbumId" | "canonArtistId" | "platformArtistId" | "voteScore" | "resultsScore" | "id" | "createdAt" | "updatedAt" | "appUserId" | "guestUserId";
|
|
32
37
|
export type VersusOptionCreationAttributes = Optional<VersusOptionAttributes, VersusOptionOptionalAttributes>;
|
|
33
38
|
|
|
34
39
|
export class VersusOption extends Model<VersusOptionAttributes, VersusOptionCreationAttributes> implements VersusOptionAttributes {
|
|
@@ -46,7 +51,15 @@ export class VersusOption extends Model<VersusOptionAttributes, VersusOptionCrea
|
|
|
46
51
|
id!: string;
|
|
47
52
|
createdAt!: Date;
|
|
48
53
|
updatedAt!: Date;
|
|
54
|
+
deleted!: boolean;
|
|
55
|
+
appUserId?: string;
|
|
56
|
+
guestUserId?: string;
|
|
49
57
|
|
|
58
|
+
// VersusOption belongsTo AppUser via appUserId
|
|
59
|
+
appUser!: AppUser;
|
|
60
|
+
getAppUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
61
|
+
setAppUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
62
|
+
createAppUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
50
63
|
// VersusOption belongsTo CanonAlbum via canonAlbumId
|
|
51
64
|
canonAlbum!: CanonAlbum;
|
|
52
65
|
getCanonAlbum!: Sequelize.BelongsToGetAssociationMixin<CanonAlbum>;
|
|
@@ -62,6 +75,11 @@ export class VersusOption extends Model<VersusOptionAttributes, VersusOptionCrea
|
|
|
62
75
|
getCanonTrack!: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
|
|
63
76
|
setCanonTrack!: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
|
|
64
77
|
createCanonTrack!: Sequelize.BelongsToCreateAssociationMixin<CanonTrack>;
|
|
78
|
+
// VersusOption belongsTo GuestUser via guestUserId
|
|
79
|
+
guestUser!: GuestUser;
|
|
80
|
+
getGuestUser!: Sequelize.BelongsToGetAssociationMixin<GuestUser>;
|
|
81
|
+
setGuestUser!: Sequelize.BelongsToSetAssociationMixin<GuestUser, GuestUserId>;
|
|
82
|
+
createGuestUser!: Sequelize.BelongsToCreateAssociationMixin<GuestUser>;
|
|
65
83
|
// VersusOption belongsTo PlatformAlbum via platformAlbumId
|
|
66
84
|
platformAlbum!: PlatformAlbum;
|
|
67
85
|
getPlatformAlbum!: Sequelize.BelongsToGetAssociationMixin<PlatformAlbum>;
|
|
@@ -194,6 +212,29 @@ export class VersusOption extends Model<VersusOptionAttributes, VersusOptionCrea
|
|
|
194
212
|
allowNull: false,
|
|
195
213
|
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
196
214
|
field: 'updated_at'
|
|
215
|
+
},
|
|
216
|
+
deleted: {
|
|
217
|
+
type: DataTypes.BOOLEAN,
|
|
218
|
+
allowNull: false,
|
|
219
|
+
defaultValue: false
|
|
220
|
+
},
|
|
221
|
+
appUserId: {
|
|
222
|
+
type: DataTypes.UUID,
|
|
223
|
+
allowNull: true,
|
|
224
|
+
references: {
|
|
225
|
+
model: 'app_user',
|
|
226
|
+
key: 'id'
|
|
227
|
+
},
|
|
228
|
+
field: 'app_user_id'
|
|
229
|
+
},
|
|
230
|
+
guestUserId: {
|
|
231
|
+
type: DataTypes.UUID,
|
|
232
|
+
allowNull: true,
|
|
233
|
+
references: {
|
|
234
|
+
model: 'guest_user',
|
|
235
|
+
key: 'id'
|
|
236
|
+
},
|
|
237
|
+
field: 'guest_user_id'
|
|
197
238
|
}
|
|
198
239
|
}, {
|
|
199
240
|
sequelize,
|
|
@@ -207,6 +248,13 @@ export class VersusOption extends Model<VersusOptionAttributes, VersusOptionCrea
|
|
|
207
248
|
{ name: "versus_id" },
|
|
208
249
|
]
|
|
209
250
|
},
|
|
251
|
+
{
|
|
252
|
+
name: "idx_versus_option_versus_deleted",
|
|
253
|
+
fields: [
|
|
254
|
+
{ name: "versus_id" },
|
|
255
|
+
{ name: "deleted" },
|
|
256
|
+
]
|
|
257
|
+
},
|
|
210
258
|
{
|
|
211
259
|
name: "idx_versus_option_versus_sort",
|
|
212
260
|
fields: [
|
package/models/init-models.ts
CHANGED
|
@@ -808,6 +808,8 @@ export function initModels(sequelize: Sequelize) {
|
|
|
808
808
|
AppUser.hasMany(Versus, { as: "versus", foreignKey: "creatorUserId"});
|
|
809
809
|
VersusCoCreator.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
|
|
810
810
|
AppUser.hasMany(VersusCoCreator, { as: "versusCoCreators", foreignKey: "appUserId"});
|
|
811
|
+
VersusOption.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
|
|
812
|
+
AppUser.hasMany(VersusOption, { as: "versusOptions", foreignKey: "appUserId"});
|
|
811
813
|
CanonAlbumExternalReferenceRelation.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId"});
|
|
812
814
|
CanonAlbum.hasMany(CanonAlbumExternalReferenceRelation, { as: "canonAlbumExternalReferenceRelations", foreignKey: "canonAlbumId"});
|
|
813
815
|
CanonAlbumImageHarvested.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId"});
|
|
@@ -902,6 +904,8 @@ export function initModels(sequelize: Sequelize) {
|
|
|
902
904
|
GuestUser.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackAddedGuestUserId"});
|
|
903
905
|
VersusCoCreator.belongsTo(GuestUser, { as: "guestUser", foreignKey: "guestUserId"});
|
|
904
906
|
GuestUser.hasMany(VersusCoCreator, { as: "versusCoCreators", foreignKey: "guestUserId"});
|
|
907
|
+
VersusOption.belongsTo(GuestUser, { as: "guestUser", foreignKey: "guestUserId"});
|
|
908
|
+
GuestUser.hasMany(VersusOption, { as: "versusOptions", foreignKey: "guestUserId"});
|
|
905
909
|
JukeboxSession.belongsTo(JukeboxAccessType, { as: "accessType", foreignKey: "accessTypeId"});
|
|
906
910
|
JukeboxAccessType.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "accessTypeId"});
|
|
907
911
|
JukeboxUser.belongsTo(JukeboxQueueEntry, { as: "pausedQueueEntry", foreignKey: "pausedQueueEntryId"});
|