@earbug/db-models 0.0.37 → 0.0.39
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/JukeboxUser.js +7 -0
- package/dist/UserMessages.d.ts +46 -0
- package/dist/UserMessages.js +154 -0
- package/dist/init-models.d.ts +5 -2
- package/dist/init-models.js +11 -1
- package/models/AppUser.ts +25 -0
- package/models/JukeboxUser.ts +7 -0
- package/models/UserMessages.ts +176 -0
- package/models/init-models.ts +13 -0
- package/package.json +1 -1
package/dist/AppUser.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ import type { UserContacts, UserContactsId } from './UserContacts';
|
|
|
19
19
|
import type { UserEngagementFactor, UserEngagementFactorId } from './UserEngagementFactor';
|
|
20
20
|
import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
|
|
21
21
|
import type { UserLikes, UserLikesId } from './UserLikes';
|
|
22
|
+
import type { UserMessages, UserMessagesId } from './UserMessages';
|
|
22
23
|
export interface AppUserAttributes {
|
|
23
24
|
email: string;
|
|
24
25
|
firstName: string;
|
|
@@ -274,6 +275,28 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
|
|
|
274
275
|
hasUserLike: Sequelize.HasManyHasAssociationMixin<UserLikes, UserLikesId>;
|
|
275
276
|
hasUserLikes: Sequelize.HasManyHasAssociationsMixin<UserLikes, UserLikesId>;
|
|
276
277
|
countUserLikes: Sequelize.HasManyCountAssociationsMixin;
|
|
278
|
+
userMessages: UserMessages[];
|
|
279
|
+
getUserMessages: Sequelize.HasManyGetAssociationsMixin<UserMessages>;
|
|
280
|
+
setUserMessages: Sequelize.HasManySetAssociationsMixin<UserMessages, UserMessagesId>;
|
|
281
|
+
addUserMessage: Sequelize.HasManyAddAssociationMixin<UserMessages, UserMessagesId>;
|
|
282
|
+
addUserMessages: Sequelize.HasManyAddAssociationsMixin<UserMessages, UserMessagesId>;
|
|
283
|
+
createUserMessage: Sequelize.HasManyCreateAssociationMixin<UserMessages>;
|
|
284
|
+
removeUserMessage: Sequelize.HasManyRemoveAssociationMixin<UserMessages, UserMessagesId>;
|
|
285
|
+
removeUserMessages: Sequelize.HasManyRemoveAssociationsMixin<UserMessages, UserMessagesId>;
|
|
286
|
+
hasUserMessage: Sequelize.HasManyHasAssociationMixin<UserMessages, UserMessagesId>;
|
|
287
|
+
hasUserMessages: Sequelize.HasManyHasAssociationsMixin<UserMessages, UserMessagesId>;
|
|
288
|
+
countUserMessages: Sequelize.HasManyCountAssociationsMixin;
|
|
289
|
+
senderUserMessages: UserMessages[];
|
|
290
|
+
getSenderUserMessages: Sequelize.HasManyGetAssociationsMixin<UserMessages>;
|
|
291
|
+
setSenderUserMessages: Sequelize.HasManySetAssociationsMixin<UserMessages, UserMessagesId>;
|
|
292
|
+
addSenderUserMessage: Sequelize.HasManyAddAssociationMixin<UserMessages, UserMessagesId>;
|
|
293
|
+
addSenderUserMessages: Sequelize.HasManyAddAssociationsMixin<UserMessages, UserMessagesId>;
|
|
294
|
+
createSenderUserMessage: Sequelize.HasManyCreateAssociationMixin<UserMessages>;
|
|
295
|
+
removeSenderUserMessage: Sequelize.HasManyRemoveAssociationMixin<UserMessages, UserMessagesId>;
|
|
296
|
+
removeSenderUserMessages: Sequelize.HasManyRemoveAssociationsMixin<UserMessages, UserMessagesId>;
|
|
297
|
+
hasSenderUserMessage: Sequelize.HasManyHasAssociationMixin<UserMessages, UserMessagesId>;
|
|
298
|
+
hasSenderUserMessages: Sequelize.HasManyHasAssociationsMixin<UserMessages, UserMessagesId>;
|
|
299
|
+
countSenderUserMessages: Sequelize.HasManyCountAssociationsMixin;
|
|
277
300
|
state: State;
|
|
278
301
|
getState: Sequelize.BelongsToGetAssociationMixin<State>;
|
|
279
302
|
setState: Sequelize.BelongsToSetAssociationMixin<State, StateId>;
|
package/dist/JukeboxUser.js
CHANGED
|
@@ -119,6 +119,13 @@ class JukeboxUser extends sequelize_1.Model {
|
|
|
119
119
|
{ name: "app_user_id" },
|
|
120
120
|
]
|
|
121
121
|
},
|
|
122
|
+
{
|
|
123
|
+
name: "idx_jukebox_user_one_active_per_user",
|
|
124
|
+
unique: true,
|
|
125
|
+
fields: [
|
|
126
|
+
{ name: "app_user_id" },
|
|
127
|
+
]
|
|
128
|
+
},
|
|
122
129
|
{
|
|
123
130
|
name: "jukebox_user_pkey",
|
|
124
131
|
unique: true,
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AppUser, AppUserId } from './AppUser';
|
|
4
|
+
export interface UserMessagesAttributes {
|
|
5
|
+
senderId: string;
|
|
6
|
+
recipientId: string;
|
|
7
|
+
message: string;
|
|
8
|
+
replyMessageId?: string;
|
|
9
|
+
id: string;
|
|
10
|
+
hasBeenRead: boolean;
|
|
11
|
+
hasBeenEdited: boolean;
|
|
12
|
+
hasDeletedBySender: boolean;
|
|
13
|
+
hasDeletedByReceiver: boolean;
|
|
14
|
+
createDate: Date;
|
|
15
|
+
updateDate: Date;
|
|
16
|
+
}
|
|
17
|
+
export type UserMessagesPk = "id";
|
|
18
|
+
export type UserMessagesId = UserMessages[UserMessagesPk];
|
|
19
|
+
export type UserMessagesOptionalAttributes = "replyMessageId" | "id" | "createDate" | "updateDate";
|
|
20
|
+
export type UserMessagesCreationAttributes = Optional<UserMessagesAttributes, UserMessagesOptionalAttributes>;
|
|
21
|
+
export declare class UserMessages extends Model<UserMessagesAttributes, UserMessagesCreationAttributes> implements UserMessagesAttributes {
|
|
22
|
+
senderId: string;
|
|
23
|
+
recipientId: string;
|
|
24
|
+
message: string;
|
|
25
|
+
replyMessageId?: string;
|
|
26
|
+
id: string;
|
|
27
|
+
hasBeenRead: boolean;
|
|
28
|
+
hasBeenEdited: boolean;
|
|
29
|
+
hasDeletedBySender: boolean;
|
|
30
|
+
hasDeletedByReceiver: boolean;
|
|
31
|
+
createDate: Date;
|
|
32
|
+
updateDate: Date;
|
|
33
|
+
recipient: AppUser;
|
|
34
|
+
getRecipient: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
35
|
+
setRecipient: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
36
|
+
createRecipient: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
37
|
+
sender: AppUser;
|
|
38
|
+
getSender: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
39
|
+
setSender: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
40
|
+
createSender: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
41
|
+
replyMessage: UserMessages;
|
|
42
|
+
getReplyMessage: Sequelize.BelongsToGetAssociationMixin<UserMessages>;
|
|
43
|
+
setReplyMessage: Sequelize.BelongsToSetAssociationMixin<UserMessages, UserMessagesId>;
|
|
44
|
+
createReplyMessage: Sequelize.BelongsToCreateAssociationMixin<UserMessages>;
|
|
45
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof UserMessages;
|
|
46
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
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.UserMessages = void 0;
|
|
27
|
+
const Sequelize = __importStar(require("sequelize"));
|
|
28
|
+
const sequelize_1 = require("sequelize");
|
|
29
|
+
class UserMessages extends sequelize_1.Model {
|
|
30
|
+
static initModel(sequelize) {
|
|
31
|
+
return UserMessages.init({
|
|
32
|
+
senderId: {
|
|
33
|
+
type: sequelize_1.DataTypes.UUID,
|
|
34
|
+
allowNull: false,
|
|
35
|
+
references: {
|
|
36
|
+
model: 'app_user',
|
|
37
|
+
key: 'id'
|
|
38
|
+
},
|
|
39
|
+
field: 'sender_id'
|
|
40
|
+
},
|
|
41
|
+
recipientId: {
|
|
42
|
+
type: sequelize_1.DataTypes.UUID,
|
|
43
|
+
allowNull: false,
|
|
44
|
+
references: {
|
|
45
|
+
model: 'app_user',
|
|
46
|
+
key: 'id'
|
|
47
|
+
},
|
|
48
|
+
field: 'recipient_id'
|
|
49
|
+
},
|
|
50
|
+
message: {
|
|
51
|
+
type: sequelize_1.DataTypes.STRING(1000),
|
|
52
|
+
allowNull: false
|
|
53
|
+
},
|
|
54
|
+
replyMessageId: {
|
|
55
|
+
type: sequelize_1.DataTypes.UUID,
|
|
56
|
+
allowNull: true,
|
|
57
|
+
references: {
|
|
58
|
+
model: 'user_messages',
|
|
59
|
+
key: 'id'
|
|
60
|
+
},
|
|
61
|
+
field: 'reply_message_id'
|
|
62
|
+
},
|
|
63
|
+
id: {
|
|
64
|
+
type: sequelize_1.DataTypes.UUID,
|
|
65
|
+
allowNull: false,
|
|
66
|
+
defaultValue: sequelize_1.DataTypes.UUIDV4,
|
|
67
|
+
primaryKey: true
|
|
68
|
+
},
|
|
69
|
+
hasBeenRead: {
|
|
70
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
71
|
+
allowNull: false,
|
|
72
|
+
defaultValue: false,
|
|
73
|
+
field: 'has_been_read'
|
|
74
|
+
},
|
|
75
|
+
hasBeenEdited: {
|
|
76
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
77
|
+
allowNull: false,
|
|
78
|
+
defaultValue: false,
|
|
79
|
+
field: 'has_been_edited'
|
|
80
|
+
},
|
|
81
|
+
hasDeletedBySender: {
|
|
82
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
83
|
+
allowNull: false,
|
|
84
|
+
defaultValue: false,
|
|
85
|
+
field: 'has_deleted_by_sender'
|
|
86
|
+
},
|
|
87
|
+
hasDeletedByReceiver: {
|
|
88
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
89
|
+
allowNull: false,
|
|
90
|
+
defaultValue: false,
|
|
91
|
+
field: 'has_deleted_by_receiver'
|
|
92
|
+
},
|
|
93
|
+
createDate: {
|
|
94
|
+
type: sequelize_1.DataTypes.DATE,
|
|
95
|
+
allowNull: false,
|
|
96
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
97
|
+
field: 'create_date'
|
|
98
|
+
},
|
|
99
|
+
updateDate: {
|
|
100
|
+
type: sequelize_1.DataTypes.DATE,
|
|
101
|
+
allowNull: false,
|
|
102
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
103
|
+
field: 'update_date'
|
|
104
|
+
}
|
|
105
|
+
}, {
|
|
106
|
+
sequelize,
|
|
107
|
+
tableName: 'user_messages',
|
|
108
|
+
schema: 'eb',
|
|
109
|
+
timestamps: false,
|
|
110
|
+
indexes: [
|
|
111
|
+
{
|
|
112
|
+
name: "idx_user_messages_conversation",
|
|
113
|
+
fields: [
|
|
114
|
+
{ name: "sender_id" },
|
|
115
|
+
{ name: "recipient_id" },
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "idx_user_messages_recipient",
|
|
120
|
+
fields: [
|
|
121
|
+
{ name: "recipient_id" },
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: "idx_user_messages_reply",
|
|
126
|
+
fields: [
|
|
127
|
+
{ name: "reply_message_id" },
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: "idx_user_messages_sender",
|
|
132
|
+
fields: [
|
|
133
|
+
{ name: "sender_id" },
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "idx_user_messages_unread",
|
|
138
|
+
fields: [
|
|
139
|
+
{ name: "recipient_id" },
|
|
140
|
+
{ name: "has_been_read" },
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: "user_messages_pkey",
|
|
145
|
+
unique: true,
|
|
146
|
+
fields: [
|
|
147
|
+
{ name: "id" },
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
]
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.UserMessages = UserMessages;
|
package/dist/init-models.d.ts
CHANGED
|
@@ -197,8 +197,10 @@ import { UserGenreAffinity as _UserGenreAffinity } from "./UserGenreAffinity";
|
|
|
197
197
|
import type { UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes } from "./UserGenreAffinity";
|
|
198
198
|
import { UserLikes as _UserLikes } from "./UserLikes";
|
|
199
199
|
import type { UserLikesAttributes, UserLikesCreationAttributes } from "./UserLikes";
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
import { UserMessages as _UserMessages } from "./UserMessages";
|
|
201
|
+
import type { UserMessagesAttributes, UserMessagesCreationAttributes } from "./UserMessages";
|
|
202
|
+
export { _AccessControlPreference as AccessControlPreference, _AffinityRelationshipType as AffinityRelationshipType, _AffinityTier as AffinityTier, _AppUser as AppUser, _AppUserDevice as AppUserDevice, _AppUserFollowRelation as AppUserFollowRelation, _AppUserPlatformRelation as AppUserPlatformRelation, _CanonAlbum as CanonAlbum, _CanonAlbumExternalReferenceRelation as CanonAlbumExternalReferenceRelation, _CanonAlbumGenreRelation as CanonAlbumGenreRelation, _CanonAlbumImageHarvested as CanonAlbumImageHarvested, _CanonAlbumLabelRelation as CanonAlbumLabelRelation, _CanonAlbumTrackRelation as CanonAlbumTrackRelation, _CanonArtist as CanonArtist, _CanonArtistAlbumRelation as CanonArtistAlbumRelation, _CanonArtistExternalReferenceRelation as CanonArtistExternalReferenceRelation, _CanonArtistGenreRelation as CanonArtistGenreRelation, _CanonArtistImageHarvested as CanonArtistImageHarvested, _CanonArtistMemberRelation as CanonArtistMemberRelation, _CanonArtistTrackRelation as CanonArtistTrackRelation, _CanonGenre as CanonGenre, _CanonGenreExternalReferenceRelation as CanonGenreExternalReferenceRelation, _CanonLabel as CanonLabel, _CanonLabelExternalReferenceRelation as CanonLabelExternalReferenceRelation, _CanonMember as CanonMember, _CanonMemberExternalReferenceRelation as CanonMemberExternalReferenceRelation, _CanonToPlatformAlbumRelation as CanonToPlatformAlbumRelation, _CanonToPlatformArtistRelation as CanonToPlatformArtistRelation, _CanonToPlatformGenreRelation as CanonToPlatformGenreRelation, _CanonToPlatformTrackRelation as CanonToPlatformTrackRelation, _CanonTrack as CanonTrack, _ConfigParam as ConfigParam, _ExternalReference as ExternalReference, _FeedConfig as FeedConfig, _FeedContentType as FeedContentType, _GuestUser as GuestUser, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity, _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MerchItem as MerchItem, _MerchOrchestration as MerchOrchestration, _MerchPlatform as MerchPlatform, _MerchType as MerchType, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsArticle as NewsArticle, _NewsPlatform as NewsPlatform, _NewsSite as NewsSite, _Notification as Notification, _NotificationType as NotificationType, _PauseStatusType as PauseStatusType, _Platform as Platform, _PlatformAlbum as PlatformAlbum, _PlatformAlbumGenreRelation as PlatformAlbumGenreRelation, _PlatformAlbumTrackRelation as PlatformAlbumTrackRelation, _PlatformArtist as PlatformArtist, _PlatformArtistAlbumRelation as PlatformArtistAlbumRelation, _PlatformArtistGenreRelation as PlatformArtistGenreRelation, _PlatformArtistTrackRelation as PlatformArtistTrackRelation, _PlatformGenre as PlatformGenre, _PlatformTrack as PlatformTrack, _PlatformTrackGenreRelation as PlatformTrackGenreRelation, _PlatformUserAlbum as PlatformUserAlbum, _PlatformUserAlbumTrack as PlatformUserAlbumTrack, _PlatformUserPlaylist as PlatformUserPlaylist, _PlatformUserPlaylistArtistAffinity as PlatformUserPlaylistArtistAffinity, _PlatformUserPlaylistGenreAffinity as PlatformUserPlaylistGenreAffinity, _PlatformUserPlaylistTrack as PlatformUserPlaylistTrack, _PlaybackStatus as PlaybackStatus, _PlaybackStatusType as PlaybackStatusType, _RadioShow as RadioShow, _RadioShowGenres as RadioShowGenres, _RadioShowMedia as RadioShowMedia, _RadioShowPlacement as RadioShowPlacement, _RadioShowPublishRequests as RadioShowPublishRequests, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserAffinity as UserAffinity, _UserArtistAffinity as UserArtistAffinity, _UserBookmarks as UserBookmarks, _UserComments as UserComments, _UserContacts as UserContacts, _UserEngagementFactor as UserEngagementFactor, _UserGenreAffinity as UserGenreAffinity, _UserLikes as UserLikes, _UserMessages as UserMessages, };
|
|
203
|
+
export type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes, AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes, AffinityTierAttributes, AffinityTierCreationAttributes, AppUserAttributes, AppUserCreationAttributes, AppUserDeviceAttributes, AppUserDeviceCreationAttributes, AppUserFollowRelationAttributes, AppUserFollowRelationCreationAttributes, AppUserPlatformRelationAttributes, AppUserPlatformRelationCreationAttributes, CanonAlbumAttributes, CanonAlbumCreationAttributes, CanonAlbumExternalReferenceRelationAttributes, CanonAlbumExternalReferenceRelationCreationAttributes, CanonAlbumGenreRelationAttributes, CanonAlbumGenreRelationCreationAttributes, CanonAlbumImageHarvestedAttributes, CanonAlbumImageHarvestedCreationAttributes, CanonAlbumLabelRelationAttributes, CanonAlbumLabelRelationCreationAttributes, CanonAlbumTrackRelationAttributes, CanonAlbumTrackRelationCreationAttributes, CanonArtistAttributes, CanonArtistCreationAttributes, CanonArtistAlbumRelationAttributes, CanonArtistAlbumRelationCreationAttributes, CanonArtistExternalReferenceRelationAttributes, CanonArtistExternalReferenceRelationCreationAttributes, CanonArtistGenreRelationAttributes, CanonArtistGenreRelationCreationAttributes, CanonArtistImageHarvestedAttributes, CanonArtistImageHarvestedCreationAttributes, CanonArtistMemberRelationAttributes, CanonArtistMemberRelationCreationAttributes, CanonArtistTrackRelationAttributes, CanonArtistTrackRelationCreationAttributes, CanonGenreAttributes, CanonGenreCreationAttributes, CanonGenreExternalReferenceRelationAttributes, CanonGenreExternalReferenceRelationCreationAttributes, CanonLabelAttributes, CanonLabelCreationAttributes, CanonLabelExternalReferenceRelationAttributes, CanonLabelExternalReferenceRelationCreationAttributes, CanonMemberAttributes, CanonMemberCreationAttributes, CanonMemberExternalReferenceRelationAttributes, CanonMemberExternalReferenceRelationCreationAttributes, CanonToPlatformAlbumRelationAttributes, CanonToPlatformAlbumRelationCreationAttributes, CanonToPlatformArtistRelationAttributes, CanonToPlatformArtistRelationCreationAttributes, CanonToPlatformGenreRelationAttributes, CanonToPlatformGenreRelationCreationAttributes, CanonToPlatformTrackRelationAttributes, CanonToPlatformTrackRelationCreationAttributes, CanonTrackAttributes, CanonTrackCreationAttributes, ConfigParamAttributes, ConfigParamCreationAttributes, ExternalReferenceAttributes, ExternalReferenceCreationAttributes, FeedConfigAttributes, FeedConfigCreationAttributes, FeedContentTypeAttributes, FeedContentTypeCreationAttributes, GuestUserAttributes, GuestUserCreationAttributes, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes, JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MerchItemAttributes, MerchItemCreationAttributes, MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes, MerchPlatformAttributes, MerchPlatformCreationAttributes, MerchTypeAttributes, MerchTypeCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsArticleAttributes, NewsArticleCreationAttributes, NewsPlatformAttributes, NewsPlatformCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, NotificationAttributes, NotificationCreationAttributes, NotificationTypeAttributes, NotificationTypeCreationAttributes, PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes, PlatformAttributes, PlatformCreationAttributes, PlatformAlbumAttributes, PlatformAlbumCreationAttributes, PlatformAlbumGenreRelationAttributes, PlatformAlbumGenreRelationCreationAttributes, PlatformAlbumTrackRelationAttributes, PlatformAlbumTrackRelationCreationAttributes, PlatformArtistAttributes, PlatformArtistCreationAttributes, PlatformArtistAlbumRelationAttributes, PlatformArtistAlbumRelationCreationAttributes, PlatformArtistGenreRelationAttributes, PlatformArtistGenreRelationCreationAttributes, PlatformArtistTrackRelationAttributes, PlatformArtistTrackRelationCreationAttributes, PlatformGenreAttributes, PlatformGenreCreationAttributes, PlatformTrackAttributes, PlatformTrackCreationAttributes, PlatformTrackGenreRelationAttributes, PlatformTrackGenreRelationCreationAttributes, PlatformUserAlbumAttributes, PlatformUserAlbumCreationAttributes, PlatformUserAlbumTrackAttributes, PlatformUserAlbumTrackCreationAttributes, PlatformUserPlaylistAttributes, PlatformUserPlaylistCreationAttributes, PlatformUserPlaylistArtistAffinityAttributes, PlatformUserPlaylistArtistAffinityCreationAttributes, PlatformUserPlaylistGenreAffinityAttributes, PlatformUserPlaylistGenreAffinityCreationAttributes, PlatformUserPlaylistTrackAttributes, PlatformUserPlaylistTrackCreationAttributes, PlaybackStatusAttributes, PlaybackStatusCreationAttributes, PlaybackStatusTypeAttributes, PlaybackStatusTypeCreationAttributes, RadioShowAttributes, RadioShowCreationAttributes, RadioShowGenresAttributes, RadioShowGenresCreationAttributes, RadioShowMediaAttributes, RadioShowMediaCreationAttributes, RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes, RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes, UserBookmarksAttributes, UserBookmarksCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, UserMessagesAttributes, UserMessagesCreationAttributes, };
|
|
202
204
|
export declare function initModels(sequelize: Sequelize): {
|
|
203
205
|
AccessControlPreference: typeof _AccessControlPreference;
|
|
204
206
|
AffinityRelationshipType: typeof _AffinityRelationshipType;
|
|
@@ -299,4 +301,5 @@ export declare function initModels(sequelize: Sequelize): {
|
|
|
299
301
|
UserEngagementFactor: typeof _UserEngagementFactor;
|
|
300
302
|
UserGenreAffinity: typeof _UserGenreAffinity;
|
|
301
303
|
UserLikes: typeof _UserLikes;
|
|
304
|
+
UserMessages: typeof _UserMessages;
|
|
302
305
|
};
|
package/dist/init-models.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.KnexMigrations = exports.JukeboxUserType = exports.JukeboxUser = exports.JukeboxType = exports.JukeboxTerminationCondition = exports.JukeboxStatus = exports.JukeboxSessionGenreAffinity = exports.JukeboxSessionArtistAffinity = exports.JukeboxSession = exports.JukeboxQueueMode = exports.JukeboxQueueEntry = exports.JukeboxInvite = exports.JukeboxCanonGenreRelation = exports.JukeboxAccessType = exports.GuestUser = exports.FeedContentType = exports.FeedConfig = exports.ExternalReference = exports.ConfigParam = exports.CanonTrack = exports.CanonToPlatformTrackRelation = exports.CanonToPlatformGenreRelation = exports.CanonToPlatformArtistRelation = exports.CanonToPlatformAlbumRelation = exports.CanonMemberExternalReferenceRelation = exports.CanonMember = exports.CanonLabelExternalReferenceRelation = exports.CanonLabel = exports.CanonGenreExternalReferenceRelation = exports.CanonGenre = exports.CanonArtistTrackRelation = exports.CanonArtistMemberRelation = exports.CanonArtistImageHarvested = exports.CanonArtistGenreRelation = exports.CanonArtistExternalReferenceRelation = exports.CanonArtistAlbumRelation = exports.CanonArtist = exports.CanonAlbumTrackRelation = exports.CanonAlbumLabelRelation = exports.CanonAlbumImageHarvested = exports.CanonAlbumGenreRelation = exports.CanonAlbumExternalReferenceRelation = exports.CanonAlbum = exports.AppUserPlatformRelation = exports.AppUserFollowRelation = exports.AppUserDevice = exports.AppUser = exports.AffinityTier = exports.AffinityRelationshipType = exports.AccessControlPreference = void 0;
|
|
4
|
-
exports.UserLikes = exports.UserGenreAffinity = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = exports.UserBookmarks = exports.UserArtistAffinity = exports.UserAffinity = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = exports.RadioShowPublishRequests = exports.RadioShowPlacement = exports.RadioShowMedia = exports.RadioShowGenres = exports.RadioShow = exports.PlaybackStatusType = exports.PlaybackStatus = exports.PlatformUserPlaylistTrack = exports.PlatformUserPlaylistGenreAffinity = exports.PlatformUserPlaylistArtistAffinity = exports.PlatformUserPlaylist = exports.PlatformUserAlbumTrack = exports.PlatformUserAlbum = exports.PlatformTrackGenreRelation = exports.PlatformTrack = exports.PlatformGenre = exports.PlatformArtistTrackRelation = exports.PlatformArtistGenreRelation = exports.PlatformArtistAlbumRelation = exports.PlatformArtist = exports.PlatformAlbumTrackRelation = exports.PlatformAlbumGenreRelation = exports.PlatformAlbum = exports.Platform = exports.PauseStatusType = exports.NotificationType = exports.Notification = exports.NewsSite = exports.NewsPlatform = exports.NewsArticle = exports.MetricsEvent = exports.MetricsDaily = exports.MerchType = exports.MerchPlatform = exports.MerchOrchestration = exports.MerchItem = exports.KnexMigrationsLock = void 0;
|
|
4
|
+
exports.UserMessages = exports.UserLikes = exports.UserGenreAffinity = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = exports.UserBookmarks = exports.UserArtistAffinity = exports.UserAffinity = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = exports.RadioShowPublishRequests = exports.RadioShowPlacement = exports.RadioShowMedia = exports.RadioShowGenres = exports.RadioShow = exports.PlaybackStatusType = exports.PlaybackStatus = exports.PlatformUserPlaylistTrack = exports.PlatformUserPlaylistGenreAffinity = exports.PlatformUserPlaylistArtistAffinity = exports.PlatformUserPlaylist = exports.PlatformUserAlbumTrack = exports.PlatformUserAlbum = exports.PlatformTrackGenreRelation = exports.PlatformTrack = exports.PlatformGenre = exports.PlatformArtistTrackRelation = exports.PlatformArtistGenreRelation = exports.PlatformArtistAlbumRelation = exports.PlatformArtist = exports.PlatformAlbumTrackRelation = exports.PlatformAlbumGenreRelation = exports.PlatformAlbum = exports.Platform = exports.PauseStatusType = exports.NotificationType = exports.Notification = exports.NewsSite = exports.NewsPlatform = exports.NewsArticle = exports.MetricsEvent = exports.MetricsDaily = exports.MerchType = exports.MerchPlatform = exports.MerchOrchestration = exports.MerchItem = exports.KnexMigrationsLock = void 0;
|
|
5
5
|
exports.initModels = initModels;
|
|
6
6
|
const AccessControlPreference_1 = require("./AccessControlPreference");
|
|
7
7
|
Object.defineProperty(exports, "AccessControlPreference", { enumerable: true, get: function () { return AccessControlPreference_1.AccessControlPreference; } });
|
|
@@ -201,6 +201,8 @@ const UserGenreAffinity_1 = require("./UserGenreAffinity");
|
|
|
201
201
|
Object.defineProperty(exports, "UserGenreAffinity", { enumerable: true, get: function () { return UserGenreAffinity_1.UserGenreAffinity; } });
|
|
202
202
|
const UserLikes_1 = require("./UserLikes");
|
|
203
203
|
Object.defineProperty(exports, "UserLikes", { enumerable: true, get: function () { return UserLikes_1.UserLikes; } });
|
|
204
|
+
const UserMessages_1 = require("./UserMessages");
|
|
205
|
+
Object.defineProperty(exports, "UserMessages", { enumerable: true, get: function () { return UserMessages_1.UserMessages; } });
|
|
204
206
|
function initModels(sequelize) {
|
|
205
207
|
const AccessControlPreference = AccessControlPreference_1.AccessControlPreference.initModel(sequelize);
|
|
206
208
|
const AffinityRelationshipType = AffinityRelationshipType_1.AffinityRelationshipType.initModel(sequelize);
|
|
@@ -301,6 +303,7 @@ function initModels(sequelize) {
|
|
|
301
303
|
const UserEngagementFactor = UserEngagementFactor_1.UserEngagementFactor.initModel(sequelize);
|
|
302
304
|
const UserGenreAffinity = UserGenreAffinity_1.UserGenreAffinity.initModel(sequelize);
|
|
303
305
|
const UserLikes = UserLikes_1.UserLikes.initModel(sequelize);
|
|
306
|
+
const UserMessages = UserMessages_1.UserMessages.initModel(sequelize);
|
|
304
307
|
CanonAlbum.belongsToMany(CanonTrack, { as: 'canonTrackIdCanonTracks', through: CanonAlbumTrackRelation, foreignKey: "canonAlbumId", otherKey: "canonTrackId" });
|
|
305
308
|
CanonAlbum.belongsToMany(ExternalReference, { as: 'externalReferenceIdExternalReferences', through: CanonAlbumExternalReferenceRelation, foreignKey: "canonAlbumId", otherKey: "externalReferenceId" });
|
|
306
309
|
CanonAlbum.belongsToMany(PlatformAlbum, { as: 'platformAlbumIdPlatformAlbums', through: CanonToPlatformAlbumRelation, foreignKey: "canonAlbumId", otherKey: "platformAlbumId" });
|
|
@@ -401,6 +404,10 @@ function initModels(sequelize) {
|
|
|
401
404
|
AppUser.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "userId" });
|
|
402
405
|
UserLikes.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId" });
|
|
403
406
|
AppUser.hasMany(UserLikes, { as: "userLikes", foreignKey: "appUserId" });
|
|
407
|
+
UserMessages.belongsTo(AppUser, { as: "recipient", foreignKey: "recipientId" });
|
|
408
|
+
AppUser.hasMany(UserMessages, { as: "userMessages", foreignKey: "recipientId" });
|
|
409
|
+
UserMessages.belongsTo(AppUser, { as: "sender", foreignKey: "senderId" });
|
|
410
|
+
AppUser.hasMany(UserMessages, { as: "senderUserMessages", foreignKey: "senderId" });
|
|
404
411
|
CanonAlbumExternalReferenceRelation.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId" });
|
|
405
412
|
CanonAlbum.hasMany(CanonAlbumExternalReferenceRelation, { as: "canonAlbumExternalReferenceRelations", foreignKey: "canonAlbumId" });
|
|
406
413
|
CanonAlbumImageHarvested.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId" });
|
|
@@ -645,6 +652,8 @@ function initModels(sequelize) {
|
|
|
645
652
|
TrackDeletionReason.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackDeletionReasonId" });
|
|
646
653
|
UserComments.belongsTo(UserComments, { as: "replyComment", foreignKey: "replyCommentId" });
|
|
647
654
|
UserComments.hasMany(UserComments, { as: "userComments", foreignKey: "replyCommentId" });
|
|
655
|
+
UserMessages.belongsTo(UserMessages, { as: "replyMessage", foreignKey: "replyMessageId" });
|
|
656
|
+
UserMessages.hasMany(UserMessages, { as: "userMessages", foreignKey: "replyMessageId" });
|
|
648
657
|
return {
|
|
649
658
|
AccessControlPreference: AccessControlPreference,
|
|
650
659
|
AffinityRelationshipType: AffinityRelationshipType,
|
|
@@ -745,5 +754,6 @@ function initModels(sequelize) {
|
|
|
745
754
|
UserEngagementFactor: UserEngagementFactor,
|
|
746
755
|
UserGenreAffinity: UserGenreAffinity,
|
|
747
756
|
UserLikes: UserLikes,
|
|
757
|
+
UserMessages: UserMessages,
|
|
748
758
|
};
|
|
749
759
|
}
|
package/models/AppUser.ts
CHANGED
|
@@ -19,6 +19,7 @@ import type { UserContacts, UserContactsId } from './UserContacts';
|
|
|
19
19
|
import type { UserEngagementFactor, UserEngagementFactorId } from './UserEngagementFactor';
|
|
20
20
|
import type { UserGenreAffinity, UserGenreAffinityId } from './UserGenreAffinity';
|
|
21
21
|
import type { UserLikes, UserLikesId } from './UserLikes';
|
|
22
|
+
import type { UserMessages, UserMessagesId } from './UserMessages';
|
|
22
23
|
|
|
23
24
|
export interface AppUserAttributes {
|
|
24
25
|
email: string;
|
|
@@ -299,6 +300,30 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
|
|
|
299
300
|
hasUserLike!: Sequelize.HasManyHasAssociationMixin<UserLikes, UserLikesId>;
|
|
300
301
|
hasUserLikes!: Sequelize.HasManyHasAssociationsMixin<UserLikes, UserLikesId>;
|
|
301
302
|
countUserLikes!: Sequelize.HasManyCountAssociationsMixin;
|
|
303
|
+
// AppUser hasMany UserMessages via recipientId
|
|
304
|
+
userMessages!: UserMessages[];
|
|
305
|
+
getUserMessages!: Sequelize.HasManyGetAssociationsMixin<UserMessages>;
|
|
306
|
+
setUserMessages!: Sequelize.HasManySetAssociationsMixin<UserMessages, UserMessagesId>;
|
|
307
|
+
addUserMessage!: Sequelize.HasManyAddAssociationMixin<UserMessages, UserMessagesId>;
|
|
308
|
+
addUserMessages!: Sequelize.HasManyAddAssociationsMixin<UserMessages, UserMessagesId>;
|
|
309
|
+
createUserMessage!: Sequelize.HasManyCreateAssociationMixin<UserMessages>;
|
|
310
|
+
removeUserMessage!: Sequelize.HasManyRemoveAssociationMixin<UserMessages, UserMessagesId>;
|
|
311
|
+
removeUserMessages!: Sequelize.HasManyRemoveAssociationsMixin<UserMessages, UserMessagesId>;
|
|
312
|
+
hasUserMessage!: Sequelize.HasManyHasAssociationMixin<UserMessages, UserMessagesId>;
|
|
313
|
+
hasUserMessages!: Sequelize.HasManyHasAssociationsMixin<UserMessages, UserMessagesId>;
|
|
314
|
+
countUserMessages!: Sequelize.HasManyCountAssociationsMixin;
|
|
315
|
+
// AppUser hasMany UserMessages via senderId
|
|
316
|
+
senderUserMessages!: UserMessages[];
|
|
317
|
+
getSenderUserMessages!: Sequelize.HasManyGetAssociationsMixin<UserMessages>;
|
|
318
|
+
setSenderUserMessages!: Sequelize.HasManySetAssociationsMixin<UserMessages, UserMessagesId>;
|
|
319
|
+
addSenderUserMessage!: Sequelize.HasManyAddAssociationMixin<UserMessages, UserMessagesId>;
|
|
320
|
+
addSenderUserMessages!: Sequelize.HasManyAddAssociationsMixin<UserMessages, UserMessagesId>;
|
|
321
|
+
createSenderUserMessage!: Sequelize.HasManyCreateAssociationMixin<UserMessages>;
|
|
322
|
+
removeSenderUserMessage!: Sequelize.HasManyRemoveAssociationMixin<UserMessages, UserMessagesId>;
|
|
323
|
+
removeSenderUserMessages!: Sequelize.HasManyRemoveAssociationsMixin<UserMessages, UserMessagesId>;
|
|
324
|
+
hasSenderUserMessage!: Sequelize.HasManyHasAssociationMixin<UserMessages, UserMessagesId>;
|
|
325
|
+
hasSenderUserMessages!: Sequelize.HasManyHasAssociationsMixin<UserMessages, UserMessagesId>;
|
|
326
|
+
countSenderUserMessages!: Sequelize.HasManyCountAssociationsMixin;
|
|
302
327
|
// AppUser belongsTo State via stateId
|
|
303
328
|
state!: State;
|
|
304
329
|
getState!: Sequelize.BelongsToGetAssociationMixin<State>;
|
package/models/JukeboxUser.ts
CHANGED
|
@@ -154,6 +154,13 @@ export class JukeboxUser extends Model<JukeboxUserAttributes, JukeboxUserCreatio
|
|
|
154
154
|
{ name: "app_user_id" },
|
|
155
155
|
]
|
|
156
156
|
},
|
|
157
|
+
{
|
|
158
|
+
name: "idx_jukebox_user_one_active_per_user",
|
|
159
|
+
unique: true,
|
|
160
|
+
fields: [
|
|
161
|
+
{ name: "app_user_id" },
|
|
162
|
+
]
|
|
163
|
+
},
|
|
157
164
|
{
|
|
158
165
|
name: "jukebox_user_pkey",
|
|
159
166
|
unique: true,
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AppUser, AppUserId } from './AppUser';
|
|
4
|
+
|
|
5
|
+
export interface UserMessagesAttributes {
|
|
6
|
+
senderId: string;
|
|
7
|
+
recipientId: string;
|
|
8
|
+
message: string;
|
|
9
|
+
replyMessageId?: string;
|
|
10
|
+
id: string;
|
|
11
|
+
hasBeenRead: boolean;
|
|
12
|
+
hasBeenEdited: boolean;
|
|
13
|
+
hasDeletedBySender: boolean;
|
|
14
|
+
hasDeletedByReceiver: boolean;
|
|
15
|
+
createDate: Date;
|
|
16
|
+
updateDate: Date;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type UserMessagesPk = "id";
|
|
20
|
+
export type UserMessagesId = UserMessages[UserMessagesPk];
|
|
21
|
+
export type UserMessagesOptionalAttributes = "replyMessageId" | "id" | "createDate" | "updateDate";
|
|
22
|
+
export type UserMessagesCreationAttributes = Optional<UserMessagesAttributes, UserMessagesOptionalAttributes>;
|
|
23
|
+
|
|
24
|
+
export class UserMessages extends Model<UserMessagesAttributes, UserMessagesCreationAttributes> implements UserMessagesAttributes {
|
|
25
|
+
senderId!: string;
|
|
26
|
+
recipientId!: string;
|
|
27
|
+
message!: string;
|
|
28
|
+
replyMessageId?: string;
|
|
29
|
+
id!: string;
|
|
30
|
+
hasBeenRead!: boolean;
|
|
31
|
+
hasBeenEdited!: boolean;
|
|
32
|
+
hasDeletedBySender!: boolean;
|
|
33
|
+
hasDeletedByReceiver!: boolean;
|
|
34
|
+
createDate!: Date;
|
|
35
|
+
updateDate!: Date;
|
|
36
|
+
|
|
37
|
+
// UserMessages belongsTo AppUser via recipientId
|
|
38
|
+
recipient!: AppUser;
|
|
39
|
+
getRecipient!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
40
|
+
setRecipient!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
41
|
+
createRecipient!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
42
|
+
// UserMessages belongsTo AppUser via senderId
|
|
43
|
+
sender!: AppUser;
|
|
44
|
+
getSender!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
45
|
+
setSender!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
46
|
+
createSender!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
47
|
+
// UserMessages belongsTo UserMessages via replyMessageId
|
|
48
|
+
replyMessage!: UserMessages;
|
|
49
|
+
getReplyMessage!: Sequelize.BelongsToGetAssociationMixin<UserMessages>;
|
|
50
|
+
setReplyMessage!: Sequelize.BelongsToSetAssociationMixin<UserMessages, UserMessagesId>;
|
|
51
|
+
createReplyMessage!: Sequelize.BelongsToCreateAssociationMixin<UserMessages>;
|
|
52
|
+
|
|
53
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof UserMessages {
|
|
54
|
+
return UserMessages.init({
|
|
55
|
+
senderId: {
|
|
56
|
+
type: DataTypes.UUID,
|
|
57
|
+
allowNull: false,
|
|
58
|
+
references: {
|
|
59
|
+
model: 'app_user',
|
|
60
|
+
key: 'id'
|
|
61
|
+
},
|
|
62
|
+
field: 'sender_id'
|
|
63
|
+
},
|
|
64
|
+
recipientId: {
|
|
65
|
+
type: DataTypes.UUID,
|
|
66
|
+
allowNull: false,
|
|
67
|
+
references: {
|
|
68
|
+
model: 'app_user',
|
|
69
|
+
key: 'id'
|
|
70
|
+
},
|
|
71
|
+
field: 'recipient_id'
|
|
72
|
+
},
|
|
73
|
+
message: {
|
|
74
|
+
type: DataTypes.STRING(1000),
|
|
75
|
+
allowNull: false
|
|
76
|
+
},
|
|
77
|
+
replyMessageId: {
|
|
78
|
+
type: DataTypes.UUID,
|
|
79
|
+
allowNull: true,
|
|
80
|
+
references: {
|
|
81
|
+
model: 'user_messages',
|
|
82
|
+
key: 'id'
|
|
83
|
+
},
|
|
84
|
+
field: 'reply_message_id'
|
|
85
|
+
},
|
|
86
|
+
id: {
|
|
87
|
+
type: DataTypes.UUID,
|
|
88
|
+
allowNull: false,
|
|
89
|
+
defaultValue: DataTypes.UUIDV4,
|
|
90
|
+
primaryKey: true
|
|
91
|
+
},
|
|
92
|
+
hasBeenRead: {
|
|
93
|
+
type: DataTypes.BOOLEAN,
|
|
94
|
+
allowNull: false,
|
|
95
|
+
defaultValue: false,
|
|
96
|
+
field: 'has_been_read'
|
|
97
|
+
},
|
|
98
|
+
hasBeenEdited: {
|
|
99
|
+
type: DataTypes.BOOLEAN,
|
|
100
|
+
allowNull: false,
|
|
101
|
+
defaultValue: false,
|
|
102
|
+
field: 'has_been_edited'
|
|
103
|
+
},
|
|
104
|
+
hasDeletedBySender: {
|
|
105
|
+
type: DataTypes.BOOLEAN,
|
|
106
|
+
allowNull: false,
|
|
107
|
+
defaultValue: false,
|
|
108
|
+
field: 'has_deleted_by_sender'
|
|
109
|
+
},
|
|
110
|
+
hasDeletedByReceiver: {
|
|
111
|
+
type: DataTypes.BOOLEAN,
|
|
112
|
+
allowNull: false,
|
|
113
|
+
defaultValue: false,
|
|
114
|
+
field: 'has_deleted_by_receiver'
|
|
115
|
+
},
|
|
116
|
+
createDate: {
|
|
117
|
+
type: DataTypes.DATE,
|
|
118
|
+
allowNull: false,
|
|
119
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
120
|
+
field: 'create_date'
|
|
121
|
+
},
|
|
122
|
+
updateDate: {
|
|
123
|
+
type: DataTypes.DATE,
|
|
124
|
+
allowNull: false,
|
|
125
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
126
|
+
field: 'update_date'
|
|
127
|
+
}
|
|
128
|
+
}, {
|
|
129
|
+
sequelize,
|
|
130
|
+
tableName: 'user_messages',
|
|
131
|
+
schema: 'eb',
|
|
132
|
+
timestamps: false,
|
|
133
|
+
indexes: [
|
|
134
|
+
{
|
|
135
|
+
name: "idx_user_messages_conversation",
|
|
136
|
+
fields: [
|
|
137
|
+
{ name: "sender_id" },
|
|
138
|
+
{ name: "recipient_id" },
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
name: "idx_user_messages_recipient",
|
|
143
|
+
fields: [
|
|
144
|
+
{ name: "recipient_id" },
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: "idx_user_messages_reply",
|
|
149
|
+
fields: [
|
|
150
|
+
{ name: "reply_message_id" },
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: "idx_user_messages_sender",
|
|
155
|
+
fields: [
|
|
156
|
+
{ name: "sender_id" },
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: "idx_user_messages_unread",
|
|
161
|
+
fields: [
|
|
162
|
+
{ name: "recipient_id" },
|
|
163
|
+
{ name: "has_been_read" },
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "user_messages_pkey",
|
|
168
|
+
unique: true,
|
|
169
|
+
fields: [
|
|
170
|
+
{ name: "id" },
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
]
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
package/models/init-models.ts
CHANGED
|
@@ -197,6 +197,8 @@ import { UserGenreAffinity as _UserGenreAffinity } from "./UserGenreAffinity";
|
|
|
197
197
|
import type { UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes } from "./UserGenreAffinity";
|
|
198
198
|
import { UserLikes as _UserLikes } from "./UserLikes";
|
|
199
199
|
import type { UserLikesAttributes, UserLikesCreationAttributes } from "./UserLikes";
|
|
200
|
+
import { UserMessages as _UserMessages } from "./UserMessages";
|
|
201
|
+
import type { UserMessagesAttributes, UserMessagesCreationAttributes } from "./UserMessages";
|
|
200
202
|
|
|
201
203
|
export {
|
|
202
204
|
_AccessControlPreference as AccessControlPreference,
|
|
@@ -298,6 +300,7 @@ export {
|
|
|
298
300
|
_UserEngagementFactor as UserEngagementFactor,
|
|
299
301
|
_UserGenreAffinity as UserGenreAffinity,
|
|
300
302
|
_UserLikes as UserLikes,
|
|
303
|
+
_UserMessages as UserMessages,
|
|
301
304
|
};
|
|
302
305
|
|
|
303
306
|
export type {
|
|
@@ -499,6 +502,8 @@ export type {
|
|
|
499
502
|
UserGenreAffinityCreationAttributes,
|
|
500
503
|
UserLikesAttributes,
|
|
501
504
|
UserLikesCreationAttributes,
|
|
505
|
+
UserMessagesAttributes,
|
|
506
|
+
UserMessagesCreationAttributes,
|
|
502
507
|
};
|
|
503
508
|
|
|
504
509
|
export function initModels(sequelize: Sequelize) {
|
|
@@ -601,6 +606,7 @@ export function initModels(sequelize: Sequelize) {
|
|
|
601
606
|
const UserEngagementFactor = _UserEngagementFactor.initModel(sequelize);
|
|
602
607
|
const UserGenreAffinity = _UserGenreAffinity.initModel(sequelize);
|
|
603
608
|
const UserLikes = _UserLikes.initModel(sequelize);
|
|
609
|
+
const UserMessages = _UserMessages.initModel(sequelize);
|
|
604
610
|
|
|
605
611
|
CanonAlbum.belongsToMany(CanonTrack, { as: 'canonTrackIdCanonTracks', through: CanonAlbumTrackRelation, foreignKey: "canonAlbumId", otherKey: "canonTrackId" });
|
|
606
612
|
CanonAlbum.belongsToMany(ExternalReference, { as: 'externalReferenceIdExternalReferences', through: CanonAlbumExternalReferenceRelation, foreignKey: "canonAlbumId", otherKey: "externalReferenceId" });
|
|
@@ -702,6 +708,10 @@ export function initModels(sequelize: Sequelize) {
|
|
|
702
708
|
AppUser.hasMany(UserGenreAffinity, { as: "userGenreAffinities", foreignKey: "userId"});
|
|
703
709
|
UserLikes.belongsTo(AppUser, { as: "appUser", foreignKey: "appUserId"});
|
|
704
710
|
AppUser.hasMany(UserLikes, { as: "userLikes", foreignKey: "appUserId"});
|
|
711
|
+
UserMessages.belongsTo(AppUser, { as: "recipient", foreignKey: "recipientId"});
|
|
712
|
+
AppUser.hasMany(UserMessages, { as: "userMessages", foreignKey: "recipientId"});
|
|
713
|
+
UserMessages.belongsTo(AppUser, { as: "sender", foreignKey: "senderId"});
|
|
714
|
+
AppUser.hasMany(UserMessages, { as: "senderUserMessages", foreignKey: "senderId"});
|
|
705
715
|
CanonAlbumExternalReferenceRelation.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId"});
|
|
706
716
|
CanonAlbum.hasMany(CanonAlbumExternalReferenceRelation, { as: "canonAlbumExternalReferenceRelations", foreignKey: "canonAlbumId"});
|
|
707
717
|
CanonAlbumImageHarvested.belongsTo(CanonAlbum, { as: "canonAlbum", foreignKey: "canonAlbumId"});
|
|
@@ -946,6 +956,8 @@ export function initModels(sequelize: Sequelize) {
|
|
|
946
956
|
TrackDeletionReason.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackDeletionReasonId"});
|
|
947
957
|
UserComments.belongsTo(UserComments, { as: "replyComment", foreignKey: "replyCommentId"});
|
|
948
958
|
UserComments.hasMany(UserComments, { as: "userComments", foreignKey: "replyCommentId"});
|
|
959
|
+
UserMessages.belongsTo(UserMessages, { as: "replyMessage", foreignKey: "replyMessageId"});
|
|
960
|
+
UserMessages.hasMany(UserMessages, { as: "userMessages", foreignKey: "replyMessageId"});
|
|
949
961
|
|
|
950
962
|
return {
|
|
951
963
|
AccessControlPreference: AccessControlPreference,
|
|
@@ -1047,5 +1059,6 @@ export function initModels(sequelize: Sequelize) {
|
|
|
1047
1059
|
UserEngagementFactor: UserEngagementFactor,
|
|
1048
1060
|
UserGenreAffinity: UserGenreAffinity,
|
|
1049
1061
|
UserLikes: UserLikes,
|
|
1062
|
+
UserMessages: UserMessages,
|
|
1050
1063
|
};
|
|
1051
1064
|
}
|