@earbug/db-models 0.0.33 → 0.0.34

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
@@ -10,6 +10,7 @@ import type { Notification, NotificationId } from './Notification';
10
10
  import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum';
11
11
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
+ import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
13
14
  import type { State, StateId } from './State';
14
15
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
15
16
  import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
@@ -185,6 +186,17 @@ export declare class AppUser extends Model<AppUserAttributes, AppUserCreationAtt
185
186
  hasRadioShow: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
186
187
  hasRadioShows: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
187
188
  countRadioShows: Sequelize.HasManyCountAssociationsMixin;
189
+ radioShowMedia: RadioShowMedia[];
190
+ getRadioShowMedia: Sequelize.HasManyGetAssociationsMixin<RadioShowMedia>;
191
+ setRadioShowMedia: Sequelize.HasManySetAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
192
+ addRadioShowMedium: Sequelize.HasManyAddAssociationMixin<RadioShowMedia, RadioShowMediaId>;
193
+ addRadioShowMedia: Sequelize.HasManyAddAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
194
+ createRadioShowMedium: Sequelize.HasManyCreateAssociationMixin<RadioShowMedia>;
195
+ removeRadioShowMedium: Sequelize.HasManyRemoveAssociationMixin<RadioShowMedia, RadioShowMediaId>;
196
+ removeRadioShowMedia: Sequelize.HasManyRemoveAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
197
+ hasRadioShowMedium: Sequelize.HasManyHasAssociationMixin<RadioShowMedia, RadioShowMediaId>;
198
+ hasRadioShowMedia: Sequelize.HasManyHasAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
199
+ countRadioShowMedia: Sequelize.HasManyCountAssociationsMixin;
188
200
  userAffinities: UserAffinity[];
189
201
  getUserAffinities: Sequelize.HasManyGetAssociationsMixin<UserAffinity>;
190
202
  setUserAffinities: Sequelize.HasManySetAssociationsMixin<UserAffinity, UserAffinityId>;
@@ -1,12 +1,12 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
3
4
  import type { RadioShow, RadioShowId } from './RadioShow';
4
5
  export interface RadioShowMediaAttributes {
5
6
  radioShowId: string;
6
7
  originalMediaType?: number;
7
8
  s3VideoUrl?: string;
8
9
  s3AudioUrl: string;
9
- approved?: boolean;
10
10
  id: string;
11
11
  createDate: Date;
12
12
  description?: string;
@@ -14,17 +14,22 @@ export interface RadioShowMediaAttributes {
14
14
  deleted?: boolean;
15
15
  sourceS3Key?: string;
16
16
  isAppRecorded?: boolean;
17
+ automatedModerationApproved?: boolean;
18
+ automatedModerationRejectionMetadata?: object;
19
+ automatedModerationDecidedAt?: Date;
20
+ manualModerationApproved?: boolean;
21
+ manualModerationDecidedAt?: Date;
22
+ manualModerationByUserId?: string;
17
23
  }
18
24
  export type RadioShowMediaPk = "id";
19
25
  export type RadioShowMediaId = RadioShowMedia[RadioShowMediaPk];
20
- export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "approved" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded";
26
+ export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationByUserId";
21
27
  export type RadioShowMediaCreationAttributes = Optional<RadioShowMediaAttributes, RadioShowMediaOptionalAttributes>;
22
28
  export declare class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMediaCreationAttributes> implements RadioShowMediaAttributes {
23
29
  radioShowId: string;
24
30
  originalMediaType?: number;
25
31
  s3VideoUrl?: string;
26
32
  s3AudioUrl: string;
27
- approved?: boolean;
28
33
  id: string;
29
34
  createDate: Date;
30
35
  description?: string;
@@ -32,6 +37,16 @@ export declare class RadioShowMedia extends Model<RadioShowMediaAttributes, Radi
32
37
  deleted?: boolean;
33
38
  sourceS3Key?: string;
34
39
  isAppRecorded?: boolean;
40
+ automatedModerationApproved?: boolean;
41
+ automatedModerationRejectionMetadata?: object;
42
+ automatedModerationDecidedAt?: Date;
43
+ manualModerationApproved?: boolean;
44
+ manualModerationDecidedAt?: Date;
45
+ manualModerationByUserId?: string;
46
+ manualModerationByUser: AppUser;
47
+ getManualModerationByUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
48
+ setManualModerationByUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
49
+ createManualModerationByUser: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
35
50
  radioShow: RadioShow;
36
51
  getRadioShow: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
37
52
  setRadioShow: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
@@ -53,10 +53,6 @@ class RadioShowMedia extends sequelize_1.Model {
53
53
  allowNull: false,
54
54
  field: 's3_audio_url'
55
55
  },
56
- approved: {
57
- type: sequelize_1.DataTypes.BOOLEAN,
58
- allowNull: true
59
- },
60
56
  id: {
61
57
  type: sequelize_1.DataTypes.UUID,
62
58
  allowNull: false,
@@ -91,6 +87,40 @@ class RadioShowMedia extends sequelize_1.Model {
91
87
  type: sequelize_1.DataTypes.BOOLEAN,
92
88
  allowNull: true,
93
89
  field: 'is_app_recorded'
90
+ },
91
+ automatedModerationApproved: {
92
+ type: sequelize_1.DataTypes.BOOLEAN,
93
+ allowNull: true,
94
+ field: 'automated_moderation_approved'
95
+ },
96
+ automatedModerationRejectionMetadata: {
97
+ type: sequelize_1.DataTypes.JSONB,
98
+ allowNull: true,
99
+ field: 'automated_moderation_rejection_metadata'
100
+ },
101
+ automatedModerationDecidedAt: {
102
+ type: sequelize_1.DataTypes.DATE,
103
+ allowNull: true,
104
+ field: 'automated_moderation_decided_at'
105
+ },
106
+ manualModerationApproved: {
107
+ type: sequelize_1.DataTypes.BOOLEAN,
108
+ allowNull: true,
109
+ field: 'manual_moderation_approved'
110
+ },
111
+ manualModerationDecidedAt: {
112
+ type: sequelize_1.DataTypes.DATE,
113
+ allowNull: true,
114
+ field: 'manual_moderation_decided_at'
115
+ },
116
+ manualModerationByUserId: {
117
+ type: sequelize_1.DataTypes.UUID,
118
+ allowNull: true,
119
+ references: {
120
+ model: 'app_user',
121
+ key: 'id'
122
+ },
123
+ field: 'manual_moderation_by_user_id'
94
124
  }
95
125
  }, {
96
126
  sequelize,
@@ -382,6 +382,8 @@ function initModels(sequelize) {
382
382
  AppUser.hasMany(PlatformUserPlaylist, { as: "platformUserPlaylists", foreignKey: "appUserId" });
383
383
  RadioShow.belongsTo(AppUser, { as: "creatorUser", foreignKey: "creatorUserId" });
384
384
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId" });
385
+ RadioShowMedia.belongsTo(AppUser, { as: "manualModerationByUser", foreignKey: "manualModerationByUserId" });
386
+ AppUser.hasMany(RadioShowMedia, { as: "radioShowMedia", foreignKey: "manualModerationByUserId" });
385
387
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
386
388
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId" });
387
389
  UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId" });
package/models/AppUser.ts CHANGED
@@ -10,6 +10,7 @@ import type { Notification, NotificationId } from './Notification';
10
10
  import type { PlatformUserAlbum, PlatformUserAlbumId } from './PlatformUserAlbum';
11
11
  import type { PlatformUserPlaylist, PlatformUserPlaylistId } from './PlatformUserPlaylist';
12
12
  import type { RadioShow, RadioShowId } from './RadioShow';
13
+ import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
13
14
  import type { State, StateId } from './State';
14
15
  import type { UserAffinity, UserAffinityId } from './UserAffinity';
15
16
  import type { UserArtistAffinity, UserArtistAffinityId } from './UserArtistAffinity';
@@ -202,6 +203,18 @@ export class AppUser extends Model<AppUserAttributes, AppUserCreationAttributes>
202
203
  hasRadioShow!: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
203
204
  hasRadioShows!: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
204
205
  countRadioShows!: Sequelize.HasManyCountAssociationsMixin;
206
+ // AppUser hasMany RadioShowMedia via manualModerationByUserId
207
+ radioShowMedia!: RadioShowMedia[];
208
+ getRadioShowMedia!: Sequelize.HasManyGetAssociationsMixin<RadioShowMedia>;
209
+ setRadioShowMedia!: Sequelize.HasManySetAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
210
+ addRadioShowMedium!: Sequelize.HasManyAddAssociationMixin<RadioShowMedia, RadioShowMediaId>;
211
+ addRadioShowMedia!: Sequelize.HasManyAddAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
212
+ createRadioShowMedium!: Sequelize.HasManyCreateAssociationMixin<RadioShowMedia>;
213
+ removeRadioShowMedium!: Sequelize.HasManyRemoveAssociationMixin<RadioShowMedia, RadioShowMediaId>;
214
+ removeRadioShowMedia!: Sequelize.HasManyRemoveAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
215
+ hasRadioShowMedium!: Sequelize.HasManyHasAssociationMixin<RadioShowMedia, RadioShowMediaId>;
216
+ hasRadioShowMedia!: Sequelize.HasManyHasAssociationsMixin<RadioShowMedia, RadioShowMediaId>;
217
+ countRadioShowMedia!: Sequelize.HasManyCountAssociationsMixin;
205
218
  // AppUser hasMany UserAffinity via userId
206
219
  userAffinities!: UserAffinity[];
207
220
  getUserAffinities!: Sequelize.HasManyGetAssociationsMixin<UserAffinity>;
@@ -1,5 +1,6 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
3
4
  import type { RadioShow, RadioShowId } from './RadioShow';
4
5
 
5
6
  export interface RadioShowMediaAttributes {
@@ -7,7 +8,6 @@ export interface RadioShowMediaAttributes {
7
8
  originalMediaType?: number;
8
9
  s3VideoUrl?: string;
9
10
  s3AudioUrl: string;
10
- approved?: boolean;
11
11
  id: string;
12
12
  createDate: Date;
13
13
  description?: string;
@@ -15,11 +15,17 @@ export interface RadioShowMediaAttributes {
15
15
  deleted?: boolean;
16
16
  sourceS3Key?: string;
17
17
  isAppRecorded?: boolean;
18
+ automatedModerationApproved?: boolean;
19
+ automatedModerationRejectionMetadata?: object;
20
+ automatedModerationDecidedAt?: Date;
21
+ manualModerationApproved?: boolean;
22
+ manualModerationDecidedAt?: Date;
23
+ manualModerationByUserId?: string;
18
24
  }
19
25
 
20
26
  export type RadioShowMediaPk = "id";
21
27
  export type RadioShowMediaId = RadioShowMedia[RadioShowMediaPk];
22
- export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "approved" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded";
28
+ export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationByUserId";
23
29
  export type RadioShowMediaCreationAttributes = Optional<RadioShowMediaAttributes, RadioShowMediaOptionalAttributes>;
24
30
 
25
31
  export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMediaCreationAttributes> implements RadioShowMediaAttributes {
@@ -27,7 +33,6 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
27
33
  originalMediaType?: number;
28
34
  s3VideoUrl?: string;
29
35
  s3AudioUrl!: string;
30
- approved?: boolean;
31
36
  id!: string;
32
37
  createDate!: Date;
33
38
  description?: string;
@@ -35,7 +40,18 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
35
40
  deleted?: boolean;
36
41
  sourceS3Key?: string;
37
42
  isAppRecorded?: boolean;
43
+ automatedModerationApproved?: boolean;
44
+ automatedModerationRejectionMetadata?: object;
45
+ automatedModerationDecidedAt?: Date;
46
+ manualModerationApproved?: boolean;
47
+ manualModerationDecidedAt?: Date;
48
+ manualModerationByUserId?: string;
38
49
 
50
+ // RadioShowMedia belongsTo AppUser via manualModerationByUserId
51
+ manualModerationByUser!: AppUser;
52
+ getManualModerationByUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
53
+ setManualModerationByUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
54
+ createManualModerationByUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
39
55
  // RadioShowMedia belongsTo RadioShow via radioShowId
40
56
  radioShow!: RadioShow;
41
57
  getRadioShow!: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
@@ -68,10 +84,6 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
68
84
  allowNull: false,
69
85
  field: 's3_audio_url'
70
86
  },
71
- approved: {
72
- type: DataTypes.BOOLEAN,
73
- allowNull: true
74
- },
75
87
  id: {
76
88
  type: DataTypes.UUID,
77
89
  allowNull: false,
@@ -106,6 +118,40 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
106
118
  type: DataTypes.BOOLEAN,
107
119
  allowNull: true,
108
120
  field: 'is_app_recorded'
121
+ },
122
+ automatedModerationApproved: {
123
+ type: DataTypes.BOOLEAN,
124
+ allowNull: true,
125
+ field: 'automated_moderation_approved'
126
+ },
127
+ automatedModerationRejectionMetadata: {
128
+ type: DataTypes.JSONB,
129
+ allowNull: true,
130
+ field: 'automated_moderation_rejection_metadata'
131
+ },
132
+ automatedModerationDecidedAt: {
133
+ type: DataTypes.DATE,
134
+ allowNull: true,
135
+ field: 'automated_moderation_decided_at'
136
+ },
137
+ manualModerationApproved: {
138
+ type: DataTypes.BOOLEAN,
139
+ allowNull: true,
140
+ field: 'manual_moderation_approved'
141
+ },
142
+ manualModerationDecidedAt: {
143
+ type: DataTypes.DATE,
144
+ allowNull: true,
145
+ field: 'manual_moderation_decided_at'
146
+ },
147
+ manualModerationByUserId: {
148
+ type: DataTypes.UUID,
149
+ allowNull: true,
150
+ references: {
151
+ model: 'app_user',
152
+ key: 'id'
153
+ },
154
+ field: 'manual_moderation_by_user_id'
109
155
  }
110
156
  }, {
111
157
  sequelize,
@@ -680,6 +680,8 @@ export function initModels(sequelize: Sequelize) {
680
680
  AppUser.hasMany(PlatformUserPlaylist, { as: "platformUserPlaylists", foreignKey: "appUserId"});
681
681
  RadioShow.belongsTo(AppUser, { as: "creatorUser", foreignKey: "creatorUserId"});
682
682
  AppUser.hasMany(RadioShow, { as: "radioShows", foreignKey: "creatorUserId"});
683
+ RadioShowMedia.belongsTo(AppUser, { as: "manualModerationByUser", foreignKey: "manualModerationByUserId"});
684
+ AppUser.hasMany(RadioShowMedia, { as: "radioShowMedia", foreignKey: "manualModerationByUserId"});
683
685
  UserAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
684
686
  AppUser.hasMany(UserAffinity, { as: "userAffinities", foreignKey: "userId"});
685
687
  UserArtistAffinity.belongsTo(AppUser, { as: "user", foreignKey: "userId"});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earbug/db-models",
3
- "version": "0.0.33",
3
+ "version": "0.0.34",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {