@earbug/db-models 0.0.14 → 0.0.16

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.
@@ -0,0 +1,108 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+
6
+ export interface GuestUserAttributes {
7
+ firstName: string;
8
+ lastName?: string;
9
+ jukeboxSessionId: string;
10
+ ipAddress?: string;
11
+ id: string;
12
+ createDate: Date;
13
+ updateDate: Date;
14
+ }
15
+
16
+ export type GuestUserPk = "id";
17
+ export type GuestUserId = GuestUser[GuestUserPk];
18
+ export type GuestUserOptionalAttributes = "lastName" | "ipAddress" | "id" | "createDate" | "updateDate";
19
+ export type GuestUserCreationAttributes = Optional<GuestUserAttributes, GuestUserOptionalAttributes>;
20
+
21
+ export class GuestUser extends Model<GuestUserAttributes, GuestUserCreationAttributes> implements GuestUserAttributes {
22
+ firstName!: string;
23
+ lastName?: string;
24
+ jukeboxSessionId!: string;
25
+ ipAddress?: string;
26
+ id!: string;
27
+ createDate!: Date;
28
+ updateDate!: Date;
29
+
30
+ // GuestUser hasMany JukeboxQueueEntry via trackAddedGuestUserId
31
+ jukeboxQueueEntries!: JukeboxQueueEntry[];
32
+ getJukeboxQueueEntries!: Sequelize.HasManyGetAssociationsMixin<JukeboxQueueEntry>;
33
+ setJukeboxQueueEntries!: Sequelize.HasManySetAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
34
+ addJukeboxQueueEntry!: Sequelize.HasManyAddAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
35
+ addJukeboxQueueEntries!: Sequelize.HasManyAddAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
36
+ createJukeboxQueueEntry!: Sequelize.HasManyCreateAssociationMixin<JukeboxQueueEntry>;
37
+ removeJukeboxQueueEntry!: Sequelize.HasManyRemoveAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
38
+ removeJukeboxQueueEntries!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
39
+ hasJukeboxQueueEntry!: Sequelize.HasManyHasAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
40
+ hasJukeboxQueueEntries!: Sequelize.HasManyHasAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
41
+ countJukeboxQueueEntries!: Sequelize.HasManyCountAssociationsMixin;
42
+ // GuestUser belongsTo JukeboxSession via jukeboxSessionId
43
+ jukeboxSession!: JukeboxSession;
44
+ getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
45
+ setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
46
+ createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
47
+
48
+ static initModel(sequelize: Sequelize.Sequelize): typeof GuestUser {
49
+ return GuestUser.init({
50
+ firstName: {
51
+ type: DataTypes.TEXT,
52
+ allowNull: false,
53
+ field: 'first_name'
54
+ },
55
+ lastName: {
56
+ type: DataTypes.TEXT,
57
+ allowNull: true,
58
+ field: 'last_name'
59
+ },
60
+ jukeboxSessionId: {
61
+ type: DataTypes.UUID,
62
+ allowNull: false,
63
+ references: {
64
+ model: 'jukebox_session',
65
+ key: 'id'
66
+ },
67
+ field: 'jukebox_session_id'
68
+ },
69
+ ipAddress: {
70
+ type: DataTypes.TEXT,
71
+ allowNull: true,
72
+ field: 'ip_address'
73
+ },
74
+ id: {
75
+ type: DataTypes.UUID,
76
+ allowNull: false,
77
+ defaultValue: DataTypes.UUIDV4,
78
+ primaryKey: true
79
+ },
80
+ createDate: {
81
+ type: DataTypes.DATE,
82
+ allowNull: false,
83
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
84
+ field: 'create_date'
85
+ },
86
+ updateDate: {
87
+ type: DataTypes.DATE,
88
+ allowNull: false,
89
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
90
+ field: 'update_date'
91
+ }
92
+ }, {
93
+ sequelize,
94
+ tableName: 'guest_user',
95
+ schema: 'eb',
96
+ timestamps: false,
97
+ indexes: [
98
+ {
99
+ name: "guest_user_pkey",
100
+ unique: true,
101
+ fields: [
102
+ { name: "id" },
103
+ ]
104
+ },
105
+ ]
106
+ });
107
+ }
108
+ }
@@ -2,16 +2,16 @@ import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
3
  import type { AppUser, AppUserId } from './AppUser';
4
4
  import type { CanonTrack, CanonTrackId } from './CanonTrack';
5
+ import type { GuestUser, GuestUserId } from './GuestUser';
5
6
  import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
6
7
  import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
8
+ import type { PlatformTrack, PlatformTrackId } from './PlatformTrack';
7
9
  import type { PlaybackStatusType, PlaybackStatusTypeId } from './PlaybackStatusType';
8
10
  import type { TrackDeletionReason, TrackDeletionReasonId } from './TrackDeletionReason';
9
11
 
10
12
  export interface JukeboxQueueEntryAttributes {
11
13
  jukeboxSessionId: string;
12
- trackId: string;
13
14
  playbackPriority?: number;
14
- trackAddedUserId: string;
15
15
  playbackStarted?: Date;
16
16
  id: string;
17
17
  createdAt: Date;
@@ -19,20 +19,22 @@ export interface JukeboxQueueEntryAttributes {
19
19
  setOrder: number;
20
20
  trackDeletionReasonId: number;
21
21
  playbackStatusTypeId: number;
22
+ trackId?: string;
23
+ trackAddedUserId?: string;
22
24
  trackThumbsUp?: string[];
23
25
  trackThumbsDown?: string[];
26
+ platformTrackId?: string;
27
+ trackAddedGuestUserId?: string;
24
28
  }
25
29
 
26
30
  export type JukeboxQueueEntryPk = "id";
27
31
  export type JukeboxQueueEntryId = JukeboxQueueEntry[JukeboxQueueEntryPk];
28
- export type JukeboxQueueEntryOptionalAttributes = "playbackPriority" | "playbackStarted" | "id" | "createdAt" | "updatedAt" | "setOrder" | "trackDeletionReasonId" | "playbackStatusTypeId" | "trackThumbsUp" | "trackThumbsDown";
32
+ export type JukeboxQueueEntryOptionalAttributes = "playbackPriority" | "playbackStarted" | "id" | "createdAt" | "updatedAt" | "setOrder" | "trackDeletionReasonId" | "playbackStatusTypeId" | "trackId" | "trackAddedUserId" | "trackThumbsUp" | "trackThumbsDown" | "platformTrackId" | "trackAddedGuestUserId";
29
33
  export type JukeboxQueueEntryCreationAttributes = Optional<JukeboxQueueEntryAttributes, JukeboxQueueEntryOptionalAttributes>;
30
34
 
31
35
  export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes> implements JukeboxQueueEntryAttributes {
32
36
  jukeboxSessionId!: string;
33
- trackId!: string;
34
37
  playbackPriority?: number;
35
- trackAddedUserId!: string;
36
38
  playbackStarted?: Date;
37
39
  id!: string;
38
40
  createdAt!: Date;
@@ -40,8 +42,12 @@ export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, Jukebo
40
42
  setOrder!: number;
41
43
  trackDeletionReasonId!: number;
42
44
  playbackStatusTypeId!: number;
45
+ trackId?: string;
46
+ trackAddedUserId?: string;
43
47
  trackThumbsUp?: string[];
44
48
  trackThumbsDown?: string[];
49
+ platformTrackId?: string;
50
+ trackAddedGuestUserId?: string;
45
51
 
46
52
  // JukeboxQueueEntry belongsTo AppUser via trackAddedUserId
47
53
  trackAddedUser!: AppUser;
@@ -53,6 +59,11 @@ export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, Jukebo
53
59
  getTrack!: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
54
60
  setTrack!: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
55
61
  createTrack!: Sequelize.BelongsToCreateAssociationMixin<CanonTrack>;
62
+ // JukeboxQueueEntry belongsTo GuestUser via trackAddedGuestUserId
63
+ trackAddedGuestUser!: GuestUser;
64
+ getTrackAddedGuestUser!: Sequelize.BelongsToGetAssociationMixin<GuestUser>;
65
+ setTrackAddedGuestUser!: Sequelize.BelongsToSetAssociationMixin<GuestUser, GuestUserId>;
66
+ createTrackAddedGuestUser!: Sequelize.BelongsToCreateAssociationMixin<GuestUser>;
56
67
  // JukeboxQueueEntry hasMany JukeboxUser via pausedQueueEntryId
57
68
  jukeboxUsers!: JukeboxUser[];
58
69
  getJukeboxUsers!: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
@@ -70,6 +81,11 @@ export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, Jukebo
70
81
  getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
71
82
  setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
72
83
  createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
84
+ // JukeboxQueueEntry belongsTo PlatformTrack via platformTrackId
85
+ platformTrack!: PlatformTrack;
86
+ getPlatformTrack!: Sequelize.BelongsToGetAssociationMixin<PlatformTrack>;
87
+ setPlatformTrack!: Sequelize.BelongsToSetAssociationMixin<PlatformTrack, PlatformTrackId>;
88
+ createPlatformTrack!: Sequelize.BelongsToCreateAssociationMixin<PlatformTrack>;
73
89
  // JukeboxQueueEntry belongsTo PlaybackStatusType via playbackStatusTypeId
74
90
  playbackStatusType!: PlaybackStatusType;
75
91
  getPlaybackStatusType!: Sequelize.BelongsToGetAssociationMixin<PlaybackStatusType>;
@@ -92,29 +108,11 @@ export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, Jukebo
92
108
  },
93
109
  field: 'jukebox_session_id'
94
110
  },
95
- trackId: {
96
- type: DataTypes.UUID,
97
- allowNull: false,
98
- references: {
99
- model: 'canon_track',
100
- key: 'id'
101
- },
102
- field: 'track_id'
103
- },
104
111
  playbackPriority: {
105
112
  type: DataTypes.DECIMAL,
106
113
  allowNull: true,
107
114
  field: 'playback_priority'
108
115
  },
109
- trackAddedUserId: {
110
- type: DataTypes.UUID,
111
- allowNull: false,
112
- references: {
113
- model: 'app_user',
114
- key: 'id'
115
- },
116
- field: 'track_added_user_id'
117
- },
118
116
  playbackStarted: {
119
117
  type: DataTypes.DATE,
120
118
  allowNull: true,
@@ -164,6 +162,24 @@ export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, Jukebo
164
162
  },
165
163
  field: 'playback_status_type_id'
166
164
  },
165
+ trackId: {
166
+ type: DataTypes.UUID,
167
+ allowNull: true,
168
+ references: {
169
+ model: 'canon_track',
170
+ key: 'id'
171
+ },
172
+ field: 'track_id'
173
+ },
174
+ trackAddedUserId: {
175
+ type: DataTypes.UUID,
176
+ allowNull: true,
177
+ references: {
178
+ model: 'app_user',
179
+ key: 'id'
180
+ },
181
+ field: 'track_added_user_id'
182
+ },
167
183
  trackThumbsUp: {
168
184
  type: DataTypes.ARRAY(DataTypes.UUID),
169
185
  allowNull: true,
@@ -175,6 +191,24 @@ export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, Jukebo
175
191
  allowNull: true,
176
192
  defaultValue: ["ARRAY[]"],
177
193
  field: 'track_thumbs_down'
194
+ },
195
+ platformTrackId: {
196
+ type: DataTypes.UUID,
197
+ allowNull: true,
198
+ references: {
199
+ model: 'platform_track',
200
+ key: 'id'
201
+ },
202
+ field: 'platform_track_id'
203
+ },
204
+ trackAddedGuestUserId: {
205
+ type: DataTypes.UUID,
206
+ allowNull: true,
207
+ references: {
208
+ model: 'guest_user',
209
+ key: 'id'
210
+ },
211
+ field: 'track_added_guest_user_id'
178
212
  }
179
213
  }, {
180
214
  sequelize,
@@ -1,5 +1,6 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { GuestUser, GuestUserId } from './GuestUser';
3
4
  import type { JukeboxAccessType, JukeboxAccessTypeId } from './JukeboxAccessType';
4
5
  import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './JukeboxCanonGenreRelation';
5
6
  import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
@@ -55,6 +56,18 @@ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessi
55
56
  getJukeboxQueueMode!: Sequelize.BelongsToGetAssociationMixin<JukeboxQueueMode>;
56
57
  setJukeboxQueueMode!: Sequelize.BelongsToSetAssociationMixin<JukeboxQueueMode, JukeboxQueueModeId>;
57
58
  createJukeboxQueueMode!: Sequelize.BelongsToCreateAssociationMixin<JukeboxQueueMode>;
59
+ // JukeboxSession hasMany GuestUser via jukeboxSessionId
60
+ guestUsers!: GuestUser[];
61
+ getGuestUsers!: Sequelize.HasManyGetAssociationsMixin<GuestUser>;
62
+ setGuestUsers!: Sequelize.HasManySetAssociationsMixin<GuestUser, GuestUserId>;
63
+ addGuestUser!: Sequelize.HasManyAddAssociationMixin<GuestUser, GuestUserId>;
64
+ addGuestUsers!: Sequelize.HasManyAddAssociationsMixin<GuestUser, GuestUserId>;
65
+ createGuestUser!: Sequelize.HasManyCreateAssociationMixin<GuestUser>;
66
+ removeGuestUser!: Sequelize.HasManyRemoveAssociationMixin<GuestUser, GuestUserId>;
67
+ removeGuestUsers!: Sequelize.HasManyRemoveAssociationsMixin<GuestUser, GuestUserId>;
68
+ hasGuestUser!: Sequelize.HasManyHasAssociationMixin<GuestUser, GuestUserId>;
69
+ hasGuestUsers!: Sequelize.HasManyHasAssociationsMixin<GuestUser, GuestUserId>;
70
+ countGuestUsers!: Sequelize.HasManyCountAssociationsMixin;
58
71
  // JukeboxSession hasMany JukeboxCanonGenreRelation via jukeboxSessionId
59
72
  jukeboxCanonGenreRelations!: JukeboxCanonGenreRelation[];
60
73
  getJukeboxCanonGenreRelations!: Sequelize.HasManyGetAssociationsMixin<JukeboxCanonGenreRelation>;
@@ -0,0 +1,146 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { CanonArtist, CanonArtistId } from './CanonArtist';
4
+ import type { MerchPlatform, MerchPlatformId } from './MerchPlatform';
5
+ import type { MerchType, MerchTypeId } from './MerchType';
6
+
7
+ export interface MerchItemAttributes {
8
+ id: string;
9
+ canonArtistId: string;
10
+ merchTypeId: string;
11
+ merchPlatformId: string;
12
+ merchItemPlatformId: string;
13
+ title: string;
14
+ description: string;
15
+ photo?: string;
16
+ popularity?: number;
17
+ inactive?: boolean;
18
+ createDate: Date;
19
+ updateDate: Date;
20
+ }
21
+
22
+ export type MerchItemPk = "id";
23
+ export type MerchItemId = MerchItem[MerchItemPk];
24
+ export type MerchItemOptionalAttributes = "id" | "photo" | "popularity" | "inactive" | "createDate" | "updateDate";
25
+ export type MerchItemCreationAttributes = Optional<MerchItemAttributes, MerchItemOptionalAttributes>;
26
+
27
+ export class MerchItem extends Model<MerchItemAttributes, MerchItemCreationAttributes> implements MerchItemAttributes {
28
+ id!: string;
29
+ canonArtistId!: string;
30
+ merchTypeId!: string;
31
+ merchPlatformId!: string;
32
+ merchItemPlatformId!: string;
33
+ title!: string;
34
+ description!: string;
35
+ photo?: string;
36
+ popularity?: number;
37
+ inactive?: boolean;
38
+ createDate!: Date;
39
+ updateDate!: Date;
40
+
41
+ // MerchItem belongsTo CanonArtist via canonArtistId
42
+ canonArtist!: CanonArtist;
43
+ getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
44
+ setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
45
+ createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
46
+ // MerchItem belongsTo MerchPlatform via merchPlatformId
47
+ merchPlatform!: MerchPlatform;
48
+ getMerchPlatform!: Sequelize.BelongsToGetAssociationMixin<MerchPlatform>;
49
+ setMerchPlatform!: Sequelize.BelongsToSetAssociationMixin<MerchPlatform, MerchPlatformId>;
50
+ createMerchPlatform!: Sequelize.BelongsToCreateAssociationMixin<MerchPlatform>;
51
+ // MerchItem belongsTo MerchType via merchTypeId
52
+ merchType!: MerchType;
53
+ getMerchType!: Sequelize.BelongsToGetAssociationMixin<MerchType>;
54
+ setMerchType!: Sequelize.BelongsToSetAssociationMixin<MerchType, MerchTypeId>;
55
+ createMerchType!: Sequelize.BelongsToCreateAssociationMixin<MerchType>;
56
+
57
+ static initModel(sequelize: Sequelize.Sequelize): typeof MerchItem {
58
+ return MerchItem.init({
59
+ id: {
60
+ type: DataTypes.UUID,
61
+ allowNull: false,
62
+ defaultValue: DataTypes.UUIDV4,
63
+ primaryKey: true
64
+ },
65
+ canonArtistId: {
66
+ type: DataTypes.UUID,
67
+ allowNull: false,
68
+ references: {
69
+ model: 'canon_artist',
70
+ key: 'id'
71
+ },
72
+ field: 'canon_artist_id'
73
+ },
74
+ merchTypeId: {
75
+ type: DataTypes.UUID,
76
+ allowNull: false,
77
+ references: {
78
+ model: 'merch_type',
79
+ key: 'id'
80
+ },
81
+ field: 'merch_type_id'
82
+ },
83
+ merchPlatformId: {
84
+ type: DataTypes.UUID,
85
+ allowNull: false,
86
+ references: {
87
+ model: 'merch_platform',
88
+ key: 'id'
89
+ },
90
+ field: 'merch_platform_id'
91
+ },
92
+ merchItemPlatformId: {
93
+ type: DataTypes.TEXT,
94
+ allowNull: false,
95
+ field: 'merch_item_platform_id'
96
+ },
97
+ title: {
98
+ type: DataTypes.TEXT,
99
+ allowNull: false
100
+ },
101
+ description: {
102
+ type: DataTypes.TEXT,
103
+ allowNull: false
104
+ },
105
+ photo: {
106
+ type: DataTypes.TEXT,
107
+ allowNull: true
108
+ },
109
+ popularity: {
110
+ type: DataTypes.SMALLINT,
111
+ allowNull: true
112
+ },
113
+ inactive: {
114
+ type: DataTypes.BOOLEAN,
115
+ allowNull: true,
116
+ defaultValue: false
117
+ },
118
+ createDate: {
119
+ type: DataTypes.DATE,
120
+ allowNull: false,
121
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
122
+ field: 'create_date'
123
+ },
124
+ updateDate: {
125
+ type: DataTypes.DATE,
126
+ allowNull: false,
127
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
128
+ field: 'update_date'
129
+ }
130
+ }, {
131
+ sequelize,
132
+ tableName: 'merch_item',
133
+ schema: 'eb',
134
+ timestamps: false,
135
+ indexes: [
136
+ {
137
+ name: "merch_item_pkey",
138
+ unique: true,
139
+ fields: [
140
+ { name: "id" },
141
+ ]
142
+ },
143
+ ]
144
+ });
145
+ }
146
+ }
@@ -0,0 +1,122 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { CanonArtist, CanonArtistId } from './CanonArtist';
4
+ import type { MerchPlatform, MerchPlatformId } from './MerchPlatform';
5
+ import type { MerchType, MerchTypeId } from './MerchType';
6
+
7
+ export interface MerchOrchestrationAttributes {
8
+ id: string;
9
+ canonArtistId: string;
10
+ merchTypeId: string;
11
+ merchPlatformId: string;
12
+ errorMessage?: string;
13
+ lastHarvestDate?: Date;
14
+ createDate: Date;
15
+ updateDate: Date;
16
+ }
17
+
18
+ export type MerchOrchestrationPk = "id";
19
+ export type MerchOrchestrationId = MerchOrchestration[MerchOrchestrationPk];
20
+ export type MerchOrchestrationOptionalAttributes = "id" | "errorMessage" | "lastHarvestDate" | "createDate" | "updateDate";
21
+ export type MerchOrchestrationCreationAttributes = Optional<MerchOrchestrationAttributes, MerchOrchestrationOptionalAttributes>;
22
+
23
+ export class MerchOrchestration extends Model<MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes> implements MerchOrchestrationAttributes {
24
+ id!: string;
25
+ canonArtistId!: string;
26
+ merchTypeId!: string;
27
+ merchPlatformId!: string;
28
+ errorMessage?: string;
29
+ lastHarvestDate?: Date;
30
+ createDate!: Date;
31
+ updateDate!: Date;
32
+
33
+ // MerchOrchestration belongsTo CanonArtist via canonArtistId
34
+ canonArtist!: CanonArtist;
35
+ getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
36
+ setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
37
+ createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
38
+ // MerchOrchestration belongsTo MerchPlatform via merchPlatformId
39
+ merchPlatform!: MerchPlatform;
40
+ getMerchPlatform!: Sequelize.BelongsToGetAssociationMixin<MerchPlatform>;
41
+ setMerchPlatform!: Sequelize.BelongsToSetAssociationMixin<MerchPlatform, MerchPlatformId>;
42
+ createMerchPlatform!: Sequelize.BelongsToCreateAssociationMixin<MerchPlatform>;
43
+ // MerchOrchestration belongsTo MerchType via merchTypeId
44
+ merchType!: MerchType;
45
+ getMerchType!: Sequelize.BelongsToGetAssociationMixin<MerchType>;
46
+ setMerchType!: Sequelize.BelongsToSetAssociationMixin<MerchType, MerchTypeId>;
47
+ createMerchType!: Sequelize.BelongsToCreateAssociationMixin<MerchType>;
48
+
49
+ static initModel(sequelize: Sequelize.Sequelize): typeof MerchOrchestration {
50
+ return MerchOrchestration.init({
51
+ id: {
52
+ type: DataTypes.UUID,
53
+ allowNull: false,
54
+ defaultValue: DataTypes.UUIDV4,
55
+ primaryKey: true
56
+ },
57
+ canonArtistId: {
58
+ type: DataTypes.UUID,
59
+ allowNull: false,
60
+ references: {
61
+ model: 'canon_artist',
62
+ key: 'id'
63
+ },
64
+ field: 'canon_artist_id'
65
+ },
66
+ merchTypeId: {
67
+ type: DataTypes.UUID,
68
+ allowNull: false,
69
+ references: {
70
+ model: 'merch_type',
71
+ key: 'id'
72
+ },
73
+ field: 'merch_type_id'
74
+ },
75
+ merchPlatformId: {
76
+ type: DataTypes.UUID,
77
+ allowNull: false,
78
+ references: {
79
+ model: 'merch_platform',
80
+ key: 'id'
81
+ },
82
+ field: 'merch_platform_id'
83
+ },
84
+ errorMessage: {
85
+ type: DataTypes.TEXT,
86
+ allowNull: true,
87
+ field: 'error_message'
88
+ },
89
+ lastHarvestDate: {
90
+ type: DataTypes.DATE,
91
+ allowNull: true,
92
+ field: 'last_harvest_date'
93
+ },
94
+ createDate: {
95
+ type: DataTypes.DATE,
96
+ allowNull: false,
97
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
98
+ field: 'create_date'
99
+ },
100
+ updateDate: {
101
+ type: DataTypes.DATE,
102
+ allowNull: false,
103
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
104
+ field: 'update_date'
105
+ }
106
+ }, {
107
+ sequelize,
108
+ tableName: 'merch_orchestration',
109
+ schema: 'eb',
110
+ timestamps: false,
111
+ indexes: [
112
+ {
113
+ name: "merch_orchestration_pkey",
114
+ unique: true,
115
+ fields: [
116
+ { name: "id" },
117
+ ]
118
+ },
119
+ ]
120
+ });
121
+ }
122
+ }
@@ -0,0 +1,95 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { MerchItem, MerchItemId } from './MerchItem';
4
+ import type { MerchOrchestration, MerchOrchestrationId } from './MerchOrchestration';
5
+
6
+ export interface MerchPlatformAttributes {
7
+ id: string;
8
+ name: string;
9
+ host: string;
10
+ createDate: Date;
11
+ updateDate: Date;
12
+ }
13
+
14
+ export type MerchPlatformPk = "id";
15
+ export type MerchPlatformId = MerchPlatform[MerchPlatformPk];
16
+ export type MerchPlatformOptionalAttributes = "id" | "createDate" | "updateDate";
17
+ export type MerchPlatformCreationAttributes = Optional<MerchPlatformAttributes, MerchPlatformOptionalAttributes>;
18
+
19
+ export class MerchPlatform extends Model<MerchPlatformAttributes, MerchPlatformCreationAttributes> implements MerchPlatformAttributes {
20
+ id!: string;
21
+ name!: string;
22
+ host!: string;
23
+ createDate!: Date;
24
+ updateDate!: Date;
25
+
26
+ // MerchPlatform hasMany MerchItem via merchPlatformId
27
+ merchItems!: MerchItem[];
28
+ getMerchItems!: Sequelize.HasManyGetAssociationsMixin<MerchItem>;
29
+ setMerchItems!: Sequelize.HasManySetAssociationsMixin<MerchItem, MerchItemId>;
30
+ addMerchItem!: Sequelize.HasManyAddAssociationMixin<MerchItem, MerchItemId>;
31
+ addMerchItems!: Sequelize.HasManyAddAssociationsMixin<MerchItem, MerchItemId>;
32
+ createMerchItem!: Sequelize.HasManyCreateAssociationMixin<MerchItem>;
33
+ removeMerchItem!: Sequelize.HasManyRemoveAssociationMixin<MerchItem, MerchItemId>;
34
+ removeMerchItems!: Sequelize.HasManyRemoveAssociationsMixin<MerchItem, MerchItemId>;
35
+ hasMerchItem!: Sequelize.HasManyHasAssociationMixin<MerchItem, MerchItemId>;
36
+ hasMerchItems!: Sequelize.HasManyHasAssociationsMixin<MerchItem, MerchItemId>;
37
+ countMerchItems!: Sequelize.HasManyCountAssociationsMixin;
38
+ // MerchPlatform hasMany MerchOrchestration via merchPlatformId
39
+ merchOrchestrations!: MerchOrchestration[];
40
+ getMerchOrchestrations!: Sequelize.HasManyGetAssociationsMixin<MerchOrchestration>;
41
+ setMerchOrchestrations!: Sequelize.HasManySetAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
42
+ addMerchOrchestration!: Sequelize.HasManyAddAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
43
+ addMerchOrchestrations!: Sequelize.HasManyAddAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
44
+ createMerchOrchestration!: Sequelize.HasManyCreateAssociationMixin<MerchOrchestration>;
45
+ removeMerchOrchestration!: Sequelize.HasManyRemoveAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
46
+ removeMerchOrchestrations!: Sequelize.HasManyRemoveAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
47
+ hasMerchOrchestration!: Sequelize.HasManyHasAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
48
+ hasMerchOrchestrations!: Sequelize.HasManyHasAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
49
+ countMerchOrchestrations!: Sequelize.HasManyCountAssociationsMixin;
50
+
51
+ static initModel(sequelize: Sequelize.Sequelize): typeof MerchPlatform {
52
+ return MerchPlatform.init({
53
+ id: {
54
+ type: DataTypes.UUID,
55
+ allowNull: false,
56
+ defaultValue: DataTypes.UUIDV4,
57
+ primaryKey: true
58
+ },
59
+ name: {
60
+ type: DataTypes.TEXT,
61
+ allowNull: false
62
+ },
63
+ host: {
64
+ type: DataTypes.TEXT,
65
+ allowNull: false
66
+ },
67
+ createDate: {
68
+ type: DataTypes.DATE,
69
+ allowNull: false,
70
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
71
+ field: 'create_date'
72
+ },
73
+ updateDate: {
74
+ type: DataTypes.DATE,
75
+ allowNull: false,
76
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
77
+ field: 'update_date'
78
+ }
79
+ }, {
80
+ sequelize,
81
+ tableName: 'merch_platform',
82
+ schema: 'eb',
83
+ timestamps: false,
84
+ indexes: [
85
+ {
86
+ name: "merch_platform_pkey",
87
+ unique: true,
88
+ fields: [
89
+ { name: "id" },
90
+ ]
91
+ },
92
+ ]
93
+ });
94
+ }
95
+ }