@earbug/db-models 0.0.8 → 0.0.9
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 -0
- package/dist/JukeboxSession.d.ts +12 -0
- package/dist/Notification.d.ts +62 -0
- package/dist/Notification.js +163 -0
- package/dist/NotificationType.d.ts +26 -0
- package/dist/NotificationType.js +42 -0
- package/dist/init-models.d.ts +8 -2
- package/dist/init-models.js +18 -2
- package/models/AppUser.ts +25 -0
- package/models/JukeboxSession.ts +13 -0
- package/models/Notification.ts +202 -0
- package/models/NotificationType.ts +66 -0
- package/models/init-models.ts +22 -0
- package/package.json +1 -1
package/dist/AppUser.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { AppUserPlatformRelation, AppUserPlatformRelationId } from './AppUs
|
|
|
6
6
|
import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
|
|
7
7
|
import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
|
|
8
8
|
import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
|
|
9
|
+
import type { Notification, NotificationId } from './Notification';
|
|
9
10
|
import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum';
|
|
10
11
|
import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
|
|
11
12
|
import type { State, StateId } from './State';
|
|
@@ -120,6 +121,28 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
|
|
|
120
121
|
hasJukeboxUser: Sequelize.HasManyHasAssociationMixin<JukeboxUser, JukeboxUserId>;
|
|
121
122
|
hasJukeboxUsers: Sequelize.HasManyHasAssociationsMixin<JukeboxUser, JukeboxUserId>;
|
|
122
123
|
countJukeboxUsers: Sequelize.HasManyCountAssociationsMixin;
|
|
124
|
+
notifications: Notification[];
|
|
125
|
+
getNotifications: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
126
|
+
setNotifications: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
127
|
+
addNotification: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
128
|
+
addNotifications: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
129
|
+
createNotification: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
130
|
+
removeNotification: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
131
|
+
removeNotifications: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
132
|
+
hasNotification: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
133
|
+
hasNotifications: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
134
|
+
countNotifications: Sequelize.HasManyCountAssociationsMixin;
|
|
135
|
+
targetUserNotifications: Notification[];
|
|
136
|
+
getTargetUserNotifications: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
137
|
+
setTargetUserNotifications: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
138
|
+
addTargetUserNotification: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
139
|
+
addTargetUserNotifications: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
140
|
+
createTargetUserNotification: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
141
|
+
removeTargetUserNotification: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
142
|
+
removeTargetUserNotifications: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
143
|
+
hasTargetUserNotification: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
144
|
+
hasTargetUserNotifications: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
145
|
+
countTargetUserNotifications: Sequelize.HasManyCountAssociationsMixin;
|
|
123
146
|
platformUserAlbums: PlatformUserAlbum[];
|
|
124
147
|
getPlatformUserAlbums: Sequelize.HasManyGetAssociationsMixin<PlatformUserAlbum>;
|
|
125
148
|
setPlatformUserAlbums: Sequelize.HasManySetAssociationsMixin<PlatformUserAlbum, PlatformUserAlbumId>;
|
package/dist/JukeboxSession.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { JukeboxStatus, JukeboxStatusId } from './JukeboxStatus';
|
|
|
9
9
|
import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from './JukeboxTerminationCondition';
|
|
10
10
|
import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
|
|
11
11
|
import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
|
|
12
|
+
import type { Notification, NotificationId } from './Notification';
|
|
12
13
|
export interface JukeboxSessionAttributes {
|
|
13
14
|
typeId: number;
|
|
14
15
|
accessTypeId: number;
|
|
@@ -92,6 +93,17 @@ export declare class JukeboxSession extends Model<JukeboxSessionAttributes, Juke
|
|
|
92
93
|
hasJukeboxUser: Sequelize.HasManyHasAssociationMixin<JukeboxUser, JukeboxUserId>;
|
|
93
94
|
hasJukeboxUsers: Sequelize.HasManyHasAssociationsMixin<JukeboxUser, JukeboxUserId>;
|
|
94
95
|
countJukeboxUsers: Sequelize.HasManyCountAssociationsMixin;
|
|
96
|
+
notifications: Notification[];
|
|
97
|
+
getNotifications: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
98
|
+
setNotifications: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
99
|
+
addNotification: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
100
|
+
addNotifications: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
101
|
+
createNotification: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
102
|
+
removeNotification: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
103
|
+
removeNotifications: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
104
|
+
hasNotification: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
105
|
+
hasNotifications: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
106
|
+
countNotifications: Sequelize.HasManyCountAssociationsMixin;
|
|
95
107
|
jukeboxStatus: JukeboxStatus;
|
|
96
108
|
getJukeboxStatus: Sequelize.BelongsToGetAssociationMixin<JukeboxStatus>;
|
|
97
109
|
setJukeboxStatus: Sequelize.BelongsToSetAssociationMixin<JukeboxStatus, JukeboxStatusId>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AppUser, AppUserId } from './AppUser';
|
|
4
|
+
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
5
|
+
import type { NotificationType, NotificationTypeId } from './NotificationType';
|
|
6
|
+
export interface NotificationAttributes {
|
|
7
|
+
targetUserId: string;
|
|
8
|
+
notificationTypeId: number;
|
|
9
|
+
metadata?: object;
|
|
10
|
+
readAt?: Date;
|
|
11
|
+
dismissedAt?: Date;
|
|
12
|
+
sourceUserId?: string;
|
|
13
|
+
jukeboxSessionId?: string;
|
|
14
|
+
expiresAt?: Date;
|
|
15
|
+
pushSentAt?: Date;
|
|
16
|
+
pushError?: string;
|
|
17
|
+
id: string;
|
|
18
|
+
isRead: boolean;
|
|
19
|
+
isDismissed: boolean;
|
|
20
|
+
createdAt: Date;
|
|
21
|
+
updatedAt: Date;
|
|
22
|
+
pushSent: boolean;
|
|
23
|
+
}
|
|
24
|
+
export type NotificationPk = "id";
|
|
25
|
+
export type NotificationId = Notification[NotificationPk];
|
|
26
|
+
export type NotificationOptionalAttributes = "metadata" | "readAt" | "dismissedAt" | "sourceUserId" | "jukeboxSessionId" | "expiresAt" | "pushSentAt" | "pushError" | "id" | "createdAt" | "updatedAt";
|
|
27
|
+
export type NotificationCreationAttributes = Optional<NotificationAttributes, NotificationOptionalAttributes>;
|
|
28
|
+
export declare class Notification extends Model<NotificationAttributes, NotificationCreationAttributes> implements NotificationAttributes {
|
|
29
|
+
targetUserId: string;
|
|
30
|
+
notificationTypeId: number;
|
|
31
|
+
metadata?: object;
|
|
32
|
+
readAt?: Date;
|
|
33
|
+
dismissedAt?: Date;
|
|
34
|
+
sourceUserId?: string;
|
|
35
|
+
jukeboxSessionId?: string;
|
|
36
|
+
expiresAt?: Date;
|
|
37
|
+
pushSentAt?: Date;
|
|
38
|
+
pushError?: string;
|
|
39
|
+
id: string;
|
|
40
|
+
isRead: boolean;
|
|
41
|
+
isDismissed: boolean;
|
|
42
|
+
createdAt: Date;
|
|
43
|
+
updatedAt: Date;
|
|
44
|
+
pushSent: boolean;
|
|
45
|
+
sourceUser: AppUser;
|
|
46
|
+
getSourceUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
47
|
+
setSourceUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
48
|
+
createSourceUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
49
|
+
targetUser: AppUser;
|
|
50
|
+
getTargetUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
51
|
+
setTargetUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
52
|
+
createTargetUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
53
|
+
jukeboxSession: JukeboxSession;
|
|
54
|
+
getJukeboxSession: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
|
55
|
+
setJukeboxSession: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
|
|
56
|
+
createJukeboxSession: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
|
|
57
|
+
notificationType: NotificationType;
|
|
58
|
+
getNotificationType: Sequelize.BelongsToGetAssociationMixin<NotificationType>;
|
|
59
|
+
setNotificationType: Sequelize.BelongsToSetAssociationMixin<NotificationType, NotificationTypeId>;
|
|
60
|
+
createNotificationType: Sequelize.BelongsToCreateAssociationMixin<NotificationType>;
|
|
61
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof Notification;
|
|
62
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
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.Notification = void 0;
|
|
27
|
+
const Sequelize = __importStar(require("sequelize"));
|
|
28
|
+
const sequelize_1 = require("sequelize");
|
|
29
|
+
class Notification extends sequelize_1.Model {
|
|
30
|
+
static initModel(sequelize) {
|
|
31
|
+
return Notification.init({
|
|
32
|
+
targetUserId: {
|
|
33
|
+
type: sequelize_1.DataTypes.UUID,
|
|
34
|
+
allowNull: false,
|
|
35
|
+
references: {
|
|
36
|
+
model: 'app_user',
|
|
37
|
+
key: 'id'
|
|
38
|
+
},
|
|
39
|
+
field: 'target_user_id'
|
|
40
|
+
},
|
|
41
|
+
notificationTypeId: {
|
|
42
|
+
type: sequelize_1.DataTypes.SMALLINT,
|
|
43
|
+
allowNull: false,
|
|
44
|
+
references: {
|
|
45
|
+
model: 'notification_type',
|
|
46
|
+
key: 'id'
|
|
47
|
+
},
|
|
48
|
+
field: 'notification_type_id'
|
|
49
|
+
},
|
|
50
|
+
metadata: {
|
|
51
|
+
type: sequelize_1.DataTypes.JSONB,
|
|
52
|
+
allowNull: true
|
|
53
|
+
},
|
|
54
|
+
readAt: {
|
|
55
|
+
type: sequelize_1.DataTypes.DATE,
|
|
56
|
+
allowNull: true,
|
|
57
|
+
field: 'read_at'
|
|
58
|
+
},
|
|
59
|
+
dismissedAt: {
|
|
60
|
+
type: sequelize_1.DataTypes.DATE,
|
|
61
|
+
allowNull: true,
|
|
62
|
+
field: 'dismissed_at'
|
|
63
|
+
},
|
|
64
|
+
sourceUserId: {
|
|
65
|
+
type: sequelize_1.DataTypes.UUID,
|
|
66
|
+
allowNull: true,
|
|
67
|
+
references: {
|
|
68
|
+
model: 'app_user',
|
|
69
|
+
key: 'id'
|
|
70
|
+
},
|
|
71
|
+
field: 'source_user_id'
|
|
72
|
+
},
|
|
73
|
+
jukeboxSessionId: {
|
|
74
|
+
type: sequelize_1.DataTypes.UUID,
|
|
75
|
+
allowNull: true,
|
|
76
|
+
references: {
|
|
77
|
+
model: 'jukebox_session',
|
|
78
|
+
key: 'id'
|
|
79
|
+
},
|
|
80
|
+
field: 'jukebox_session_id'
|
|
81
|
+
},
|
|
82
|
+
expiresAt: {
|
|
83
|
+
type: sequelize_1.DataTypes.DATE,
|
|
84
|
+
allowNull: true,
|
|
85
|
+
field: 'expires_at'
|
|
86
|
+
},
|
|
87
|
+
pushSentAt: {
|
|
88
|
+
type: sequelize_1.DataTypes.DATE,
|
|
89
|
+
allowNull: true,
|
|
90
|
+
field: 'push_sent_at'
|
|
91
|
+
},
|
|
92
|
+
pushError: {
|
|
93
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
94
|
+
allowNull: true,
|
|
95
|
+
field: 'push_error'
|
|
96
|
+
},
|
|
97
|
+
id: {
|
|
98
|
+
type: sequelize_1.DataTypes.UUID,
|
|
99
|
+
allowNull: false,
|
|
100
|
+
defaultValue: sequelize_1.DataTypes.UUIDV4,
|
|
101
|
+
primaryKey: true
|
|
102
|
+
},
|
|
103
|
+
isRead: {
|
|
104
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
105
|
+
allowNull: false,
|
|
106
|
+
defaultValue: false,
|
|
107
|
+
field: 'is_read'
|
|
108
|
+
},
|
|
109
|
+
isDismissed: {
|
|
110
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
111
|
+
allowNull: false,
|
|
112
|
+
defaultValue: false,
|
|
113
|
+
field: 'is_dismissed'
|
|
114
|
+
},
|
|
115
|
+
createdAt: {
|
|
116
|
+
type: sequelize_1.DataTypes.DATE,
|
|
117
|
+
allowNull: false,
|
|
118
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
119
|
+
field: 'created_at'
|
|
120
|
+
},
|
|
121
|
+
updatedAt: {
|
|
122
|
+
type: sequelize_1.DataTypes.DATE,
|
|
123
|
+
allowNull: false,
|
|
124
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
125
|
+
field: 'updated_at'
|
|
126
|
+
},
|
|
127
|
+
pushSent: {
|
|
128
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
129
|
+
allowNull: false,
|
|
130
|
+
defaultValue: false,
|
|
131
|
+
field: 'push_sent'
|
|
132
|
+
}
|
|
133
|
+
}, {
|
|
134
|
+
sequelize,
|
|
135
|
+
tableName: 'notification',
|
|
136
|
+
schema: 'eb',
|
|
137
|
+
timestamps: false,
|
|
138
|
+
indexes: [
|
|
139
|
+
{
|
|
140
|
+
name: "idx_notification_expires_at",
|
|
141
|
+
fields: [
|
|
142
|
+
{ name: "expires_at" },
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: "idx_notification_target_user_created_at",
|
|
147
|
+
fields: [
|
|
148
|
+
{ name: "target_user_id" },
|
|
149
|
+
{ name: "created_at", order: "DESC" },
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: "notification_pkey",
|
|
154
|
+
unique: true,
|
|
155
|
+
fields: [
|
|
156
|
+
{ name: "id" },
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
]
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.Notification = Notification;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { Model } from 'sequelize';
|
|
3
|
+
import type { Notification, NotificationId } from './Notification';
|
|
4
|
+
export interface NotificationTypeAttributes {
|
|
5
|
+
id: number;
|
|
6
|
+
name: string;
|
|
7
|
+
}
|
|
8
|
+
export type NotificationTypePk = "id";
|
|
9
|
+
export type NotificationTypeId = NotificationType[NotificationTypePk];
|
|
10
|
+
export type NotificationTypeCreationAttributes = NotificationTypeAttributes;
|
|
11
|
+
export declare class NotificationType extends Model<NotificationTypeAttributes, NotificationTypeCreationAttributes> implements NotificationTypeAttributes {
|
|
12
|
+
id: number;
|
|
13
|
+
name: string;
|
|
14
|
+
notifications: Notification[];
|
|
15
|
+
getNotifications: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
16
|
+
setNotifications: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
17
|
+
addNotification: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
18
|
+
addNotifications: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
19
|
+
createNotification: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
20
|
+
removeNotification: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
21
|
+
removeNotifications: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
22
|
+
hasNotification: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
23
|
+
hasNotifications: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
24
|
+
countNotifications: Sequelize.HasManyCountAssociationsMixin;
|
|
25
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof NotificationType;
|
|
26
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotificationType = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
class NotificationType extends sequelize_1.Model {
|
|
6
|
+
static initModel(sequelize) {
|
|
7
|
+
return NotificationType.init({
|
|
8
|
+
id: {
|
|
9
|
+
type: sequelize_1.DataTypes.SMALLINT,
|
|
10
|
+
allowNull: false,
|
|
11
|
+
primaryKey: true
|
|
12
|
+
},
|
|
13
|
+
name: {
|
|
14
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
15
|
+
allowNull: false,
|
|
16
|
+
unique: "notification_type_name_unique"
|
|
17
|
+
}
|
|
18
|
+
}, {
|
|
19
|
+
sequelize,
|
|
20
|
+
tableName: 'notification_type',
|
|
21
|
+
schema: 'eb',
|
|
22
|
+
timestamps: false,
|
|
23
|
+
indexes: [
|
|
24
|
+
{
|
|
25
|
+
name: "notification_type_name_unique",
|
|
26
|
+
unique: true,
|
|
27
|
+
fields: [
|
|
28
|
+
{ name: "name" },
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "notification_type_pkey",
|
|
33
|
+
unique: true,
|
|
34
|
+
fields: [
|
|
35
|
+
{ name: "id" },
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.NotificationType = NotificationType;
|
package/dist/init-models.d.ts
CHANGED
|
@@ -91,6 +91,10 @@ import { MetricsEvent as _MetricsEvent } from "./MetricsEvent";
|
|
|
91
91
|
import type { MetricsEventAttributes, MetricsEventCreationAttributes } from "./MetricsEvent";
|
|
92
92
|
import { NewsSite as _NewsSite } from "./NewsSite";
|
|
93
93
|
import type { NewsSiteAttributes, NewsSiteCreationAttributes } from "./NewsSite";
|
|
94
|
+
import { Notification as _Notification } from "./Notification";
|
|
95
|
+
import type { NotificationAttributes, NotificationCreationAttributes } from "./Notification";
|
|
96
|
+
import { NotificationType as _NotificationType } from "./NotificationType";
|
|
97
|
+
import type { NotificationTypeAttributes, NotificationTypeCreationAttributes } from "./NotificationType";
|
|
94
98
|
import { PauseStatusType as _PauseStatusType } from "./PauseStatusType";
|
|
95
99
|
import type { PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes } from "./PauseStatusType";
|
|
96
100
|
import { Platform as _Platform } from "./Platform";
|
|
@@ -137,8 +141,8 @@ import { UnmatchedArtist as _UnmatchedArtist } from "./UnmatchedArtist";
|
|
|
137
141
|
import type { UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes } from "./UnmatchedArtist";
|
|
138
142
|
import { UserContacts as _UserContacts } from "./UserContacts";
|
|
139
143
|
import type { UserContactsAttributes, UserContactsCreationAttributes } from "./UserContacts";
|
|
140
|
-
export { _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, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsSite as NewsSite, _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, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserContacts as UserContacts, };
|
|
141
|
-
export type { 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, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, 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, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, };
|
|
144
|
+
export { _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, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _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, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserContacts as UserContacts, };
|
|
145
|
+
export type { 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, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, 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, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, };
|
|
142
146
|
export declare function initModels(sequelize: Sequelize): {
|
|
143
147
|
AppUser: typeof _AppUser;
|
|
144
148
|
AppUserDevice: typeof _AppUserDevice;
|
|
@@ -186,6 +190,8 @@ export declare function initModels(sequelize: Sequelize): {
|
|
|
186
190
|
MetricsDaily: typeof _MetricsDaily;
|
|
187
191
|
MetricsEvent: typeof _MetricsEvent;
|
|
188
192
|
NewsSite: typeof _NewsSite;
|
|
193
|
+
Notification: typeof _Notification;
|
|
194
|
+
NotificationType: typeof _NotificationType;
|
|
189
195
|
PauseStatusType: typeof _PauseStatusType;
|
|
190
196
|
Platform: typeof _Platform;
|
|
191
197
|
PlatformAlbum: typeof _PlatformAlbum;
|
package/dist/init-models.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.UserContacts = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = 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 = void 0;
|
|
3
|
+
exports.Platform = exports.PauseStatusType = exports.NotificationType = exports.Notification = exports.NewsSite = exports.MetricsEvent = exports.MetricsDaily = exports.KnexMigrationsLock = exports.KnexMigrations = exports.JukeboxUserType = exports.JukeboxUser = exports.JukeboxType = exports.JukeboxTerminationCondition = exports.JukeboxStatus = exports.JukeboxSession = exports.JukeboxQueueMode = exports.JukeboxQueueEntry = exports.JukeboxInvite = exports.JukeboxCanonGenreRelation = exports.JukeboxAccessType = 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 = void 0;
|
|
4
|
+
exports.UserContacts = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = 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 = void 0;
|
|
5
5
|
exports.initModels = initModels;
|
|
6
6
|
const AppUser_1 = require("./AppUser");
|
|
7
7
|
Object.defineProperty(exports, "AppUser", { enumerable: true, get: function () { return AppUser_1.AppUser; } });
|
|
@@ -95,6 +95,10 @@ const MetricsEvent_1 = require("./MetricsEvent");
|
|
|
95
95
|
Object.defineProperty(exports, "MetricsEvent", { enumerable: true, get: function () { return MetricsEvent_1.MetricsEvent; } });
|
|
96
96
|
const NewsSite_1 = require("./NewsSite");
|
|
97
97
|
Object.defineProperty(exports, "NewsSite", { enumerable: true, get: function () { return NewsSite_1.NewsSite; } });
|
|
98
|
+
const Notification_1 = require("./Notification");
|
|
99
|
+
Object.defineProperty(exports, "Notification", { enumerable: true, get: function () { return Notification_1.Notification; } });
|
|
100
|
+
const NotificationType_1 = require("./NotificationType");
|
|
101
|
+
Object.defineProperty(exports, "NotificationType", { enumerable: true, get: function () { return NotificationType_1.NotificationType; } });
|
|
98
102
|
const PauseStatusType_1 = require("./PauseStatusType");
|
|
99
103
|
Object.defineProperty(exports, "PauseStatusType", { enumerable: true, get: function () { return PauseStatusType_1.PauseStatusType; } });
|
|
100
104
|
const Platform_1 = require("./Platform");
|
|
@@ -188,6 +192,8 @@ function initModels(sequelize) {
|
|
|
188
192
|
const MetricsDaily = MetricsDaily_1.MetricsDaily.initModel(sequelize);
|
|
189
193
|
const MetricsEvent = MetricsEvent_1.MetricsEvent.initModel(sequelize);
|
|
190
194
|
const NewsSite = NewsSite_1.NewsSite.initModel(sequelize);
|
|
195
|
+
const Notification = Notification_1.Notification.initModel(sequelize);
|
|
196
|
+
const NotificationType = NotificationType_1.NotificationType.initModel(sequelize);
|
|
191
197
|
const PauseStatusType = PauseStatusType_1.PauseStatusType.initModel(sequelize);
|
|
192
198
|
const Platform = Platform_1.Platform.initModel(sequelize);
|
|
193
199
|
const PlatformAlbum = PlatformAlbum_1.PlatformAlbum.initModel(sequelize);
|
|
@@ -271,6 +277,10 @@ function initModels(sequelize) {
|
|
|
271
277
|
AppUser.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackAddedUserId" });
|
|
272
278
|
JukeboxUser.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
273
279
|
AppUser.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "appUserId" });
|
|
280
|
+
Notification.belongsTo(AppUser, { as: "sourceUser", foreignKey: "sourceUserId" });
|
|
281
|
+
AppUser.hasMany(Notification, { as: "notifications", foreignKey: "sourceUserId" });
|
|
282
|
+
Notification.belongsTo(AppUser, { as: "targetUser", foreignKey: "targetUserId" });
|
|
283
|
+
AppUser.hasMany(Notification, { as: "targetUserNotifications", foreignKey: "targetUserId" });
|
|
274
284
|
PlatformUserAlbum.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
275
285
|
AppUser.hasMany(PlatformUserAlbum, { as: "platformUserAlbums", foreignKey: "appUserId" });
|
|
276
286
|
PlatformUserPlaylist.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
@@ -343,6 +353,8 @@ function initModels(sequelize) {
|
|
|
343
353
|
JukeboxSession.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "jukeboxSessionId" });
|
|
344
354
|
JukeboxUser.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
|
|
345
355
|
JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId" });
|
|
356
|
+
Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
|
|
357
|
+
JukeboxSession.hasMany(Notification, { as: "notifications", foreignKey: "jukeboxSessionId" });
|
|
346
358
|
JukeboxSession.belongsTo(JukeboxStatus, { as: "jukeboxStatus", foreignKey: "jukeboxStatusId" });
|
|
347
359
|
JukeboxStatus.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "jukeboxStatusId" });
|
|
348
360
|
JukeboxSession.belongsTo(JukeboxTerminationCondition, { as: "terminationCondition", foreignKey: "terminationConditionId" });
|
|
@@ -351,6 +363,8 @@ function initModels(sequelize) {
|
|
|
351
363
|
JukeboxType.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "typeId" });
|
|
352
364
|
JukeboxUser.belongsTo(JukeboxUserType, { as: "jukeboxUserType", foreignKey: "jukeboxUserTypeId" });
|
|
353
365
|
JukeboxUserType.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxUserTypeId" });
|
|
366
|
+
Notification.belongsTo(NotificationType, { as: "notificationType", foreignKey: "notificationTypeId" });
|
|
367
|
+
NotificationType.hasMany(Notification, { as: "notifications", foreignKey: "notificationTypeId" });
|
|
354
368
|
JukeboxUser.belongsTo(PauseStatusType, { as: "pauseStatusType", foreignKey: "pauseStatusTypeId" });
|
|
355
369
|
PauseStatusType.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "pauseStatusTypeId" });
|
|
356
370
|
AppUserPlatformRelation.belongsTo(Platform, { as: "platform", foreignKey: "platformId" });
|
|
@@ -484,6 +498,8 @@ function initModels(sequelize) {
|
|
|
484
498
|
MetricsDaily: MetricsDaily,
|
|
485
499
|
MetricsEvent: MetricsEvent,
|
|
486
500
|
NewsSite: NewsSite,
|
|
501
|
+
Notification: Notification,
|
|
502
|
+
NotificationType: NotificationType,
|
|
487
503
|
PauseStatusType: PauseStatusType,
|
|
488
504
|
Platform: Platform,
|
|
489
505
|
PlatformAlbum: PlatformAlbum,
|
package/models/AppUser.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { AppUserPlatformRelation, AppUserPlatformRelationCreationAttributes
|
|
|
6
6
|
import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
|
|
7
7
|
import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
|
|
8
8
|
import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
|
|
9
|
+
import type { Notification, NotificationId } from './Notification';
|
|
9
10
|
import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum';
|
|
10
11
|
import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
|
|
11
12
|
import type { State, StateId } from './State';
|
|
@@ -132,6 +133,30 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
|
|
|
132
133
|
hasJukeboxUser!: Sequelize.HasManyHasAssociationMixin<JukeboxUser, JukeboxUserId>;
|
|
133
134
|
hasJukeboxUsers!: Sequelize.HasManyHasAssociationsMixin<JukeboxUser, JukeboxUserId>;
|
|
134
135
|
countJukeboxUsers!: Sequelize.HasManyCountAssociationsMixin;
|
|
136
|
+
// AppUser hasMany Notification via sourceUserId
|
|
137
|
+
notifications!: Notification[];
|
|
138
|
+
getNotifications!: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
139
|
+
setNotifications!: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
140
|
+
addNotification!: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
141
|
+
addNotifications!: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
142
|
+
createNotification!: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
143
|
+
removeNotification!: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
144
|
+
removeNotifications!: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
145
|
+
hasNotification!: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
146
|
+
hasNotifications!: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
147
|
+
countNotifications!: Sequelize.HasManyCountAssociationsMixin;
|
|
148
|
+
// AppUser hasMany Notification via targetUserId
|
|
149
|
+
targetUserNotifications!: Notification[];
|
|
150
|
+
getTargetUserNotifications!: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
151
|
+
setTargetUserNotifications!: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
152
|
+
addTargetUserNotification!: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
153
|
+
addTargetUserNotifications!: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
154
|
+
createTargetUserNotification!: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
155
|
+
removeTargetUserNotification!: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
156
|
+
removeTargetUserNotifications!: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
157
|
+
hasTargetUserNotification!: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
158
|
+
hasTargetUserNotifications!: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
159
|
+
countTargetUserNotifications!: Sequelize.HasManyCountAssociationsMixin;
|
|
135
160
|
// AppUser hasMany PlatformUserAlbum via appUserId
|
|
136
161
|
platformUserAlbums!: PlatformUserAlbum[];
|
|
137
162
|
getPlatformUserAlbums!: Sequelize.HasManyGetAssociationsMixin<PlatformUserAlbum>;
|
package/models/JukeboxSession.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { JukeboxStatus, JukeboxStatusId } from './JukeboxStatus';
|
|
|
9
9
|
import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from './JukeboxTerminationCondition';
|
|
10
10
|
import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
|
|
11
11
|
import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
|
|
12
|
+
import type { Notification, NotificationId } from './Notification';
|
|
12
13
|
|
|
13
14
|
export interface JukeboxSessionAttributes {
|
|
14
15
|
typeId: number;
|
|
@@ -102,6 +103,18 @@ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessi
|
|
|
102
103
|
hasJukeboxUser!: Sequelize.HasManyHasAssociationMixin<JukeboxUser, JukeboxUserId>;
|
|
103
104
|
hasJukeboxUsers!: Sequelize.HasManyHasAssociationsMixin<JukeboxUser, JukeboxUserId>;
|
|
104
105
|
countJukeboxUsers!: Sequelize.HasManyCountAssociationsMixin;
|
|
106
|
+
// JukeboxSession hasMany Notification via jukeboxSessionId
|
|
107
|
+
notifications!: Notification[];
|
|
108
|
+
getNotifications!: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
109
|
+
setNotifications!: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
110
|
+
addNotification!: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
111
|
+
addNotifications!: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
112
|
+
createNotification!: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
113
|
+
removeNotification!: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
114
|
+
removeNotifications!: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
115
|
+
hasNotification!: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
116
|
+
hasNotifications!: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
117
|
+
countNotifications!: Sequelize.HasManyCountAssociationsMixin;
|
|
105
118
|
// JukeboxSession belongsTo JukeboxStatus via jukeboxStatusId
|
|
106
119
|
jukeboxStatus!: JukeboxStatus;
|
|
107
120
|
getJukeboxStatus!: Sequelize.BelongsToGetAssociationMixin<JukeboxStatus>;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AppUser, AppUserId } from './AppUser';
|
|
4
|
+
import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
|
|
5
|
+
import type { NotificationType, NotificationTypeId } from './NotificationType';
|
|
6
|
+
|
|
7
|
+
export interface NotificationAttributes {
|
|
8
|
+
targetUserId: string;
|
|
9
|
+
notificationTypeId: number;
|
|
10
|
+
metadata?: object;
|
|
11
|
+
readAt?: Date;
|
|
12
|
+
dismissedAt?: Date;
|
|
13
|
+
sourceUserId?: string;
|
|
14
|
+
jukeboxSessionId?: string;
|
|
15
|
+
expiresAt?: Date;
|
|
16
|
+
pushSentAt?: Date;
|
|
17
|
+
pushError?: string;
|
|
18
|
+
id: string;
|
|
19
|
+
isRead: boolean;
|
|
20
|
+
isDismissed: boolean;
|
|
21
|
+
createdAt: Date;
|
|
22
|
+
updatedAt: Date;
|
|
23
|
+
pushSent: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type NotificationPk = "id";
|
|
27
|
+
export type NotificationId = Notification[NotificationPk];
|
|
28
|
+
export type NotificationOptionalAttributes = "metadata" | "readAt" | "dismissedAt" | "sourceUserId" | "jukeboxSessionId" | "expiresAt" | "pushSentAt" | "pushError" | "id" | "createdAt" | "updatedAt";
|
|
29
|
+
export type NotificationCreationAttributes = Optional<NotificationAttributes, NotificationOptionalAttributes>;
|
|
30
|
+
|
|
31
|
+
export class Notification extends Model<NotificationAttributes, NotificationCreationAttributes> implements NotificationAttributes {
|
|
32
|
+
targetUserId!: string;
|
|
33
|
+
notificationTypeId!: number;
|
|
34
|
+
metadata?: object;
|
|
35
|
+
readAt?: Date;
|
|
36
|
+
dismissedAt?: Date;
|
|
37
|
+
sourceUserId?: string;
|
|
38
|
+
jukeboxSessionId?: string;
|
|
39
|
+
expiresAt?: Date;
|
|
40
|
+
pushSentAt?: Date;
|
|
41
|
+
pushError?: string;
|
|
42
|
+
id!: string;
|
|
43
|
+
isRead!: boolean;
|
|
44
|
+
isDismissed!: boolean;
|
|
45
|
+
createdAt!: Date;
|
|
46
|
+
updatedAt!: Date;
|
|
47
|
+
pushSent!: boolean;
|
|
48
|
+
|
|
49
|
+
// Notification belongsTo AppUser via sourceUserId
|
|
50
|
+
sourceUser!: AppUser;
|
|
51
|
+
getSourceUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
52
|
+
setSourceUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
53
|
+
createSourceUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
54
|
+
// Notification belongsTo AppUser via targetUserId
|
|
55
|
+
targetUser!: AppUser;
|
|
56
|
+
getTargetUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
57
|
+
setTargetUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
58
|
+
createTargetUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
59
|
+
// Notification belongsTo JukeboxSession via jukeboxSessionId
|
|
60
|
+
jukeboxSession!: JukeboxSession;
|
|
61
|
+
getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
|
|
62
|
+
setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
|
|
63
|
+
createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
|
|
64
|
+
// Notification belongsTo NotificationType via notificationTypeId
|
|
65
|
+
notificationType!: NotificationType;
|
|
66
|
+
getNotificationType!: Sequelize.BelongsToGetAssociationMixin<NotificationType>;
|
|
67
|
+
setNotificationType!: Sequelize.BelongsToSetAssociationMixin<NotificationType, NotificationTypeId>;
|
|
68
|
+
createNotificationType!: Sequelize.BelongsToCreateAssociationMixin<NotificationType>;
|
|
69
|
+
|
|
70
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof Notification {
|
|
71
|
+
return Notification.init({
|
|
72
|
+
targetUserId: {
|
|
73
|
+
type: DataTypes.UUID,
|
|
74
|
+
allowNull: false,
|
|
75
|
+
references: {
|
|
76
|
+
model: 'app_user',
|
|
77
|
+
key: 'id'
|
|
78
|
+
},
|
|
79
|
+
field: 'target_user_id'
|
|
80
|
+
},
|
|
81
|
+
notificationTypeId: {
|
|
82
|
+
type: DataTypes.SMALLINT,
|
|
83
|
+
allowNull: false,
|
|
84
|
+
references: {
|
|
85
|
+
model: 'notification_type',
|
|
86
|
+
key: 'id'
|
|
87
|
+
},
|
|
88
|
+
field: 'notification_type_id'
|
|
89
|
+
},
|
|
90
|
+
metadata: {
|
|
91
|
+
type: DataTypes.JSONB,
|
|
92
|
+
allowNull: true
|
|
93
|
+
},
|
|
94
|
+
readAt: {
|
|
95
|
+
type: DataTypes.DATE,
|
|
96
|
+
allowNull: true,
|
|
97
|
+
field: 'read_at'
|
|
98
|
+
},
|
|
99
|
+
dismissedAt: {
|
|
100
|
+
type: DataTypes.DATE,
|
|
101
|
+
allowNull: true,
|
|
102
|
+
field: 'dismissed_at'
|
|
103
|
+
},
|
|
104
|
+
sourceUserId: {
|
|
105
|
+
type: DataTypes.UUID,
|
|
106
|
+
allowNull: true,
|
|
107
|
+
references: {
|
|
108
|
+
model: 'app_user',
|
|
109
|
+
key: 'id'
|
|
110
|
+
},
|
|
111
|
+
field: 'source_user_id'
|
|
112
|
+
},
|
|
113
|
+
jukeboxSessionId: {
|
|
114
|
+
type: DataTypes.UUID,
|
|
115
|
+
allowNull: true,
|
|
116
|
+
references: {
|
|
117
|
+
model: 'jukebox_session',
|
|
118
|
+
key: 'id'
|
|
119
|
+
},
|
|
120
|
+
field: 'jukebox_session_id'
|
|
121
|
+
},
|
|
122
|
+
expiresAt: {
|
|
123
|
+
type: DataTypes.DATE,
|
|
124
|
+
allowNull: true,
|
|
125
|
+
field: 'expires_at'
|
|
126
|
+
},
|
|
127
|
+
pushSentAt: {
|
|
128
|
+
type: DataTypes.DATE,
|
|
129
|
+
allowNull: true,
|
|
130
|
+
field: 'push_sent_at'
|
|
131
|
+
},
|
|
132
|
+
pushError: {
|
|
133
|
+
type: DataTypes.TEXT,
|
|
134
|
+
allowNull: true,
|
|
135
|
+
field: 'push_error'
|
|
136
|
+
},
|
|
137
|
+
id: {
|
|
138
|
+
type: DataTypes.UUID,
|
|
139
|
+
allowNull: false,
|
|
140
|
+
defaultValue: DataTypes.UUIDV4,
|
|
141
|
+
primaryKey: true
|
|
142
|
+
},
|
|
143
|
+
isRead: {
|
|
144
|
+
type: DataTypes.BOOLEAN,
|
|
145
|
+
allowNull: false,
|
|
146
|
+
defaultValue: false,
|
|
147
|
+
field: 'is_read'
|
|
148
|
+
},
|
|
149
|
+
isDismissed: {
|
|
150
|
+
type: DataTypes.BOOLEAN,
|
|
151
|
+
allowNull: false,
|
|
152
|
+
defaultValue: false,
|
|
153
|
+
field: 'is_dismissed'
|
|
154
|
+
},
|
|
155
|
+
createdAt: {
|
|
156
|
+
type: DataTypes.DATE,
|
|
157
|
+
allowNull: false,
|
|
158
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
159
|
+
field: 'created_at'
|
|
160
|
+
},
|
|
161
|
+
updatedAt: {
|
|
162
|
+
type: DataTypes.DATE,
|
|
163
|
+
allowNull: false,
|
|
164
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
165
|
+
field: 'updated_at'
|
|
166
|
+
},
|
|
167
|
+
pushSent: {
|
|
168
|
+
type: DataTypes.BOOLEAN,
|
|
169
|
+
allowNull: false,
|
|
170
|
+
defaultValue: false,
|
|
171
|
+
field: 'push_sent'
|
|
172
|
+
}
|
|
173
|
+
}, {
|
|
174
|
+
sequelize,
|
|
175
|
+
tableName: 'notification',
|
|
176
|
+
schema: 'eb',
|
|
177
|
+
timestamps: false,
|
|
178
|
+
indexes: [
|
|
179
|
+
{
|
|
180
|
+
name: "idx_notification_expires_at",
|
|
181
|
+
fields: [
|
|
182
|
+
{ name: "expires_at" },
|
|
183
|
+
]
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
name: "idx_notification_target_user_created_at",
|
|
187
|
+
fields: [
|
|
188
|
+
{ name: "target_user_id" },
|
|
189
|
+
{ name: "created_at", order: "DESC" },
|
|
190
|
+
]
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: "notification_pkey",
|
|
194
|
+
unique: true,
|
|
195
|
+
fields: [
|
|
196
|
+
{ name: "id" },
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
]
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { Notification, NotificationId } from './Notification';
|
|
4
|
+
|
|
5
|
+
export interface NotificationTypeAttributes {
|
|
6
|
+
id: number;
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type NotificationTypePk = "id";
|
|
11
|
+
export type NotificationTypeId = NotificationType[NotificationTypePk];
|
|
12
|
+
export type NotificationTypeCreationAttributes = NotificationTypeAttributes;
|
|
13
|
+
|
|
14
|
+
export class NotificationType extends Model<NotificationTypeAttributes, NotificationTypeCreationAttributes> implements NotificationTypeAttributes {
|
|
15
|
+
id!: number;
|
|
16
|
+
name!: string;
|
|
17
|
+
|
|
18
|
+
// NotificationType hasMany Notification via notificationTypeId
|
|
19
|
+
notifications!: Notification[];
|
|
20
|
+
getNotifications!: Sequelize.HasManyGetAssociationsMixin<Notification>;
|
|
21
|
+
setNotifications!: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
|
|
22
|
+
addNotification!: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
|
|
23
|
+
addNotifications!: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
|
|
24
|
+
createNotification!: Sequelize.HasManyCreateAssociationMixin<Notification>;
|
|
25
|
+
removeNotification!: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
|
|
26
|
+
removeNotifications!: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
|
|
27
|
+
hasNotification!: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
|
|
28
|
+
hasNotifications!: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
|
|
29
|
+
countNotifications!: Sequelize.HasManyCountAssociationsMixin;
|
|
30
|
+
|
|
31
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof NotificationType {
|
|
32
|
+
return NotificationType.init({
|
|
33
|
+
id: {
|
|
34
|
+
type: DataTypes.SMALLINT,
|
|
35
|
+
allowNull: false,
|
|
36
|
+
primaryKey: true
|
|
37
|
+
},
|
|
38
|
+
name: {
|
|
39
|
+
type: DataTypes.TEXT,
|
|
40
|
+
allowNull: false,
|
|
41
|
+
unique: "notification_type_name_unique"
|
|
42
|
+
}
|
|
43
|
+
}, {
|
|
44
|
+
sequelize,
|
|
45
|
+
tableName: 'notification_type',
|
|
46
|
+
schema: 'eb',
|
|
47
|
+
timestamps: false,
|
|
48
|
+
indexes: [
|
|
49
|
+
{
|
|
50
|
+
name: "notification_type_name_unique",
|
|
51
|
+
unique: true,
|
|
52
|
+
fields: [
|
|
53
|
+
{ name: "name" },
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "notification_type_pkey",
|
|
58
|
+
unique: true,
|
|
59
|
+
fields: [
|
|
60
|
+
{ name: "id" },
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
package/models/init-models.ts
CHANGED
|
@@ -91,6 +91,10 @@ import { MetricsEvent as _MetricsEvent } from "./MetricsEvent";
|
|
|
91
91
|
import type { MetricsEventAttributes, MetricsEventCreationAttributes } from "./MetricsEvent";
|
|
92
92
|
import { NewsSite as _NewsSite } from "./NewsSite";
|
|
93
93
|
import type { NewsSiteAttributes, NewsSiteCreationAttributes } from "./NewsSite";
|
|
94
|
+
import { Notification as _Notification } from "./Notification";
|
|
95
|
+
import type { NotificationAttributes, NotificationCreationAttributes } from "./Notification";
|
|
96
|
+
import { NotificationType as _NotificationType } from "./NotificationType";
|
|
97
|
+
import type { NotificationTypeAttributes, NotificationTypeCreationAttributes } from "./NotificationType";
|
|
94
98
|
import { PauseStatusType as _PauseStatusType } from "./PauseStatusType";
|
|
95
99
|
import type { PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes } from "./PauseStatusType";
|
|
96
100
|
import { Platform as _Platform } from "./Platform";
|
|
@@ -185,6 +189,8 @@ export {
|
|
|
185
189
|
_MetricsDaily as MetricsDaily,
|
|
186
190
|
_MetricsEvent as MetricsEvent,
|
|
187
191
|
_NewsSite as NewsSite,
|
|
192
|
+
_Notification as Notification,
|
|
193
|
+
_NotificationType as NotificationType,
|
|
188
194
|
_PauseStatusType as PauseStatusType,
|
|
189
195
|
_Platform as Platform,
|
|
190
196
|
_PlatformAlbum as PlatformAlbum,
|
|
@@ -303,6 +309,10 @@ export type {
|
|
|
303
309
|
MetricsEventCreationAttributes,
|
|
304
310
|
NewsSiteAttributes,
|
|
305
311
|
NewsSiteCreationAttributes,
|
|
312
|
+
NotificationAttributes,
|
|
313
|
+
NotificationCreationAttributes,
|
|
314
|
+
NotificationTypeAttributes,
|
|
315
|
+
NotificationTypeCreationAttributes,
|
|
306
316
|
PauseStatusTypeAttributes,
|
|
307
317
|
PauseStatusTypeCreationAttributes,
|
|
308
318
|
PlatformAttributes,
|
|
@@ -398,6 +408,8 @@ export function initModels(sequelize: Sequelize) {
|
|
|
398
408
|
const MetricsDaily = _MetricsDaily.initModel(sequelize);
|
|
399
409
|
const MetricsEvent = _MetricsEvent.initModel(sequelize);
|
|
400
410
|
const NewsSite = _NewsSite.initModel(sequelize);
|
|
411
|
+
const Notification = _Notification.initModel(sequelize);
|
|
412
|
+
const NotificationType = _NotificationType.initModel(sequelize);
|
|
401
413
|
const PauseStatusType = _PauseStatusType.initModel(sequelize);
|
|
402
414
|
const Platform = _Platform.initModel(sequelize);
|
|
403
415
|
const PlatformAlbum = _PlatformAlbum.initModel(sequelize);
|
|
@@ -482,6 +494,10 @@ export function initModels(sequelize: Sequelize) {
|
|
|
482
494
|
AppUser.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackAddedUserId"});
|
|
483
495
|
JukeboxUser.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
|
|
484
496
|
AppUser.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "appUserId"});
|
|
497
|
+
Notification.belongsTo(AppUser, { as: "sourceUser", foreignKey: "sourceUserId"});
|
|
498
|
+
AppUser.hasMany(Notification, { as: "notifications", foreignKey: "sourceUserId"});
|
|
499
|
+
Notification.belongsTo(AppUser, { as: "targetUser", foreignKey: "targetUserId"});
|
|
500
|
+
AppUser.hasMany(Notification, { as: "targetUserNotifications", foreignKey: "targetUserId"});
|
|
485
501
|
PlatformUserAlbum.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
|
|
486
502
|
AppUser.hasMany(PlatformUserAlbum, { as: "platformUserAlbums", foreignKey: "appUserId"});
|
|
487
503
|
PlatformUserPlaylist.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
|
|
@@ -554,6 +570,8 @@ export function initModels(sequelize: Sequelize) {
|
|
|
554
570
|
JukeboxSession.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "jukeboxSessionId"});
|
|
555
571
|
JukeboxUser.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
|
|
556
572
|
JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId"});
|
|
573
|
+
Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
|
|
574
|
+
JukeboxSession.hasMany(Notification, { as: "notifications", foreignKey: "jukeboxSessionId"});
|
|
557
575
|
JukeboxSession.belongsTo(JukeboxStatus, { as: "jukeboxStatus", foreignKey: "jukeboxStatusId"});
|
|
558
576
|
JukeboxStatus.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "jukeboxStatusId"});
|
|
559
577
|
JukeboxSession.belongsTo(JukeboxTerminationCondition, { as: "terminationCondition", foreignKey: "terminationConditionId"});
|
|
@@ -562,6 +580,8 @@ export function initModels(sequelize: Sequelize) {
|
|
|
562
580
|
JukeboxType.hasMany(JukeboxSession, { as: "jukeboxSessions", foreignKey: "typeId"});
|
|
563
581
|
JukeboxUser.belongsTo(JukeboxUserType, { as: "jukeboxUserType", foreignKey: "jukeboxUserTypeId"});
|
|
564
582
|
JukeboxUserType.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxUserTypeId"});
|
|
583
|
+
Notification.belongsTo(NotificationType, { as: "notificationType", foreignKey: "notificationTypeId"});
|
|
584
|
+
NotificationType.hasMany(Notification, { as: "notifications", foreignKey: "notificationTypeId"});
|
|
565
585
|
JukeboxUser.belongsTo(PauseStatusType, { as: "pauseStatusType", foreignKey: "pauseStatusTypeId"});
|
|
566
586
|
PauseStatusType.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "pauseStatusTypeId"});
|
|
567
587
|
AppUserPlatformRelation.belongsTo(Platform, { as: "platform", foreignKey: "platformId"});
|
|
@@ -696,6 +716,8 @@ export function initModels(sequelize: Sequelize) {
|
|
|
696
716
|
MetricsDaily: MetricsDaily,
|
|
697
717
|
MetricsEvent: MetricsEvent,
|
|
698
718
|
NewsSite: NewsSite,
|
|
719
|
+
Notification: Notification,
|
|
720
|
+
NotificationType: NotificationType,
|
|
699
721
|
PauseStatusType: PauseStatusType,
|
|
700
722
|
Platform: Platform,
|
|
701
723
|
PlatformAlbum: PlatformAlbum,
|