@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 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,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" | "approved" | "id" | "createDate";
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>;
@@ -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>;
@@ -48,6 +48,10 @@ class RadioShowPlacement extends sequelize_1.Model {
48
48
  allowNull: false,
49
49
  defaultValue: sequelize_1.DataTypes.UUIDV4,
50
50
  primaryKey: true
51
+ },
52
+ deleted: {
53
+ type: sequelize_1.DataTypes.BOOLEAN,
54
+ allowNull: true
51
55
  }
52
56
  }, {
53
57
  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,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" | "approved" | "id" | "createDate";
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,
@@ -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.32",
3
+ "version": "0.0.34",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {