@earbug/db-models 0.0.42 → 0.0.43

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
@@ -11,6 +11,7 @@ import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum
11
11
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
13
  import type { State, StateId } from './State';
14
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
14
15
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
15
16
  import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
16
17
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
@@ -189,6 +190,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
189
190
  hasRadioShow: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
190
191
  hasRadioShows: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
191
192
  countRadioShows: Sequelize.HasManyCountAssociationsMixin;
193
+ userAbuseReports: UserAbuseReports[];
194
+ getUserAbuseReports: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
195
+ setUserAbuseReports: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
196
+ addUserAbuseReport: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
197
+ addUserAbuseReports: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
198
+ createUserAbuseReport: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
199
+ removeUserAbuseReport: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
200
+ removeUserAbuseReports: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
201
+ hasUserAbuseReport: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
202
+ hasUserAbuseReports: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
203
+ countUserAbuseReports: Sequelize.HasManyCountAssociationsMixin;
192
204
  userAffinities: UserAffinity[];
193
205
  getUserAffinities: Sequelize.HasManyGetAssociationsMixin<UserAffinity>;
194
206
  setUserAffinities: Sequelize.HasManySetAssociationsMixin<UserAffinity, UserAffinityId>;
@@ -13,6 +13,7 @@ import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from
13
13
  import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
14
14
  import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
15
15
  import type { Notification, NotificationId } from './Notification';
16
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
16
17
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
17
18
  import type { UserComments, UserCommentsId } from './UserComments';
18
19
  import type { UserLikes, UserLikesId } from './UserLikes';
@@ -145,6 +146,17 @@ export declare class JukeboxSession extends Model<JukeboxSessionAttributes, Juke
145
146
  hasNotification: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
146
147
  hasNotifications: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
147
148
  countNotifications: Sequelize.HasManyCountAssociationsMixin;
149
+ userAbuseReports: UserAbuseReports[];
150
+ getUserAbuseReports: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
151
+ setUserAbuseReports: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
152
+ addUserAbuseReport: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
153
+ addUserAbuseReports: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
154
+ createUserAbuseReport: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
155
+ removeUserAbuseReport: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
156
+ removeUserAbuseReports: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
157
+ hasUserAbuseReport: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
158
+ hasUserAbuseReports: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
159
+ countUserAbuseReports: Sequelize.HasManyCountAssociationsMixin;
148
160
  userBookmarks: UserBookmarks[];
149
161
  getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
150
162
  setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
@@ -6,6 +6,7 @@ import type { PlatformUserPlaylistArtistAffinity, PlatformUserPlaylistArtistAffi
6
6
  import type { PlatformUserPlaylistGenreAffinity, PlatformUserPlaylistGenreAffinityId } from './PlatformUserPlaylistGenreAffinity';
7
7
  import type { PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId } from './PlatformUserPlaylistTrack';
8
8
  import type { State, StateId } from './State';
9
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
9
10
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
10
11
  import type { UserComments, UserCommentsId } from './UserComments';
11
12
  import type { UserLikes, UserLikesId } from './UserLikes';
@@ -83,6 +84,17 @@ export declare class PlatformUserPlaylist extends Model<PlatformUserPlaylistAttr
83
84
  hasPlatformUserPlaylistTrack: Sequelize.HasManyHasAssociationMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
84
85
  hasPlatformUserPlaylistTracks: Sequelize.HasManyHasAssociationsMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
85
86
  countPlatformUserPlaylistTracks: Sequelize.HasManyCountAssociationsMixin;
87
+ userAbuseReports: UserAbuseReports[];
88
+ getUserAbuseReports: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
89
+ setUserAbuseReports: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
90
+ addUserAbuseReport: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
91
+ addUserAbuseReports: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
92
+ createUserAbuseReport: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
93
+ removeUserAbuseReport: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
94
+ removeUserAbuseReports: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
95
+ hasUserAbuseReport: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
96
+ hasUserAbuseReports: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
97
+ countUserAbuseReports: Sequelize.HasManyCountAssociationsMixin;
86
98
  userBookmarks: UserBookmarks[];
87
99
  getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
88
100
  setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
@@ -5,6 +5,7 @@ import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
5
5
  import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
6
6
  import type { RadioShowPlacement, RadioShowPlacementId } from './RadioShowPlacement';
7
7
  import type { RadioShowPublishRequests, RadioShowPublishRequestsId } from './RadioShowPublishRequests';
8
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
8
9
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
9
10
  import type { UserComments, UserCommentsId } from './UserComments';
10
11
  import type { UserLikes, UserLikesId } from './UserLikes';
@@ -79,6 +80,17 @@ export declare class RadioShow extends Model<RadioShowAttributes, RadioShowCreat
79
80
  hasRadioShowPublishRequest: Sequelize.HasManyHasAssociationMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
80
81
  hasRadioShowPublishRequests: Sequelize.HasManyHasAssociationsMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
81
82
  countRadioShowPublishRequests: Sequelize.HasManyCountAssociationsMixin;
83
+ userAbuseReports: UserAbuseReports[];
84
+ getUserAbuseReports: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
85
+ setUserAbuseReports: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
86
+ addUserAbuseReport: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
87
+ addUserAbuseReports: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
88
+ createUserAbuseReport: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
89
+ removeUserAbuseReport: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
90
+ removeUserAbuseReports: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
91
+ hasUserAbuseReport: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
92
+ hasUserAbuseReports: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
93
+ countUserAbuseReports: Sequelize.HasManyCountAssociationsMixin;
82
94
  userBookmarks: UserBookmarks[];
83
95
  getUserBookmarks: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
84
96
  setUserBookmarks: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
@@ -1,6 +1,7 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
3
  import type { RadioShow, RadioShowId } from './RadioShow';
4
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
4
5
  export interface RadioShowMediaAttributes {
5
6
  radioShowId: string;
6
7
  originalMediaType?: number;
@@ -46,5 +47,16 @@ export declare class RadioShowMedia extends Model<RadioShowMediaAttributes, Radi
46
47
  getRadioShow: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
47
48
  setRadioShow: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
48
49
  createRadioShow: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
50
+ userAbuseReports: UserAbuseReports[];
51
+ getUserAbuseReports: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
52
+ setUserAbuseReports: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
53
+ addUserAbuseReport: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
54
+ addUserAbuseReports: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
55
+ createUserAbuseReport: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
56
+ removeUserAbuseReport: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
57
+ removeUserAbuseReports: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
58
+ hasUserAbuseReport: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
59
+ hasUserAbuseReports: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
60
+ countUserAbuseReports: Sequelize.HasManyCountAssociationsMixin;
49
61
  static initModel(sequelize: Sequelize.Sequelize): typeof RadioShowMedia;
50
62
  }
@@ -0,0 +1,70 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+ import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
6
+ import type { RadioShow, RadioShowId } from './RadioShow';
7
+ import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
8
+ import type { UserComments, UserCommentsId } from './UserComments';
9
+ import type { UserMessages, UserMessagesId } from './UserMessages';
10
+ export interface UserAbuseReportsAttributes {
11
+ reporterUserId: string;
12
+ jukeboxId?: string;
13
+ jukeboxChatMessageId?: string;
14
+ radioShowId?: string;
15
+ radioShowMediaId?: string;
16
+ playlistId?: string;
17
+ versusThemeTextId?: string;
18
+ commentId?: string;
19
+ directMessageId?: string;
20
+ id: string;
21
+ reportDate: Date;
22
+ updateDate: Date;
23
+ }
24
+ export type UserAbuseReportsPk = "id";
25
+ export type UserAbuseReportsId = UserAbuseReports[UserAbuseReportsPk];
26
+ export type UserAbuseReportsOptionalAttributes = "jukeboxId" | "jukeboxChatMessageId" | "radioShowId" | "radioShowMediaId" | "playlistId" | "versusThemeTextId" | "commentId" | "directMessageId" | "id" | "reportDate" | "updateDate";
27
+ export type UserAbuseReportsCreationAttributes = Optional<UserAbuseReportsAttributes, UserAbuseReportsOptionalAttributes>;
28
+ export declare class UserAbuseReports extends Model<UserAbuseReportsAttributes, UserAbuseReportsCreationAttributes> implements UserAbuseReportsAttributes {
29
+ reporterUserId: string;
30
+ jukeboxId?: string;
31
+ jukeboxChatMessageId?: string;
32
+ radioShowId?: string;
33
+ radioShowMediaId?: string;
34
+ playlistId?: string;
35
+ versusThemeTextId?: string;
36
+ commentId?: string;
37
+ directMessageId?: string;
38
+ id: string;
39
+ reportDate: Date;
40
+ updateDate: Date;
41
+ reporterUser: AppUser;
42
+ getReporterUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
43
+ setReporterUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
44
+ createReporterUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
45
+ jukebox: JukeboxSession;
46
+ getJukebox: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
47
+ setJukebox: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
48
+ createJukebox: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
49
+ playlist: PlatformUserPlaylist;
50
+ getPlaylist: Sequelize.BelongsToGetAssociationMixin<PlatformUserPlaylist>;
51
+ setPlaylist: Sequelize.BelongsToSetAssociationMixin<PlatformUserPlaylist, PlatformUserPlaylistId>;
52
+ createPlaylist: Sequelize.BelongsToCreateAssociationMixin<PlatformUserPlaylist>;
53
+ radioShow: RadioShow;
54
+ getRadioShow: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
55
+ setRadioShow: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
56
+ createRadioShow: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
57
+ radioShowMedium: RadioShowMedia;
58
+ getRadioShowMedium: Sequelize.BelongsToGetAssociationMixin<RadioShowMedia>;
59
+ setRadioShowMedium: Sequelize.BelongsToSetAssociationMixin<RadioShowMedia, RadioShowMediaId>;
60
+ createRadioShowMedium: Sequelize.BelongsToCreateAssociationMixin<RadioShowMedia>;
61
+ comment: UserComments;
62
+ getComment: Sequelize.BelongsToGetAssociationMixin<UserComments>;
63
+ setComment: Sequelize.BelongsToSetAssociationMixin<UserComments, UserCommentsId>;
64
+ createComment: Sequelize.BelongsToCreateAssociationMixin<UserComments>;
65
+ directMessage: UserMessages;
66
+ getDirectMessage: Sequelize.BelongsToGetAssociationMixin<UserMessages>;
67
+ setDirectMessage: Sequelize.BelongsToSetAssociationMixin<UserMessages, UserMessagesId>;
68
+ createDirectMessage: Sequelize.BelongsToCreateAssociationMixin<UserMessages>;
69
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserAbuseReports;
70
+ }
@@ -0,0 +1,182 @@
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.UserAbuseReports = void 0;
27
+ const Sequelize = __importStar(require("sequelize"));
28
+ const sequelize_1 = require("sequelize");
29
+ class UserAbuseReports extends sequelize_1.Model {
30
+ static initModel(sequelize) {
31
+ return UserAbuseReports.init({
32
+ reporterUserId: {
33
+ type: sequelize_1.DataTypes.UUID,
34
+ allowNull: false,
35
+ references: {
36
+ model: 'app_user',
37
+ key: 'id'
38
+ },
39
+ field: 'reporter_user_id'
40
+ },
41
+ jukeboxId: {
42
+ type: sequelize_1.DataTypes.UUID,
43
+ allowNull: true,
44
+ references: {
45
+ model: 'jukebox_session',
46
+ key: 'id'
47
+ },
48
+ field: 'jukebox_id'
49
+ },
50
+ jukeboxChatMessageId: {
51
+ type: sequelize_1.DataTypes.STRING(50),
52
+ allowNull: true,
53
+ field: 'jukebox_chat_message_id'
54
+ },
55
+ radioShowId: {
56
+ type: sequelize_1.DataTypes.UUID,
57
+ allowNull: true,
58
+ references: {
59
+ model: 'radio_show',
60
+ key: 'id'
61
+ },
62
+ field: 'radio_show_id'
63
+ },
64
+ radioShowMediaId: {
65
+ type: sequelize_1.DataTypes.UUID,
66
+ allowNull: true,
67
+ references: {
68
+ model: 'radio_show_media',
69
+ key: 'id'
70
+ },
71
+ field: 'radio_show_media_id'
72
+ },
73
+ playlistId: {
74
+ type: sequelize_1.DataTypes.UUID,
75
+ allowNull: true,
76
+ references: {
77
+ model: 'platform_user_playlist',
78
+ key: 'id'
79
+ },
80
+ field: 'playlist_id'
81
+ },
82
+ versusThemeTextId: {
83
+ type: sequelize_1.DataTypes.UUID,
84
+ allowNull: true,
85
+ field: 'versus_theme_text_id'
86
+ },
87
+ commentId: {
88
+ type: sequelize_1.DataTypes.UUID,
89
+ allowNull: true,
90
+ references: {
91
+ model: 'user_comments',
92
+ key: 'id'
93
+ },
94
+ field: 'comment_id'
95
+ },
96
+ directMessageId: {
97
+ type: sequelize_1.DataTypes.UUID,
98
+ allowNull: true,
99
+ references: {
100
+ model: 'user_messages',
101
+ key: 'id'
102
+ },
103
+ field: 'direct_message_id'
104
+ },
105
+ id: {
106
+ type: sequelize_1.DataTypes.UUID,
107
+ allowNull: false,
108
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
109
+ primaryKey: true
110
+ },
111
+ reportDate: {
112
+ type: sequelize_1.DataTypes.DATE,
113
+ allowNull: false,
114
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
115
+ field: 'report_date'
116
+ },
117
+ updateDate: {
118
+ type: sequelize_1.DataTypes.DATE,
119
+ allowNull: false,
120
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
121
+ field: 'update_date'
122
+ }
123
+ }, {
124
+ sequelize,
125
+ tableName: 'user_abuse_reports',
126
+ schema: 'eb',
127
+ timestamps: false,
128
+ indexes: [
129
+ {
130
+ name: "idx_user_abuse_reports_comment",
131
+ fields: [
132
+ { name: "comment_id" },
133
+ ]
134
+ },
135
+ {
136
+ name: "idx_user_abuse_reports_direct_message",
137
+ fields: [
138
+ { name: "direct_message_id" },
139
+ ]
140
+ },
141
+ {
142
+ name: "idx_user_abuse_reports_jukebox",
143
+ fields: [
144
+ { name: "jukebox_id" },
145
+ ]
146
+ },
147
+ {
148
+ name: "idx_user_abuse_reports_playlist",
149
+ fields: [
150
+ { name: "playlist_id" },
151
+ ]
152
+ },
153
+ {
154
+ name: "idx_user_abuse_reports_radio_show",
155
+ fields: [
156
+ { name: "radio_show_id" },
157
+ ]
158
+ },
159
+ {
160
+ name: "idx_user_abuse_reports_radio_show_media",
161
+ fields: [
162
+ { name: "radio_show_media_id" },
163
+ ]
164
+ },
165
+ {
166
+ name: "idx_user_abuse_reports_reporter",
167
+ fields: [
168
+ { name: "reporter_user_id" },
169
+ ]
170
+ },
171
+ {
172
+ name: "user_abuse_reports_pkey",
173
+ unique: true,
174
+ fields: [
175
+ { name: "id" },
176
+ ]
177
+ },
178
+ ]
179
+ });
180
+ }
181
+ }
182
+ exports.UserAbuseReports = UserAbuseReports;
@@ -4,6 +4,7 @@ import type { AppUser, AppUserId } from './AppUser';
4
4
  import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
5
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
6
6
  import type { RadioShow, RadioShowId } from './RadioShow';
7
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
7
8
  export interface UserCommentsAttributes {
8
9
  appUserId: string;
9
10
  jukeboxId?: string;
@@ -55,6 +56,17 @@ export declare class UserComments extends Model<UserCommentsAttributes, UserComm
55
56
  getRadioShow: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
56
57
  setRadioShow: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
57
58
  createRadioShow: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
59
+ userAbuseReports: UserAbuseReports[];
60
+ getUserAbuseReports: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
61
+ setUserAbuseReports: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
62
+ addUserAbuseReport: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
63
+ addUserAbuseReports: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
64
+ createUserAbuseReport: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
65
+ removeUserAbuseReport: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
66
+ removeUserAbuseReports: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
67
+ hasUserAbuseReport: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
68
+ hasUserAbuseReports: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
69
+ countUserAbuseReports: Sequelize.HasManyCountAssociationsMixin;
58
70
  replyComment: UserComments;
59
71
  getReplyComment: Sequelize.BelongsToGetAssociationMixin<UserComments>;
60
72
  setReplyComment: Sequelize.BelongsToSetAssociationMixin<UserComments, UserCommentsId>;
@@ -1,6 +1,7 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
3
  import type { AppUser, AppUserId } from './AppUser';
4
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
4
5
  export interface UserMessagesAttributes {
5
6
  senderId: string;
6
7
  recipientId: string;
@@ -38,6 +39,17 @@ export declare class UserMessages extends Model<UserMessagesAttributes, UserMess
38
39
  getSender: Sequelize.BelongsToGetAssociationMixin<AppUser>;
39
40
  setSender: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
40
41
  createSender: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
42
+ userAbuseReports: UserAbuseReports[];
43
+ getUserAbuseReports: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
44
+ setUserAbuseReports: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
45
+ addUserAbuseReport: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
46
+ addUserAbuseReports: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
47
+ createUserAbuseReport: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
48
+ removeUserAbuseReport: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
49
+ removeUserAbuseReports: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
50
+ hasUserAbuseReport: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
51
+ hasUserAbuseReports: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
52
+ countUserAbuseReports: Sequelize.HasManyCountAssociationsMixin;
41
53
  replyMessage: UserMessages;
42
54
  getReplyMessage: Sequelize.BelongsToGetAssociationMixin<UserMessages>;
43
55
  setReplyMessage: Sequelize.BelongsToSetAssociationMixin<UserMessages, UserMessagesId>;
@@ -181,6 +181,8 @@ import { UnmatchedAlbum as _UnmatchedAlbum } from "./UnmatchedAlbum";
181
181
  import type { UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes } from "./UnmatchedAlbum";
182
182
  import { UnmatchedArtist as _UnmatchedArtist } from "./UnmatchedArtist";
183
183
  import type { UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes } from "./UnmatchedArtist";
184
+ import { UserAbuseReports as _UserAbuseReports } from "./UserAbuseReports";
185
+ import type { UserAbuseReportsAttributes, UserAbuseReportsCreationAttributes } from "./UserAbuseReports";
184
186
  import { UserAffinity as _UserAffinity } from "./UserAffinity";
185
187
  import type { UserAffinityAttributes, UserAffinityCreationAttributes } from "./UserAffinity";
186
188
  import { UserArtistAffinity as _UserArtistAffinity } from "./UserArtistAffinity";
@@ -227,8 +229,8 @@ import { VersusVotingListType as _VersusVotingListType } from "./VersusVotingLis
227
229
  import type { VersusVotingListTypeAttributes, VersusVotingListTypeCreationAttributes } from "./VersusVotingListType";
228
230
  import { VersusVotingMode as _VersusVotingMode } from "./VersusVotingMode";
229
231
  import type { VersusVotingModeAttributes, VersusVotingModeCreationAttributes } from "./VersusVotingMode";
230
- 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, _Versus as Versus, _VersusAccessType as VersusAccessType, _VersusCoCreator as VersusCoCreator, _VersusCreatorScope as VersusCreatorScope, _VersusEndMode as VersusEndMode, _VersusEndTimerDuration as VersusEndTimerDuration, _VersusEndVoteThreshold as VersusEndVoteThreshold, _VersusEntityKind as VersusEntityKind, _VersusOption as VersusOption, _VersusPublishIssue as VersusPublishIssue, _VersusQuestion as VersusQuestion, _VersusQuestionVariableType as VersusQuestionVariableType, _VersusVotingListType as VersusVotingListType, _VersusVotingMode as VersusVotingMode, };
231
- 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, VersusAttributes, VersusCreationAttributes, VersusAccessTypeAttributes, VersusAccessTypeCreationAttributes, VersusCoCreatorAttributes, VersusCoCreatorCreationAttributes, VersusCreatorScopeAttributes, VersusCreatorScopeCreationAttributes, VersusEndModeAttributes, VersusEndModeCreationAttributes, VersusEndTimerDurationAttributes, VersusEndTimerDurationCreationAttributes, VersusEndVoteThresholdAttributes, VersusEndVoteThresholdCreationAttributes, VersusEntityKindAttributes, VersusEntityKindCreationAttributes, VersusOptionAttributes, VersusOptionCreationAttributes, VersusPublishIssueAttributes, VersusPublishIssueCreationAttributes, VersusQuestionAttributes, VersusQuestionCreationAttributes, VersusQuestionVariableTypeAttributes, VersusQuestionVariableTypeCreationAttributes, VersusVotingListTypeAttributes, VersusVotingListTypeCreationAttributes, VersusVotingModeAttributes, VersusVotingModeCreationAttributes, };
232
+ 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, _UserAbuseReports as UserAbuseReports, _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, _Versus as Versus, _VersusAccessType as VersusAccessType, _VersusCoCreator as VersusCoCreator, _VersusCreatorScope as VersusCreatorScope, _VersusEndMode as VersusEndMode, _VersusEndTimerDuration as VersusEndTimerDuration, _VersusEndVoteThreshold as VersusEndVoteThreshold, _VersusEntityKind as VersusEntityKind, _VersusOption as VersusOption, _VersusPublishIssue as VersusPublishIssue, _VersusQuestion as VersusQuestion, _VersusQuestionVariableType as VersusQuestionVariableType, _VersusVotingListType as VersusVotingListType, _VersusVotingMode as VersusVotingMode, };
233
+ 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, UserAbuseReportsAttributes, UserAbuseReportsCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes, UserBookmarksAttributes, UserBookmarksCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, UserMessagesAttributes, UserMessagesCreationAttributes, VersusAttributes, VersusCreationAttributes, VersusAccessTypeAttributes, VersusAccessTypeCreationAttributes, VersusCoCreatorAttributes, VersusCoCreatorCreationAttributes, VersusCreatorScopeAttributes, VersusCreatorScopeCreationAttributes, VersusEndModeAttributes, VersusEndModeCreationAttributes, VersusEndTimerDurationAttributes, VersusEndTimerDurationCreationAttributes, VersusEndVoteThresholdAttributes, VersusEndVoteThresholdCreationAttributes, VersusEntityKindAttributes, VersusEntityKindCreationAttributes, VersusOptionAttributes, VersusOptionCreationAttributes, VersusPublishIssueAttributes, VersusPublishIssueCreationAttributes, VersusQuestionAttributes, VersusQuestionCreationAttributes, VersusQuestionVariableTypeAttributes, VersusQuestionVariableTypeCreationAttributes, VersusVotingListTypeAttributes, VersusVotingListTypeCreationAttributes, VersusVotingModeAttributes, VersusVotingModeCreationAttributes, };
232
234
  export declare function initModels(sequelize: Sequelize): {
233
235
  AccessControlPreference: typeof _AccessControlPreference;
234
236
  AffinityRelationshipType: typeof _AffinityRelationshipType;
@@ -321,6 +323,7 @@ export declare function initModels(sequelize: Sequelize): {
321
323
  TrackDeletionReason: typeof _TrackDeletionReason;
322
324
  UnmatchedAlbum: typeof _UnmatchedAlbum;
323
325
  UnmatchedArtist: typeof _UnmatchedArtist;
326
+ UserAbuseReports: typeof _UserAbuseReports;
324
327
  UserAffinity: typeof _UserAffinity;
325
328
  UserArtistAffinity: typeof _UserArtistAffinity;
326
329
  UserBookmarks: typeof _UserBookmarks;
@@ -1,8 +1,8 @@
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.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
- exports.VersusVotingMode = exports.VersusVotingListType = exports.VersusQuestionVariableType = exports.VersusQuestion = exports.VersusPublishIssue = exports.VersusOption = exports.VersusEntityKind = exports.VersusEndVoteThreshold = exports.VersusEndTimerDuration = exports.VersusEndMode = exports.VersusCreatorScope = exports.VersusCoCreator = exports.VersusAccessType = exports.Versus = void 0;
4
+ exports.UserLikes = exports.UserGenreAffinity = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = exports.UserBookmarks = exports.UserArtistAffinity = exports.UserAffinity = exports.UserAbuseReports = 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
+ exports.VersusVotingMode = exports.VersusVotingListType = exports.VersusQuestionVariableType = exports.VersusQuestion = exports.VersusPublishIssue = exports.VersusOption = exports.VersusEntityKind = exports.VersusEndVoteThreshold = exports.VersusEndTimerDuration = exports.VersusEndMode = exports.VersusCreatorScope = exports.VersusCoCreator = exports.VersusAccessType = exports.Versus = exports.UserMessages = void 0;
6
6
  exports.initModels = initModels;
7
7
  const AccessControlPreference_1 = require("./AccessControlPreference");
8
8
  Object.defineProperty(exports, "AccessControlPreference", { enumerable: true, get: function () { return AccessControlPreference_1.AccessControlPreference; } });
@@ -186,6 +186,8 @@ const UnmatchedAlbum_1 = require("./UnmatchedAlbum");
186
186
  Object.defineProperty(exports, "UnmatchedAlbum", { enumerable: true, get: function () { return UnmatchedAlbum_1.UnmatchedAlbum; } });
187
187
  const UnmatchedArtist_1 = require("./UnmatchedArtist");
188
188
  Object.defineProperty(exports, "UnmatchedArtist", { enumerable: true, get: function () { return UnmatchedArtist_1.UnmatchedArtist; } });
189
+ const UserAbuseReports_1 = require("./UserAbuseReports");
190
+ Object.defineProperty(exports, "UserAbuseReports", { enumerable: true, get: function () { return UserAbuseReports_1.UserAbuseReports; } });
189
191
  const UserAffinity_1 = require("./UserAffinity");
190
192
  Object.defineProperty(exports, "UserAffinity", { enumerable: true, get: function () { return UserAffinity_1.UserAffinity; } });
191
193
  const UserArtistAffinity_1 = require("./UserArtistAffinity");
@@ -324,6 +326,7 @@ function initModels(sequelize) {
324
326
  const TrackDeletionReason = TrackDeletionReason_1.TrackDeletionReason.initModel(sequelize);
325
327
  const UnmatchedAlbum = UnmatchedAlbum_1.UnmatchedAlbum.initModel(sequelize);
326
328
  const UnmatchedArtist = UnmatchedArtist_1.UnmatchedArtist.initModel(sequelize);
329
+ const UserAbuseReports = UserAbuseReports_1.UserAbuseReports.initModel(sequelize);
327
330
  const UserAffinity = UserAffinity_1.UserAffinity.initModel(sequelize);
328
331
  const UserArtistAffinity = UserArtistAffinity_1.UserArtistAffinity.initModel(sequelize);
329
332
  const UserBookmarks = UserBookmarks_1.UserBookmarks.initModel(sequelize);
@@ -431,6 +434,8 @@ function initModels(sequelize) {
431
434
  AppUser.hasMany(PlatformUserPlaylist, { as: "platformUserPlaylists", foreignKey: "appUserId" });
432
435
  RadioShow.belongsTo(AppUser, { as: "creatorUser", foreignKey: "creatorUserId" });
433
436
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId" });
437
+ UserAbuseReports.belongsTo(AppUser, { as: "reporterUser", foreignKey: "reporterUserId" });
438
+ AppUser.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "reporterUserId" });
434
439
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
435
440
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId" });
436
441
  UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
@@ -571,6 +576,8 @@ function initModels(sequelize) {
571
576
  JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId" });
572
577
  Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId" });
573
578
  JukeboxSession.hasMany(Notification, { as: "notifications", foreignKey: "jukeboxSessionId" });
579
+ UserAbuseReports.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
580
+ JukeboxSession.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "jukeboxId" });
574
581
  UserBookmarks.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
575
582
  JukeboxSession.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "jukeboxId" });
576
583
  UserComments.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId" });
@@ -701,6 +708,8 @@ function initModels(sequelize) {
701
708
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistGenreAffinity, { as: "platformUserPlaylistGenreAffinities", foreignKey: "platformUserPlaylistId" });
702
709
  PlatformUserPlaylistTrack.belongsTo(PlatformUserPlaylist, { as: "platformUserPlaylist", foreignKey: "platformUserPlaylistId" });
703
710
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistTrack, { as: "platformUserPlaylistTracks", foreignKey: "platformUserPlaylistId" });
711
+ UserAbuseReports.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
712
+ PlatformUserPlaylist.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "playlistId" });
704
713
  UserBookmarks.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
705
714
  PlatformUserPlaylist.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "playlistId" });
706
715
  UserComments.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId" });
@@ -717,12 +726,16 @@ function initModels(sequelize) {
717
726
  RadioShow.hasMany(RadioShowPlacement, { as: "radioShowPlacements", foreignKey: "radioShowId" });
718
727
  RadioShowPublishRequests.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
719
728
  RadioShow.hasMany(RadioShowPublishRequests, { as: "radioShowPublishRequests", foreignKey: "radioShowId" });
729
+ UserAbuseReports.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
730
+ RadioShow.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "radioShowId" });
720
731
  UserBookmarks.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
721
732
  RadioShow.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "radioShowId" });
722
733
  UserComments.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
723
734
  RadioShow.hasMany(UserComments, { as: "userComments", foreignKey: "radioShowId" });
724
735
  UserLikes.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId" });
725
736
  RadioShow.hasMany(UserLikes, { as: "userLikes", foreignKey: "radioShowId" });
737
+ UserAbuseReports.belongsTo(RadioShowMedia, { as: "radioShowMedium", foreignKey: "radioShowMediaId" });
738
+ RadioShowMedia.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "radioShowMediaId" });
726
739
  AppUser.belongsTo(State, { as: "state", foreignKey: "stateId" });
727
740
  State.hasMany(AppUser, { as: "appUsers", foreignKey: "stateId" });
728
741
  PlatformUserPlaylist.belongsTo(State, { as: "state", foreignKey: "stateId" });
@@ -731,8 +744,12 @@ function initModels(sequelize) {
731
744
  State.hasMany(PlatformUserPlaylistTrack, { as: "platformUserPlaylistTracks", foreignKey: "stateId" });
732
745
  JukeboxQueueEntry.belongsTo(TrackDeletionReason, { as: "trackDeletionReason", foreignKey: "trackDeletionReasonId" });
733
746
  TrackDeletionReason.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackDeletionReasonId" });
747
+ UserAbuseReports.belongsTo(UserComments, { as: "comment", foreignKey: "commentId" });
748
+ UserComments.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "commentId" });
734
749
  UserComments.belongsTo(UserComments, { as: "replyComment", foreignKey: "replyCommentId" });
