@earbug/db-models 0.0.36 → 0.0.38

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 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>;
@@ -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;
@@ -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
- 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, };
201
- 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, };
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
  };
@@ -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>;
@@ -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
+ }
@@ -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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earbug/db-models",
3
- "version": "0.0.36",
3
+ "version": "0.0.38",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {