@earbug/db-models 0.0.32 → 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 +12 -0
- package/dist/RadioShowMedia.d.ts +28 -3
- package/dist/RadioShowMedia.js +57 -4
- package/dist/RadioShowPlacement.d.ts +3 -1
- package/dist/RadioShowPlacement.js +4 -0
- package/dist/init-models.js +2 -0
- package/models/AppUser.ts +13 -0
- package/models/RadioShowMedia.ts +86 -7
- package/models/RadioShowPlacement.ts +7 -1
- package/models/init-models.ts +2 -0
- package/package.json +1 -1
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>;
|
package/dist/RadioShowMedia.d.ts
CHANGED
|
@@ -1,27 +1,52 @@
|
|
|
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
|
+
description?: string;
|
|
13
|
+
cropInstructions?: string;
|
|
14
|
+
deleted?: boolean;
|
|
15
|
+
sourceS3Key?: string;
|
|
16
|
+
isAppRecorded?: boolean;
|
|
17
|
+
automatedModerationApproved?: boolean;
|
|
18
|
+
automatedModerationRejectionMetadata?: object;
|
|
19
|
+
automatedModerationDecidedAt?: Date;
|
|
20
|
+
manualModerationApproved?: boolean;
|
|
21
|
+
manualModerationDecidedAt?: Date;
|
|
22
|
+
manualModerationByUserId?: string;
|
|
12
23
|
}
|
|
13
24
|
export type RadioShowMediaPk = "id";
|
|
14
25
|
export type RadioShowMediaId = RadioShowMedia[RadioShowMediaPk];
|
|
15
|
-
export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "
|
|
26
|
+
export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationByUserId";
|
|
16
27
|
export type RadioShowMediaCreationAttributes = Optional<RadioShowMediaAttributes, RadioShowMediaOptionalAttributes>;
|
|
17
28
|
export declare class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMediaCreationAttributes> implements RadioShowMediaAttributes {
|
|
18
29
|
radioShowId: string;
|
|
19
30
|
originalMediaType?: number;
|
|
20
31
|
s3VideoUrl?: string;
|
|
21
32
|
s3AudioUrl: string;
|
|
22
|
-
approved?: boolean;
|
|
23
33
|
id: string;
|
|
24
34
|
createDate: Date;
|
|
35
|
+
description?: string;
|
|
36
|
+
cropInstructions?: string;
|
|
37
|
+
deleted?: boolean;
|
|
38
|
+
sourceS3Key?: string;
|
|
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>;
|
|
25
50
|
radioShow: RadioShow;
|
|
26
51
|
getRadioShow: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
|
|
27
52
|
setRadioShow: Sequelize.BelongsToSetAssociationMixin<RadioShow, RadioShowId>;
|
package/dist/RadioShowMedia.js
CHANGED
|
@@ -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,
|
|
@@ -68,6 +64,63 @@ class RadioShowMedia extends sequelize_1.Model {
|
|
|
68
64
|
allowNull: false,
|
|
69
65
|
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
70
66
|
field: 'create_date'
|
|
67
|
+
},
|
|
68
|
+
description: {
|
|
69
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
70
|
+
allowNull: true
|
|
71
|
+
},
|
|
72
|
+
cropInstructions: {
|
|
73
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
74
|
+
allowNull: true,
|
|
75
|
+
field: 'crop_instructions'
|
|
76
|
+
},
|
|
77
|
+
deleted: {
|
|
78
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
79
|
+
allowNull: true
|
|
80
|
+
},
|
|
81
|
+
sourceS3Key: {
|
|
82
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
83
|
+
allowNull: true,
|
|
84
|
+
field: 'source_s3_key'
|
|
85
|
+
},
|
|
86
|
+
isAppRecorded: {
|
|
87
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
88
|
+
allowNull: true,
|
|
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'
|
|
71
124
|
}
|
|
72
125
|
}, {
|
|
73
126
|
sequelize,
|
|
@@ -10,10 +10,11 @@ export interface RadioShowPlacementAttributes {
|
|
|
10
10
|
startTime?: string;
|
|
11
11
|
endTime?: string;
|
|
12
12
|
id: string;
|
|
13
|
+
deleted?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export type RadioShowPlacementPk = "id";
|
|
15
16
|
export type RadioShowPlacementId = RadioShowPlacement[RadioShowPlacementPk];
|
|
16
|
-
export type RadioShowPlacementOptionalAttributes = "canonTrackId" | "radioShowMediaId" | "startTime" | "endTime" | "id";
|
|
17
|
+
export type RadioShowPlacementOptionalAttributes = "canonTrackId" | "radioShowMediaId" | "startTime" | "endTime" | "id" | "deleted";
|
|
17
18
|
export type RadioShowPlacementCreationAttributes = Optional<RadioShowPlacementAttributes, RadioShowPlacementOptionalAttributes>;
|
|
18
19
|
export declare class RadioShowPlacement extends Model<RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes> implements RadioShowPlacementAttributes {
|
|
19
20
|
radioShowId: string;
|
|
@@ -23,6 +24,7 @@ export declare class RadioShowPlacement extends Model<RadioShowPlacementAttribut
|
|
|
23
24
|
startTime?: string;
|
|
24
25
|
endTime?: string;
|
|
25
26
|
id: string;
|
|
27
|
+
deleted?: boolean;
|
|
26
28
|
canonTrack: CanonTrack;
|
|
27
29
|
getCanonTrack: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
|
|
28
30
|
setCanonTrack: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
|
package/dist/init-models.js
CHANGED
|
@@ -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>;
|
package/models/RadioShowMedia.ts
CHANGED
|
@@ -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,14 +8,24 @@ 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
|
+
description?: string;
|
|
14
|
+
cropInstructions?: string;
|
|
15
|
+
deleted?: boolean;
|
|
16
|
+
sourceS3Key?: string;
|
|
17
|
+
isAppRecorded?: boolean;
|
|
18
|
+
automatedModerationApproved?: boolean;
|
|
19
|
+
automatedModerationRejectionMetadata?: object;
|
|
20
|
+
automatedModerationDecidedAt?: Date;
|
|
21
|
+
manualModerationApproved?: boolean;
|
|
22
|
+
manualModerationDecidedAt?: Date;
|
|
23
|
+
manualModerationByUserId?: string;
|
|
13
24
|
}
|
|
14
25
|
|
|
15
26
|
export type RadioShowMediaPk = "id";
|
|
16
27
|
export type RadioShowMediaId = RadioShowMedia[RadioShowMediaPk];
|
|
17
|
-
export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "
|
|
28
|
+
export type RadioShowMediaOptionalAttributes = "originalMediaType" | "s3VideoUrl" | "id" | "createDate" | "description" | "cropInstructions" | "deleted" | "sourceS3Key" | "isAppRecorded" | "automatedModerationApproved" | "automatedModerationRejectionMetadata" | "automatedModerationDecidedAt" | "manualModerationApproved" | "manualModerationDecidedAt" | "manualModerationByUserId";
|
|
18
29
|
export type RadioShowMediaCreationAttributes = Optional<RadioShowMediaAttributes, RadioShowMediaOptionalAttributes>;
|
|
19
30
|
|
|
20
31
|
export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMediaCreationAttributes> implements RadioShowMediaAttributes {
|
|
@@ -22,10 +33,25 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
|
|
|
22
33
|
originalMediaType?: number;
|
|
23
34
|
s3VideoUrl?: string;
|
|
24
35
|
s3AudioUrl!: string;
|
|
25
|
-
approved?: boolean;
|
|
26
36
|
id!: string;
|
|
27
37
|
createDate!: Date;
|
|
38
|
+
description?: string;
|
|
39
|
+
cropInstructions?: string;
|
|
40
|
+
deleted?: boolean;
|
|
41
|
+
sourceS3Key?: string;
|
|
42
|
+
isAppRecorded?: boolean;
|
|
43
|
+
automatedModerationApproved?: boolean;
|
|
44
|
+
automatedModerationRejectionMetadata?: object;
|
|
45
|
+
automatedModerationDecidedAt?: Date;
|
|
46
|
+
manualModerationApproved?: boolean;
|
|
47
|
+
manualModerationDecidedAt?: Date;
|
|
48
|
+
manualModerationByUserId?: string;
|
|
28
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>;
|
|
29
55
|
// RadioShowMedia belongsTo RadioShow via radioShowId
|
|
30
56
|
radioShow!: RadioShow;
|
|
31
57
|
getRadioShow!: Sequelize.BelongsToGetAssociationMixin<RadioShow>;
|
|
@@ -58,10 +84,6 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
|
|
|
58
84
|
allowNull: false,
|
|
59
85
|
field: 's3_audio_url'
|
|
60
86
|
},
|
|
61
|
-
approved: {
|
|
62
|
-
type: DataTypes.BOOLEAN,
|
|
63
|
-
allowNull: true
|
|
64
|
-
},
|
|
65
87
|
id: {
|
|
66
88
|
type: DataTypes.UUID,
|
|
67
89
|
allowNull: false,
|
|
@@ -73,6 +95,63 @@ export class RadioShowMedia extends Model<RadioShowMediaAttributes, RadioShowMed
|
|
|
73
95
|
allowNull: false,
|
|
74
96
|
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
75
97
|
field: 'create_date'
|
|
98
|
+
},
|
|
99
|
+
description: {
|
|
100
|
+
type: DataTypes.TEXT,
|
|
101
|
+
allowNull: true
|
|
102
|
+
},
|
|
103
|
+
cropInstructions: {
|
|
104
|
+
type: DataTypes.TEXT,
|
|
105
|
+
allowNull: true,
|
|
106
|
+
field: 'crop_instructions'
|
|
107
|
+
},
|
|
108
|
+
deleted: {
|
|
109
|
+
type: DataTypes.BOOLEAN,
|
|
110
|
+
allowNull: true
|
|
111
|
+
},
|
|
112
|
+
sourceS3Key: {
|
|
113
|
+
type: DataTypes.TEXT,
|
|
114
|
+
allowNull: true,
|
|
115
|
+
field: 'source_s3_key'
|
|
116
|
+
},
|
|
117
|
+
isAppRecorded: {
|
|
118
|
+
type: DataTypes.BOOLEAN,
|
|
119
|
+
allowNull: true,
|
|
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'
|
|
76
155
|
}
|
|
77
156
|
}, {
|
|
78
157
|
sequelize,
|
|
@@ -11,11 +11,12 @@ export interface RadioShowPlacementAttributes {
|
|
|
11
11
|
startTime?: string;
|
|
12
12
|
endTime?: string;
|
|
13
13
|
id: string;
|
|
14
|
+
deleted?: boolean;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
export type RadioShowPlacementPk = "id";
|
|
17
18
|
export type RadioShowPlacementId = RadioShowPlacement[RadioShowPlacementPk];
|
|
18
|
-
export type RadioShowPlacementOptionalAttributes = "canonTrackId" | "radioShowMediaId" | "startTime" | "endTime" | "id";
|
|
19
|
+
export type RadioShowPlacementOptionalAttributes = "canonTrackId" | "radioShowMediaId" | "startTime" | "endTime" | "id" | "deleted";
|
|
19
20
|
export type RadioShowPlacementCreationAttributes = Optional<RadioShowPlacementAttributes, RadioShowPlacementOptionalAttributes>;
|
|
20
21
|
|
|
21
22
|
export class RadioShowPlacement extends Model<RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes> implements RadioShowPlacementAttributes {
|
|
@@ -26,6 +27,7 @@ export class RadioShowPlacement extends Model<RadioShowPlacementAttributes, Radi
|
|
|
26
27
|
startTime?: string;
|
|
27
28
|
endTime?: string;
|
|
28
29
|
id!: string;
|
|
30
|
+
deleted?: boolean;
|
|
29
31
|
|
|
30
32
|
// RadioShowPlacement belongsTo CanonTrack via canonTrackId
|
|
31
33
|
canonTrack!: CanonTrack;
|
|
@@ -83,6 +85,10 @@ export class RadioShowPlacement extends Model<RadioShowPlacementAttributes, Radi
|
|
|
83
85
|
allowNull: false,
|
|
84
86
|
defaultValue: DataTypes.UUIDV4,
|
|
85
87
|
primaryKey: true
|
|
88
|
+
},
|
|
89
|
+
deleted: {
|
|
90
|
+
type: DataTypes.BOOLEAN,
|
|
91
|
+
allowNull: true
|
|
86
92
|
}
|
|
87
93
|
}, {
|
|
88
94
|
sequelize,
|
package/models/init-models.ts
CHANGED
|
@@ -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"});
|