735
750
  UserComments.hasMany(UserComments, { as: "userComments", foreignKey: "replyCommentId" });
751
+ UserAbuseReports.belongsTo(UserMessages, { as: "directMessage", foreignKey: "directMessageId" });
752
+ UserMessages.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "directMessageId" });
736
753
  UserMessages.belongsTo(UserMessages, { as: "replyMessage", foreignKey: "replyMessageId" });
737
754
  UserMessages.hasMany(UserMessages, { as: "userMessages", foreignKey: "replyMessageId" });
738
755
  GuestUser.belongsTo(Versus, { as: "versu", foreignKey: "versusId" });
@@ -857,6 +874,7 @@ function initModels(sequelize) {
857
874
  TrackDeletionReason: TrackDeletionReason,
858
875
  UnmatchedAlbum: UnmatchedAlbum,
859
876
  UnmatchedArtist: UnmatchedArtist,
877
+ UserAbuseReports: UserAbuseReports,
860
878
  UserAffinity: UserAffinity,
861
879
  UserArtistAffinity: UserArtistAffinity,
862
880
  UserBookmarks: UserBookmarks,
package/models/AppUser.ts CHANGED
@@ -11,6 +11,7 @@ import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum
11
11
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
13
  import type { State, StateId } from './State';
14
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
14
15
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
15
16
  import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
16
17
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
@@ -206,6 +207,18 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
206
207
  hasRadioShow!: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
207
208
  hasRadioShows!: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
208
209
  countRadioShows!: Sequelize.HasManyCountAssociationsMixin;
210
+ // AppUser hasMany UserAbuseReports via reporterUserId
211
+ userAbuseReports!: UserAbuseReports[];
212
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
213
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
214
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
215
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
216
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
217
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
218
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
219
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
220
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
221
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
209
222
  // AppUser hasMany UserAffinity via userId
210
223
  userAffinities!: UserAffinity[];
211
224
  getUserAffinities!: Sequelize.HasManyGetAssociationsMixin<UserAffinity>;
@@ -13,6 +13,7 @@ import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from
13
13
  import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
14
14
  import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
15
15
  import type { Notification, NotificationId } from './Notification';
16
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
16
17
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
17
18
  import type { UserComments, UserCommentsId } from './UserComments';
18
19
  import type { UserLikes, UserLikesId } from './UserLikes';
@@ -159,6 +160,18 @@ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessi
159
160
  hasNotification!: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
160
161
  hasNotifications!: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
161
162
  countNotifications!: Sequelize.HasManyCountAssociationsMixin;
163
+ // JukeboxSession hasMany UserAbuseReports via jukeboxId
164
+ userAbuseReports!: UserAbuseReports[];
165
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
166
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
167
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
168
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
169
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
170
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
171
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
172
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
173
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
174
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
162
175
  // JukeboxSession hasMany UserBookmarks via jukeboxId
163
176
  userBookmarks!: UserBookmarks[];
164
177
  getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
@@ -6,6 +6,7 @@ import type { PlatformUserPlaylistArtistAffinity, PlatformUserPlaylistArtistAffi
6
6
  import type { PlatformUserPlaylistGenreAffinity, PlatformUserPlaylistGenreAffinityId } from './PlatformUserPlaylistGenreAffinity';
7
7
  import type { PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId } from './PlatformUserPlaylistTrack';
8
8
  import type { State, StateId } from './State';
9
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
9
10
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
10
11
  import type { UserComments, UserCommentsId } from './UserComments';
11
12
  import type { UserLikes, UserLikesId } from './UserLikes';
@@ -92,6 +93,18 @@ export class PlatformUserPlaylist extends Model<PlatformUserPlaylistAttributes,
92
93
  hasPlatformUserPlaylistTrack!: Sequelize.HasManyHasAssociationMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
93
94
  hasPlatformUserPlaylistTracks!: Sequelize.HasManyHasAssociationsMixin<PlatformUserPlaylistTrack, PlatformUserPlaylistTrackId>;
94
95
  countPlatformUserPlaylistTracks!: Sequelize.HasManyCountAssociationsMixin;
96
+ // PlatformUserPlaylist hasMany UserAbuseReports via playlistId
97
+ userAbuseReports!: UserAbuseReports[];
98
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
99
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
100
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
101
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
102
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
103
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
104
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
105
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
106
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
107
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
95
108
  // PlatformUserPlaylist hasMany UserBookmarks via playlistId
96
109
  userBookmarks!: UserBookmarks[];
97
110
  getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
@@ -5,6 +5,7 @@ import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
5
5
  import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
6
6
  import type { RadioShowPlacement, RadioShowPlacementId } from './RadioShowPlacement';
7
7
  import type { RadioShowPublishRequests, RadioShowPublishRequestsId } from './RadioShowPublishRequests';
8
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
8
9
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
9
10
  import type { UserComments, UserCommentsId } from './UserComments';
10
11
  import type { UserLikes, UserLikesId } from './UserLikes';
@@ -88,6 +89,18 @@ export class RadioShow extends Model<RadioShowAttributes, RadioShowCreationAttri
88
89
  hasRadioShowPublishRequest!: Sequelize.HasManyHasAssociationMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
89
90
  hasRadioShowPublishRequests!: Sequelize.HasManyHasAssociationsMixin<RadioShowPublishRequests, RadioShowPublishRequestsId>;
90
91
  countRadioShowPublishRequests!: Sequelize.HasManyCountAssociationsMixin;
92
+ // RadioShow hasMany UserAbuseReports via radioShowId
93
+ userAbuseReports!: UserAbuseReports[];
94
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
95
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
96
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
97
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
98
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
99
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
100
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
101
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
102
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
103
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
91
104
  // RadioShow hasMany UserBookmarks via radioShowId
92
105
  userBookmarks!: UserBookmarks[];
93
106
  getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
@@ -1,6 +1,7 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
3
  import type { RadioShow, RadioShowId } from './RadioShow';
4
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
4
5
 
5
6
  export interface RadioShowMediaAttributes {
6
7
  radioShowId: string;
@@ -51,6 +52,18 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
51
52
  getRadioShow!: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
52
53
  setRadioShow!: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
53
54
  createRadioShow!: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
55
+ // RadioShowMedia hasMany UserAbuseReports via radioShowMediaId
56
+ userAbuseReports!: UserAbuseReports[];
57
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
58
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
59
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
60
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
61
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
62
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
63
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
64
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
65
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
66
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
54
67
 
55
68
  static initModel(sequelize: Sequelize.Sequelize): typeof RadioShowMedia {
56
69
  return RadioShowMedia.init({
@@ -0,0 +1,232 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+ import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
6
+ import type { RadioShow, RadioShowId } from './RadioShow';
7
+ import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
8
+ import type { UserComments, UserCommentsId } from './UserComments';
9
+ import type { UserMessages, UserMessagesId } from './UserMessages';
10
+
11
+ export interface UserAbuseReportsAttributes {
12
+ reporterUserId: string;
13
+ jukeboxId?: string;
14
+ jukeboxChatMessageId?: string;
15
+ radioShowId?: string;
16
+ radioShowMediaId?: string;
17
+ playlistId?: string;
18
+ versusThemeTextId?: string;
19
+ commentId?: string;
20
+ directMessageId?: string;
21
+ id: string;
22
+ reportDate: Date;
23
+ updateDate: Date;
24
+ }
25
+
26
+ export type UserAbuseReportsPk = "id";
27
+ export type UserAbuseReportsId = UserAbuseReports[UserAbuseReportsPk];
28
+ export type UserAbuseReportsOptionalAttributes = "jukeboxId" | "jukeboxChatMessageId" | "radioShowId" | "radioShowMediaId" | "playlistId" | "versusThemeTextId" | "commentId" | "directMessageId" | "id" | "reportDate" | "updateDate";
29
+ export type UserAbuseReportsCreationAttributes = Optional<UserAbuseReportsAttributes, UserAbuseReportsOptionalAttributes>;
30
+
31
+ export class UserAbuseReports extends Model<UserAbuseReportsAttributes, UserAbuseReportsCreationAttributes> implements UserAbuseReportsAttributes {
32
+ reporterUserId!: string;
33
+ jukeboxId?: string;
34
+ jukeboxChatMessageId?: string;
35
+ radioShowId?: string;
36
+ radioShowMediaId?: string;
37
+ playlistId?: string;
38
+ versusThemeTextId?: string;
39
+ commentId?: string;
40
+ directMessageId?: string;
41
+ id!: string;
42
+ reportDate!: Date;
43
+ updateDate!: Date;
44
+
45
+ // UserAbuseReports belongsTo AppUser via reporterUserId
46
+ reporterUser!: AppUser;
47
+ getReporterUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
48
+ setReporterUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
49
+ createReporterUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
50
+ // UserAbuseReports belongsTo JukeboxSession via jukeboxId
51
+ jukebox!: JukeboxSession;
52
+ getJukebox!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
53
+ setJukebox!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
54
+ createJukebox!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
55
+ // UserAbuseReports belongsTo PlatformUserPlaylist via playlistId
56
+ playlist!: PlatformUserPlaylist;
57
+ getPlaylist!: Sequelize.BelongsToGetAssociationMixin<PlatformUserPlaylist>;
58
+ setPlaylist!: Sequelize.BelongsToSetAssociationMixin<PlatformUserPlaylist, PlatformUserPlaylistId>;
59
+ createPlaylist!: Sequelize.BelongsToCreateAssociationMixin<PlatformUserPlaylist>;
60
+ // UserAbuseReports belongsTo RadioShow via radioShowId
61
+ radioShow!: RadioShow;
62
+ getRadioShow!: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
63
+ setRadioShow!: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
64
+ createRadioShow!: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
65
+ // UserAbuseReports belongsTo RadioShowMedia via radioShowMediaId
66
+ radioShowMedium!: RadioShowMedia;
67
+ getRadioShowMedium!: Sequelize.BelongsToGetAssociationMixin<RadioShowMedia>;
68
+ setRadioShowMedium!: Sequelize.BelongsToSetAssociationMixin<RadioShowMedia, RadioShowMediaId>;
69
+ createRadioShowMedium!: Sequelize.BelongsToCreateAssociationMixin<RadioShowMedia>;
70
+ // UserAbuseReports belongsTo UserComments via commentId
71
+ comment!: UserComments;
72
+ getComment!: Sequelize.BelongsToGetAssociationMixin<UserComments>;
73
+ setComment!: Sequelize.BelongsToSetAssociationMixin<UserComments, UserCommentsId>;
74
+ createComment!: Sequelize.BelongsToCreateAssociationMixin<UserComments>;
75
+ // UserAbuseReports belongsTo UserMessages via directMessageId
76
+ directMessage!: UserMessages;
77
+ getDirectMessage!: Sequelize.BelongsToGetAssociationMixin<UserMessages>;
78
+ setDirectMessage!: Sequelize.BelongsToSetAssociationMixin<UserMessages, UserMessagesId>;
79
+ createDirectMessage!: Sequelize.BelongsToCreateAssociationMixin<UserMessages>;
80
+
81
+ static initModel(sequelize: Sequelize.Sequelize): typeof UserAbuseReports {
82
+ return UserAbuseReports.init({
83
+ reporterUserId: {
84
+ type: DataTypes.UUID,
85
+ allowNull: false,
86
+ references: {
87
+ model: 'app_user',
88
+ key: 'id'
89
+ },
90
+ field: 'reporter_user_id'
91
+ },
92
+ jukeboxId: {
93
+ type: DataTypes.UUID,
94
+ allowNull: true,
95
+ references: {
96
+ model: 'jukebox_session',
97
+ key: 'id'
98
+ },
99
+ field: 'jukebox_id'
100
+ },
101
+ jukeboxChatMessageId: {
102
+ type: DataTypes.STRING(50),
103
+ allowNull: true,
104
+ field: 'jukebox_chat_message_id'
105
+ },
106
+ radioShowId: {
107
+ type: DataTypes.UUID,
108
+ allowNull: true,
109
+ references: {
110
+ model: 'radio_show',
111
+ key: 'id'
112
+ },
113
+ field: 'radio_show_id'
114
+ },
115
+ radioShowMediaId: {
116
+ type: DataTypes.UUID,
117
+ allowNull: true,
118
+ references: {
119
+ model: 'radio_show_media',
120
+ key: 'id'
121
+ },
122
+ field: 'radio_show_media_id'
123
+ },
124
+ playlistId: {
125
+ type: DataTypes.UUID,
126
+ allowNull: true,
127
+ references: {
128
+ model: 'platform_user_playlist',
129
+ key: 'id'
130
+ },
131
+ field: 'playlist_id'
132
+ },
133
+ versusThemeTextId: {
134
+ type: DataTypes.UUID,
135
+ allowNull: true,
136
+ field: 'versus_theme_text_id'
137
+ },
138
+ commentId: {
139
+ type: DataTypes.UUID,
140
+ allowNull: true,
141
+ references: {
142
+ model: 'user_comments',
143
+ key: 'id'
144
+ },
145
+ field: 'comment_id'
146
+ },
147
+ directMessageId: {
148
+ type: DataTypes.UUID,
149
+ allowNull: true,
150
+ references: {
151
+ model: 'user_messages',
152
+ key: 'id'
153
+ },
154
+ field: 'direct_message_id'
155
+ },
156
+ id: {
157
+ type: DataTypes.UUID,
158
+ allowNull: false,
159
+ defaultValue: DataTypes.UUIDV4,
160
+ primaryKey: true
161
+ },
162
+ reportDate: {
163
+ type: DataTypes.DATE,
164
+ allowNull: false,
165
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
166
+ field: 'report_date'
167
+ },
168
+ updateDate: {
169
+ type: DataTypes.DATE,
170
+ allowNull: false,
171
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
172
+ field: 'update_date'
173
+ }
174
+ }, {
175
+ sequelize,
176
+ tableName: 'user_abuse_reports',
177
+ schema: 'eb',
178
+ timestamps: false,
179
+ indexes: [
180
+ {
181
+ name: "idx_user_abuse_reports_comment",
182
+ fields: [
183
+ { name: "comment_id" },
184
+ ]
185
+ },
186
+ {
187
+ name: "idx_user_abuse_reports_direct_message",
188
+ fields: [
189
+ { name: "direct_message_id" },
190
+ ]
191
+ },
192
+ {
193
+ name: "idx_user_abuse_reports_jukebox",
194
+ fields: [
195
+ { name: "jukebox_id" },
196
+ ]
197
+ },
198
+ {
199
+ name: "idx_user_abuse_reports_playlist",
200
+ fields: [
201
+ { name: "playlist_id" },
202
+ ]
203
+ },
204
+ {
205
+ name: "idx_user_abuse_reports_radio_show",
206
+ fields: [
207
+ { name: "radio_show_id" },
208
+ ]
209
+ },
210
+ {
211
+ name: "idx_user_abuse_reports_radio_show_media",
212
+ fields: [
213
+ { name: "radio_show_media_id" },
214
+ ]
215
+ },
216
+ {
217
+ name: "idx_user_abuse_reports_reporter",
218
+ fields: [
219
+ { name: "reporter_user_id" },
220
+ ]
221
+ },
222
+ {
223
+ name: "user_abuse_reports_pkey",
224
+ unique: true,
225
+ fields: [
226
+ { name: "id" },
227
+ ]
228
+ },
229
+ ]
230
+ });
231
+ }
232
+ }
@@ -4,6 +4,7 @@ import type { AppUser, AppUserId } from './AppUser';
4
4
  import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
5
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
6
6
  import type { RadioShow, RadioShowId } from './RadioShow';
7
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
7
8
 
8
9
  export interface UserCommentsAttributes {
9
10
  appUserId: string;
@@ -63,6 +64,18 @@ export class UserComments extends Model<UserCommentsAttributes, UserCommentsCrea
63
64
  getRadioShow!: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
64
65
  setRadioShow!: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
65
66
  createRadioShow!: Sequelize.BelongsToCreateAssociationMixin<RadioShow>;
67
+ // UserComments hasMany UserAbuseReports via commentId
68
+ userAbuseReports!: UserAbuseReports[];
69
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
70
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
71
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
72
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
73
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
74
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
75
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
76
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
77
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
78
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
66
79
  // UserComments belongsTo UserComments via replyCommentId
67
80
  replyComment!: UserComments;
68
81
  getReplyComment!: Sequelize.BelongsToGetAssociationMixin<UserComments>;
@@ -1,6 +1,7 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
3
  import type { AppUser, AppUserId } from './AppUser';
4
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
4
5
 
5
6
  export interface UserMessagesAttributes {
6
7
  senderId: string;
@@ -44,6 +45,18 @@ export class UserMessages extends Model<UserMessagesAttributes, UserMessagesCrea
44
45
  getSender!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
45
46
  setSender!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
46
47
  createSender!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
48
+ // UserMessages hasMany UserAbuseReports via directMessageId
49
+ userAbuseReports!: UserAbuseReports[];
50
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
51
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
52
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
53
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
54
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
55
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
56
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
57
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
58
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
59
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
47
60
  // UserMessages belongsTo UserMessages via replyMessageId
48
61
  replyMessage!: UserMessages;
49
62
  getReplyMessage!: Sequelize.BelongsToGetAssociationMixin<UserMessages>;
@@ -181,6 +181,8 @@ import { UnmatchedAlbum as _UnmatchedAlbum } from "./UnmatchedAlbum";
181
181
  import type { UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes } from "./UnmatchedAlbum";
182
182
  import { UnmatchedArtist as _UnmatchedArtist } from "./UnmatchedArtist";
183
183
  import type { UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes } from "./UnmatchedArtist";
184
+ import { UserAbuseReports as _UserAbuseReports } from "./UserAbuseReports";
185
+ import type { UserAbuseReportsAttributes, UserAbuseReportsCreationAttributes } from "./UserAbuseReports";
184
186
  import { UserAffinity as _UserAffinity } from "./UserAffinity";
185
187
  import type { UserAffinityAttributes, UserAffinityCreationAttributes } from "./UserAffinity";
186
188
  import { UserArtistAffinity as _UserArtistAffinity } from "./UserArtistAffinity";
@@ -320,6 +322,7 @@ export {
320
322
  _TrackDeletionReason as TrackDeletionReason,
321
323
  _UnmatchedAlbum as UnmatchedAlbum,
322
324
  _UnmatchedArtist as UnmatchedArtist,
325
+ _UserAbuseReports as UserAbuseReports,
323
326
  _UserAffinity as UserAffinity,
324
327
  _UserArtistAffinity as UserArtistAffinity,
325
328
  _UserBookmarks as UserBookmarks,
@@ -528,6 +531,8 @@ export type {
528
531
  UnmatchedAlbumCreationAttributes,
529
532
  UnmatchedArtistAttributes,
530
533
  UnmatchedArtistCreationAttributes,
534
+ UserAbuseReportsAttributes,
535
+ UserAbuseReportsCreationAttributes,
531
536
  UserAffinityAttributes,
532
537
  UserAffinityCreationAttributes,
533
538
  UserArtistAffinityAttributes,
@@ -668,6 +673,7 @@ export function initModels(sequelize: Sequelize) {
668
673
  const TrackDeletionReason = _TrackDeletionReason.initModel(sequelize);
669
674
  const UnmatchedAlbum = _UnmatchedAlbum.initModel(sequelize);
670
675
  const UnmatchedArtist = _UnmatchedArtist.initModel(sequelize);
676
+ const UserAbuseReports = _UserAbuseReports.initModel(sequelize);
671
677
  const UserAffinity = _UserAffinity.initModel(sequelize);
672
678
  const UserArtistAffinity = _UserArtistAffinity.initModel(sequelize);
673
679
  const UserBookmarks = _UserBookmarks.initModel(sequelize);
@@ -776,6 +782,8 @@ export function initModels(sequelize: Sequelize) {
776
782
  AppUser.hasMany(PlatformUserPlaylist, { as: "platformUserPlaylists", foreignKey: "appUserId"});
777
783
  RadioShow.belongsTo(AppUser, { as: "creatorUser", foreignKey: "creatorUserId"});
778
784
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId"});
785
+ UserAbuseReports.belongsTo(AppUser, { as: "reporterUser", foreignKey: "reporterUserId"});
786
+ AppUser.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "reporterUserId"});
779
787
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
780
788
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId"});
781
789
  UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
@@ -916,6 +924,8 @@ export function initModels(sequelize: Sequelize) {
916
924
  JukeboxSession.hasMany(JukeboxUser, { as: "jukeboxUsers", foreignKey: "jukeboxSessionId"});
917
925
  Notification.belongsTo(JukeboxSession, { as: "jukeboxSession", foreignKey: "jukeboxSessionId"});
918
926
  JukeboxSession.hasMany(Notification, { as: "notifications", foreignKey: "jukeboxSessionId"});
927
+ UserAbuseReports.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId"});
928
+ JukeboxSession.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "jukeboxId"});
919
929
  UserBookmarks.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId"});
920
930
  JukeboxSession.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "jukeboxId"});
921
931
  UserComments.belongsTo(JukeboxSession, { as: "jukebox", foreignKey: "jukeboxId"});
@@ -1046,6 +1056,8 @@ export function initModels(sequelize: Sequelize) {
1046
1056
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistGenreAffinity, { as: "platformUserPlaylistGenreAffinities", foreignKey: "platformUserPlaylistId"});
1047
1057
  PlatformUserPlaylistTrack.belongsTo(PlatformUserPlaylist, { as: "platformUserPlaylist", foreignKey: "platformUserPlaylistId"});
1048
1058
  PlatformUserPlaylist.hasMany(PlatformUserPlaylistTrack, { as: "platformUserPlaylistTracks", foreignKey: "platformUserPlaylistId"});
1059
+ UserAbuseReports.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId"});
1060
+ PlatformUserPlaylist.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "playlistId"});
1049
1061
  UserBookmarks.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId"});
1050
1062
  PlatformUserPlaylist.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "playlistId"});
1051
1063
  UserComments.belongsTo(PlatformUserPlaylist, { as: "playlist", foreignKey: "playlistId"});
@@ -1062,12 +1074,16 @@ export function initModels(sequelize: Sequelize) {
1062
1074
  RadioShow.hasMany(RadioShowPlacement, { as: "radioShowPlacements", foreignKey: "radioShowId"});
1063
1075
  RadioShowPublishRequests.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
1064
1076
  RadioShow.hasMany(RadioShowPublishRequests, { as: "radioShowPublishRequests", foreignKey: "radioShowId"});
1077
+ UserAbuseReports.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
1078
+ RadioShow.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "radioShowId"});
1065
1079
  UserBookmarks.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
1066
1080
  RadioShow.hasMany(UserBookmarks, { as: "userBookmarks", foreignKey: "radioShowId"});
1067
1081
  UserComments.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
1068
1082
  RadioShow.hasMany(UserComments, { as: "userComments", foreignKey: "radioShowId"});
1069
1083
  UserLikes.belongsTo(RadioShow, { as: "radioShow", foreignKey: "radioShowId"});
1070
1084
  RadioShow.hasMany(UserLikes, { as: "userLikes", foreignKey: "radioShowId"});
1085
+ UserAbuseReports.belongsTo(RadioShowMedia, { as: "radioShowMedium", foreignKey: "radioShowMediaId"});
1086
+ RadioShowMedia.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "radioShowMediaId"});
1071
1087
  AppUser.belongsTo(State, { as: "state", foreignKey: "stateId"});
1072
1088
  State.hasMany(AppUser, { as: "appUsers", foreignKey: "stateId"});
1073
1089
  PlatformUserPlaylist.belongsTo(State, { as: "state", foreignKey: "stateId"});
@@ -1076,8 +1092,12 @@ export function initModels(sequelize: Sequelize) {
1076
1092
  State.hasMany(PlatformUserPlaylistTrack, { as: "platformUserPlaylistTracks", foreignKey: "stateId"});
1077
1093
  JukeboxQueueEntry.belongsTo(TrackDeletionReason, { as: "trackDeletionReason", foreignKey: "trackDeletionReasonId"});
1078
1094
  TrackDeletionReason.hasMany(JukeboxQueueEntry, { as: "jukeboxQueueEntries", foreignKey: "trackDeletionReasonId"});
1095
+ UserAbuseReports.belongsTo(UserComments, { as: "comment", foreignKey: "commentId"});
1096
+ UserComments.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "commentId"});
1079
1097
  UserComments.belongsTo(UserComments, { as: "replyComment", foreignKey: "replyCommentId"});
1080
1098
  UserComments.hasMany(UserComments, { as: "userComments", foreignKey: "replyCommentId"});
1099
+ UserAbuseReports.belongsTo(UserMessages, { as: "directMessage", foreignKey: "directMessageId"});
1100
+ UserMessages.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "directMessageId"});
1081
1101
  UserMessages.belongsTo(UserMessages, { as: "replyMessage", foreignKey: "replyMessageId"});
1082
1102
  UserMessages.hasMany(UserMessages, { as: "userMessages", foreignKey: "replyMessageId"});
1083
1103
  GuestUser.belongsTo(Versus, { as: "versu", foreignKey: "versusId"});
@@ -1203,6 +1223,7 @@ export function initModels(sequelize: Sequelize) {
1203
1223
  TrackDeletionReason: TrackDeletionReason,
1204
1224
  UnmatchedAlbum: UnmatchedAlbum,
1205
1225
  UnmatchedArtist: UnmatchedArtist,
1226
+ UserAbuseReports: UserAbuseReports,
1206
1227
  UserAffinity: UserAffinity,
1207
1228
  UserArtistAffinity: UserArtistAffinity,
1208
1229
  UserBookmarks: UserBookmarks,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earbug/db-models",
3
- "version": "0.0.42",
3
+ "version": "0.0.43",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {