@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.
@@ -1,43 +1,52 @@
1
- import * as Sequelize from 'sequelize';
2
- import { Model, Optional } from 'sequelize';
3
- import type { CanonArtistAlbumRelation, CanonArtistAlbumRelationId } from './CanonArtistAlbumRelation';
4
- import type { CanonArtistImageHarvested, CanonArtistImageHarvestedId } from './CanonArtistImageHarvested';
5
- import type { CanonArtistTrackRelation, CanonArtistTrackRelationId } from './CanonArtistTrackRelation';
6
- import type { CanonToPlatformArtistRelation, CanonToPlatformArtistRelationId } from './CanonToPlatformArtistRelation';
7
- import type { CanonTrack, CanonTrackId } from './CanonTrack';
8
- import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
9
- import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
1
+ import * as Sequelize from "sequelize";
2
+ import { Model, Optional } from "sequelize";
3
+ import type { CanonArtistAlbumRelation, CanonArtistAlbumRelationId } from "./CanonArtistAlbumRelation";
4
+ import type { CanonArtistImageHarvested, CanonArtistImageHarvestedId } from "./CanonArtistImageHarvested";
5
+ import type { CanonArtistTrackRelation, CanonArtistTrackRelationId } from "./CanonArtistTrackRelation";
6
+ import type { CanonToPlatformArtistRelation, CanonToPlatformArtistRelationId } from "./CanonToPlatformArtistRelation";
7
+ import type { CanonTrack, CanonTrackId } from "./CanonTrack";
8
+ import type { MerchItem, MerchItemId } from "./MerchItem";
9
+ import type { MerchOrchestration, MerchOrchestrationId } from "./MerchOrchestration";
10
+ import type { NewsArticle, NewsArticleId } from "./NewsArticle";
11
+ import type { PlatformAlbum, PlatformAlbumId } from "./PlatformAlbum";
12
+ import type { PlatformArtist, PlatformArtistId } from "./PlatformArtist";
10
13
  export interface CanonArtistAttributes {
14
+ id: string;
11
15
  name: string;
12
16
  asciiName: string;
13
17
  description?: string;
14
- id: string;
15
18
  hasPhoto: boolean;
16
19
  createDate: Date;
17
20
  updateDate: Date;
18
21
  hasThumbnailPhoto?: boolean;
19
22
  images?: object;
20
23
  lastImageHarvestAttempt?: Date;
24
+ lastGenreHarvestAttempt?: Date;
25
+ genreHarvestCount: number;
21
26
  merchHarvestDay?: number;
22
27
  newsHarvestDay?: number;
28
+ harvestPopularity?: number;
23
29
  }
24
30
  export type CanonArtistPk = "id";
25
31
  export type CanonArtistId = CanonArtist[CanonArtistPk];
26
- export type CanonArtistOptionalAttributes = "description" | "id" | "createDate" | "updateDate" | "hasThumbnailPhoto" | "images" | "lastImageHarvestAttempt" | "merchHarvestDay" | "newsHarvestDay";
32
+ export type CanonArtistOptionalAttributes = "id" | "description" | "createDate" | "updateDate" | "hasThumbnailPhoto" | "images" | "lastImageHarvestAttempt" | "lastGenreHarvestAttempt" | "genreHarvestCount" | "merchHarvestDay" | "newsHarvestDay" | "harvestPopularity";
27
33
  export type CanonArtistCreationAttributes = Optional<CanonArtistAttributes, CanonArtistOptionalAttributes>;
28
34
  export declare class CanonArtist extends Model<CanonArtistAttributes, CanonArtistCreationAttributes> implements CanonArtistAttributes {
29
- name: string;
30
- asciiName: string;
31
- description?: string;
32
35
  id: string;
36
+ name: any;
37
+ asciiName: any;
38
+ description?: any;
33
39
  hasPhoto: boolean;
34
40
  createDate: Date;
35
41
  updateDate: Date;
36
42
  hasThumbnailPhoto?: boolean;
37
43
  images?: object;
38
44
  lastImageHarvestAttempt?: Date;
45
+ lastGenreHarvestAttempt?: Date;
46
+ genreHarvestCount: number;
39
47
  merchHarvestDay?: number;
40
48
  newsHarvestDay?: number;
49
+ harvestPopularity?: number;
41
50
  canonArtistAlbumRelations: CanonArtistAlbumRelation[];
42
51
  getCanonArtistAlbumRelations: Sequelize.HasManyGetAssociationsMixin<CanonArtistAlbumRelation>;
43
52
  setCanonArtistAlbumRelations: Sequelize.HasManySetAssociationsMixin<CanonArtistAlbumRelation, CanonArtistAlbumRelationId>;
@@ -93,6 +102,39 @@ export declare class CanonArtist extends Model<CanonArtistAttributes, CanonArtis
93
102
  hasCanonTrackIdCanonTrackCanonArtistTrackRelation: Sequelize.BelongsToManyHasAssociationMixin<CanonTrack, CanonTrackId>;
94
103
  hasCanonTrackIdCanonTrackCanonArtistTrackRelations: Sequelize.BelongsToManyHasAssociationsMixin<CanonTrack, CanonTrackId>;
95
104
  countCanonTrackIdCanonTrackCanonArtistTrackRelations: Sequelize.BelongsToManyCountAssociationsMixin;
105
+ merchItems: MerchItem[];
106
+ getMerchItems: Sequelize.HasManyGetAssociationsMixin<MerchItem>;
107
+ setMerchItems: Sequelize.HasManySetAssociationsMixin<MerchItem, MerchItemId>;
108
+ addMerchItem: Sequelize.HasManyAddAssociationMixin<MerchItem, MerchItemId>;
109
+ addMerchItems: Sequelize.HasManyAddAssociationsMixin<MerchItem, MerchItemId>;
110
+ createMerchItem: Sequelize.HasManyCreateAssociationMixin<MerchItem>;
111
+ removeMerchItem: Sequelize.HasManyRemoveAssociationMixin<MerchItem, MerchItemId>;
112
+ removeMerchItems: Sequelize.HasManyRemoveAssociationsMixin<MerchItem, MerchItemId>;
113
+ hasMerchItem: Sequelize.HasManyHasAssociationMixin<MerchItem, MerchItemId>;
114
+ hasMerchItems: Sequelize.HasManyHasAssociationsMixin<MerchItem, MerchItemId>;
115
+ countMerchItems: Sequelize.HasManyCountAssociationsMixin;
116
+ merchOrchestrations: MerchOrchestration[];
117
+ getMerchOrchestrations: Sequelize.HasManyGetAssociationsMixin<MerchOrchestration>;
118
+ setMerchOrchestrations: Sequelize.HasManySetAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
119
+ addMerchOrchestration: Sequelize.HasManyAddAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
120
+ addMerchOrchestrations: Sequelize.HasManyAddAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
121
+ createMerchOrchestration: Sequelize.HasManyCreateAssociationMixin<MerchOrchestration>;
122
+ removeMerchOrchestration: Sequelize.HasManyRemoveAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
123
+ removeMerchOrchestrations: Sequelize.HasManyRemoveAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
124
+ hasMerchOrchestration: Sequelize.HasManyHasAssociationMixin<MerchOrchestration, MerchOrchestrationId>;
125
+ hasMerchOrchestrations: Sequelize.HasManyHasAssociationsMixin<MerchOrchestration, MerchOrchestrationId>;
126
+ countMerchOrchestrations: Sequelize.HasManyCountAssociationsMixin;
127
+ newsArticles: NewsArticle[];
128
+ getNewsArticles: Sequelize.HasManyGetAssociationsMixin<NewsArticle>;
129
+ setNewsArticles: Sequelize.HasManySetAssociationsMixin<NewsArticle, NewsArticleId>;
130
+ addNewsArticle: Sequelize.HasManyAddAssociationMixin<NewsArticle, NewsArticleId>;
131
+ addNewsArticles: Sequelize.HasManyAddAssociationsMixin<NewsArticle, NewsArticleId>;
132
+ createNewsArticle: Sequelize.HasManyCreateAssociationMixin<NewsArticle>;
133
+ removeNewsArticle: Sequelize.HasManyRemoveAssociationMixin<NewsArticle, NewsArticleId>;
134
+ removeNewsArticles: Sequelize.HasManyRemoveAssociationsMixin<NewsArticle, NewsArticleId>;
135
+ hasNewsArticle: Sequelize.HasManyHasAssociationMixin<NewsArticle, NewsArticleId>;
136
+ hasNewsArticles: Sequelize.HasManyHasAssociationsMixin<NewsArticle, NewsArticleId>;
137
+ countNewsArticles: Sequelize.HasManyCountAssociationsMixin;
96
138
  canonAlbumIdPlatformAlbumCanonArtistAlbumRelations: PlatformAlbum[];
97
139
  getCanonAlbumIdPlatformAlbumCanonArtistAlbumRelations: Sequelize.BelongsToManyGetAssociationsMixin<PlatformAlbum>;
98
140
  setCanonAlbumIdPlatformAlbumCanonArtistAlbumRelations: Sequelize.BelongsToManySetAssociationsMixin<PlatformAlbum, PlatformAlbumId>;
@@ -31,93 +31,98 @@ class CanonArtist extends sequelize_1.Model {
31
31
  return CanonArtist.init({
32
32
  name: {
33
33
  type: sequelize_1.DataTypes.TEXT,
34
- allowNull: false
34
+ allowNull: false,
35
35
  },
36
36
  asciiName: {
37
37
  type: sequelize_1.DataTypes.TEXT,
38
38
  allowNull: false,
39
- field: 'ascii_name'
39
+ field: "ascii_name",
40
40
  },
41
41
  description: {
42
42
  type: sequelize_1.DataTypes.TEXT,
43
- allowNull: true
43
+ allowNull: true,
44
44
  },
45
45
  id: {
46
46
  type: sequelize_1.DataTypes.UUID,
47
47
  allowNull: false,
48
- defaultValue: Sequelize.Sequelize.fn('uuid_generate_v1'),
49
- primaryKey: true
48
+ defaultValue: Sequelize.Sequelize.fn("uuid_generate_v1"),
49
+ primaryKey: true,
50
50
  },
51
51
  hasPhoto: {
52
52
  type: sequelize_1.DataTypes.BOOLEAN,
53
53
  allowNull: false,
54
54
  defaultValue: false,
55
- field: 'has_photo'
55
+ field: "has_photo",
56
56
  },
57
57
  createDate: {
58
58
  type: sequelize_1.DataTypes.DATE,
59
59
  allowNull: false,
60
- defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
61
- field: 'create_date'
60
+ defaultValue: Sequelize.Sequelize.literal("CURRENT_TIMESTAMP"),
61
+ field: "create_date",
62
62
  },
63
63
  updateDate: {
64
64
  type: sequelize_1.DataTypes.DATE,
65
65
  allowNull: false,
66
- defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
67
- field: 'update_date'
66
+ defaultValue: Sequelize.Sequelize.literal("CURRENT_TIMESTAMP"),
67
+ field: "update_date",
68
68
  },
69
69
  hasThumbnailPhoto: {
70
70
  type: sequelize_1.DataTypes.BOOLEAN,
71
71
  allowNull: true,
72
72
  defaultValue: false,
73
- field: 'has_thumbnail_photo'
73
+ field: "has_thumbnail_photo",
74
74
  },
75
75
  images: {
76
76
  type: sequelize_1.DataTypes.JSONB,
77
- allowNull: true
77
+ allowNull: true,
78
78
  },
79
79
  lastImageHarvestAttempt: {
80
80
  type: sequelize_1.DataTypes.DATE,
81
81
  allowNull: true,
82
- field: 'last_image_harvest_attempt'
82
+ field: "last_image_harvest_attempt",
83
+ },
84
+ lastGenreHarvestAttempt: {
85
+ type: sequelize_1.DataTypes.DATE,
86
+ allowNull: true,
87
+ field: "last_genre_harvest_attempt",
88
+ },
89
+ genreHarvestCount: {
90
+ type: sequelize_1.DataTypes.INTEGER,
91
+ allowNull: false,
92
+ defaultValue: 0,
93
+ field: "genre_harvest_count",
83
94
  },
84
95
  merchHarvestDay: {
85
- type: sequelize_1.DataTypes.NUMBER,
96
+ type: sequelize_1.DataTypes.SMALLINT,
86
97
  allowNull: true,
87
- field: 'merch_harvest_day'
98
+ field: "merch_harvest_day",
88
99
  },
89
100
  newsHarvestDay: {
90
- type: sequelize_1.DataTypes.NUMBER,
101
+ type: sequelize_1.DataTypes.SMALLINT,
91
102
  allowNull: true,
92
- field: 'news_harvest_day'
93
- }
103
+ field: "news_harvest_day",
104
+ },
94
105
  }, {
95
106
  sequelize,
96
- tableName: 'canon_artist',
97
- schema: 'eb',
107
+ tableName: "canon_artist",
108
+ schema: "eb",
98
109
  timestamps: false,
99
110
  indexes: [
100
111
  {
101
112
  name: "artist_name_idx",
102
113
  unique: true,
103
- fields: [
104
- { name: "name" },
105
- ]
114
+ fields: [{ name: "name" }],
106
115
  },
107
116
  {
108
117
  name: "artist_pkey",
109
118
  unique: true,
110
- fields: [
111
- { name: "id" },
112
- ]
119
+ fields: [{ name: "id" }],
113
120
  },
114
121
  {
115
122
  name: "eb_canon_artist_last_image_harvest_attempt",
116
- fields: [
117
- { name: "last_image_harvest_attempt" },
118
- ]
123
+ fields: [{ name: "last_image_harvest_attempt" }],
119
124
  },
120
- ]
125
+ ],
121
126
  });
122
127
  }
123
128
  }
@@ -0,0 +1,42 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model, Optional } from 'sequelize';
3
+ import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+ export interface GuestUserAttributes {
6
+ firstName: string;
7
+ lastName?: string;
8
+ jukeboxSessionId: string;
9
+ ipAddress?: string;
10
+ id: string;
11
+ createDate: Date;
12
+ updateDate: Date;
13
+ }
14
+ export type GuestUserPk = "id";
15
+ export type GuestUserId = GuestUser[GuestUserPk];
16
+ export type GuestUserOptionalAttributes = "lastName" | "ipAddress" | "id" | "createDate" | "updateDate";
17
+ export type GuestUserCreationAttributes = Optional<GuestUserAttributes, GuestUserOptionalAttributes>;
18
+ export declare class GuestUser extends Model<GuestUserAttributes, GuestUserCreationAttributes> implements GuestUserAttributes {
19
+ firstName: string;
20
+ lastName?: string;
21
+ jukeboxSessionId: string;
22
+ ipAddress?: string;
23
+ id: string;
24
+ createDate: Date;
25
+ updateDate: Date;
26
+ jukeboxQueueEntries: JukeboxQueueEntry[];
27
+ getJukeboxQueueEntries: Sequelize.HasManyGetAssociationsMixin<JukeboxQueueEntry>;
28
+ setJukeboxQueueEntries: Sequelize.HasManySetAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
29
+ addJukeboxQueueEntry: Sequelize.HasManyAddAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
30
+ addJukeboxQueueEntries: Sequelize.HasManyAddAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
31
+ createJukeboxQueueEntry: Sequelize.HasManyCreateAssociationMixin<JukeboxQueueEntry>;
32
+ removeJukeboxQueueEntry: Sequelize.HasManyRemoveAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
33
+ removeJukeboxQueueEntries: Sequelize.HasManyRemoveAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
34
+ hasJukeboxQueueEntry: Sequelize.HasManyHasAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
35
+ hasJukeboxQueueEntries: Sequelize.HasManyHasAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
36
+ countJukeboxQueueEntries: Sequelize.HasManyCountAssociationsMixin;
37
+ jukeboxSession: JukeboxSession;
38
+ getJukeboxSession: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
39
+ setJukeboxSession: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
40
+ createJukeboxSession: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
41
+ static initModel(sequelize: Sequelize.Sequelize): typeof GuestUser;
42
+ }
@@ -0,0 +1,91 @@
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.GuestUser = void 0;
27
+ const Sequelize = __importStar(require("sequelize"));
28
+ const sequelize_1 = require("sequelize");
29
+ class GuestUser extends sequelize_1.Model {
30
+ static initModel(sequelize) {
31
+ return GuestUser.init({
32
+ firstName: {
33
+ type: sequelize_1.DataTypes.TEXT,
34
+ allowNull: false,
35
+ field: 'first_name'
36
+ },
37
+ lastName: {
38
+ type: sequelize_1.DataTypes.TEXT,
39
+ allowNull: true,
40
+ field: 'last_name'
41
+ },
42
+ jukeboxSessionId: {
43
+ type: sequelize_1.DataTypes.UUID,
44
+ allowNull: false,
45
+ references: {
46
+ model: 'jukebox_session',
47
+ key: 'id'
48
+ },
49
+ field: 'jukebox_session_id'
50
+ },
51
+ ipAddress: {
52
+ type: sequelize_1.DataTypes.TEXT,
53
+ allowNull: true,
54
+ field: 'ip_address'
55
+ },
56
+ id: {
57
+ type: sequelize_1.DataTypes.UUID,
58
+ allowNull: false,
59
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
60
+ primaryKey: true
61
+ },
62
+ createDate: {
63
+ type: sequelize_1.DataTypes.DATE,
64
+ allowNull: false,
65
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
66
+ field: 'create_date'
67
+ },
68
+ updateDate: {
69
+ type: sequelize_1.DataTypes.DATE,
70
+ allowNull: false,
71
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
72
+ field: 'update_date'
73
+ }
74
+ }, {
75
+ sequelize,
76
+ tableName: 'guest_user',
77
+ schema: 'eb',
78
+ timestamps: false,
79
+ indexes: [
80
+ {
81
+ name: "guest_user_pkey",
82
+ unique: true,
83
+ fields: [
84
+ { name: "id" },
85
+ ]
86
+ },
87
+ ]
88
+ });
89
+ }
90
+ }
91
+ exports.GuestUser = GuestUser;
@@ -2,15 +2,15 @@ import * as Sequelize from 'sequelize';
2
2
  import { 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
  export interface JukeboxQueueEntryAttributes {
10
12
  jukeboxSessionId: string;
11
- trackId: string;
12
13
  playbackPriority?: number;
13
- trackAddedUserId: string;
14
14
  playbackStarted?: Date;
15
15
  id: string;
16
16
  createdAt: Date;
@@ -18,18 +18,20 @@ export interface JukeboxQueueEntryAttributes {
18
18
  setOrder: number;
19
19
  trackDeletionReasonId: number;
20
20
  playbackStatusTypeId: number;
21
+ trackId?: string;
22
+ trackAddedUserId?: string;
21
23
  trackThumbsUp?: string[];
22
24
  trackThumbsDown?: string[];
25
+ platformTrackId?: string;
26
+ trackAddedGuestUserId?: string;
23
27
  }
24
28
  export type JukeboxQueueEntryPk = "id";
25
29
  export type JukeboxQueueEntryId = JukeboxQueueEntry[JukeboxQueueEntryPk];
26
- export type JukeboxQueueEntryOptionalAttributes = "playbackPriority" | "playbackStarted" | "id" | "createdAt" | "updatedAt" | "setOrder" | "trackDeletionReasonId" | "playbackStatusTypeId" | "trackThumbsUp" | "trackThumbsDown";
30
+ export type JukeboxQueueEntryOptionalAttributes = "playbackPriority" | "playbackStarted" | "id" | "createdAt" | "updatedAt" | "setOrder" | "trackDeletionReasonId" | "playbackStatusTypeId" | "trackId" | "trackAddedUserId" | "trackThumbsUp" | "trackThumbsDown" | "platformTrackId" | "trackAddedGuestUserId";
27
31
  export type JukeboxQueueEntryCreationAttributes = Optional<JukeboxQueueEntryAttributes, JukeboxQueueEntryOptionalAttributes>;
28
32
  export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes> implements JukeboxQueueEntryAttributes {
29
33
  jukeboxSessionId: string;
30
- trackId: string;
31
34
  playbackPriority?: number;
32
- trackAddedUserId: string;
33
35
  playbackStarted?: Date;
34
36
  id: string;
35
37
  createdAt: Date;
@@ -37,8 +39,12 @@ export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes
37
39
  setOrder: number;
38
40
  trackDeletionReasonId: number;
39
41
  playbackStatusTypeId: number;
42
+ trackId?: string;
43
+ trackAddedUserId?: string;
40
44
  trackThumbsUp?: string[];
41
45
  trackThumbsDown?: string[];
46
+ platformTrackId?: string;
47
+ trackAddedGuestUserId?: string;
42
48
  trackAddedUser: AppUser;
43
49
  getTrackAddedUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
44
50
  setTrackAddedUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
@@ -47,6 +53,10 @@ export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes
47
53
  getTrack: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
48
54
  setTrack: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
49
55
  createTrack: Sequelize.BelongsToCreateAssociationMixin<CanonTrack>;
56
+ trackAddedGuestUser: GuestUser;
57
+ getTrackAddedGuestUser: Sequelize.BelongsToGetAssociationMixin<GuestUser>;
58
+ setTrackAddedGuestUser: Sequelize.BelongsToSetAssociationMixin<GuestUser, GuestUserId>;
59
+ createTrackAddedGuestUser: Sequelize.BelongsToCreateAssociationMixin<GuestUser>;
50
60
  jukeboxUsers: JukeboxUser[];
51
61
  getJukeboxUsers: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
52
62
  setJukeboxUsers: Sequelize.HasManySetAssociationsMixin<JukeboxUser, JukeboxUserId>;
@@ -62,6 +72,10 @@ export declare class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes
62
72
  getJukeboxSession: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
63
73
  setJukeboxSession: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
64
74
  createJukeboxSession: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
75
+ platformTrack: PlatformTrack;
76
+ getPlatformTrack: Sequelize.BelongsToGetAssociationMixin<PlatformTrack>;
77
+ setPlatformTrack: Sequelize.BelongsToSetAssociationMixin<PlatformTrack, PlatformTrackId>;
78
+ createPlatformTrack: Sequelize.BelongsToCreateAssociationMixin<PlatformTrack>;
65
79
  playbackStatusType: PlaybackStatusType;
66
80
  getPlaybackStatusType: Sequelize.BelongsToGetAssociationMixin<PlaybackStatusType>;
67
81
  setPlaybackStatusType: Sequelize.BelongsToSetAssociationMixin<PlaybackStatusType, PlaybackStatusTypeId>;
@@ -38,29 +38,11 @@ class JukeboxQueueEntry extends sequelize_1.Model {
38
38
  },
39
39
  field: 'jukebox_session_id'
40
40
  },
41
- trackId: {
42
- type: sequelize_1.DataTypes.UUID,
43
- allowNull: false,
44
- references: {
45
- model: 'canon_track',
46
- key: 'id'
47
- },
48
- field: 'track_id'
49
- },
50
41
  playbackPriority: {
51
42
  type: sequelize_1.DataTypes.DECIMAL,
52
43
  allowNull: true,
53
44
  field: 'playback_priority'
54
45
  },
55
- trackAddedUserId: {
56
- type: sequelize_1.DataTypes.UUID,
57
- allowNull: false,
58
- references: {
59
- model: 'app_user',
60
- key: 'id'
61
- },
62
- field: 'track_added_user_id'
63
- },
64
46
  playbackStarted: {
65
47
  type: sequelize_1.DataTypes.DATE,
66
48
  allowNull: true,
@@ -110,6 +92,24 @@ class JukeboxQueueEntry extends sequelize_1.Model {
110
92
  },
111
93
  field: 'playback_status_type_id'
112
94
  },
95
+ trackId: {
96
+ type: sequelize_1.DataTypes.UUID,
97
+ allowNull: true,
98
+ references: {
99
+ model: 'canon_track',
100
+ key: 'id'
101
+ },
102
+ field: 'track_id'
103
+ },
104
+ trackAddedUserId: {
105
+ type: sequelize_1.DataTypes.UUID,
106
+ allowNull: true,
107
+ references: {
108
+ model: 'app_user',
109
+ key: 'id'
110
+ },
111
+ field: 'track_added_user_id'
112
+ },
113
113
  trackThumbsUp: {
114
114
  type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.UUID),
115
115
  allowNull: true,
@@ -121,6 +121,24 @@ class JukeboxQueueEntry extends sequelize_1.Model {
121
121
  allowNull: true,
122
122
  defaultValue: ["ARRAY[]"],
123
123
  field: 'track_thumbs_down'
124
+ },
125
+ platformTrackId: {
126
+ type: sequelize_1.DataTypes.UUID,
127
+ allowNull: true,
128
+ references: {
129
+ model: 'platform_track',
130
+ key: 'id'
131
+ },
132
+ field: 'platform_track_id'
133
+ },
134
+ trackAddedGuestUserId: {
135
+ type: sequelize_1.DataTypes.UUID,
136
+ allowNull: true,
137
+ references: {
138
+ model: 'guest_user',
139
+ key: 'id'
140
+ },
141
+ field: 'track_added_guest_user_id'
124
142
  }
125
143
  }, {
126
144
  sequelize,
@@ -1,5 +1,6 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { 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';
@@ -49,6 +50,17 @@ export declare class JukeboxSession extends Model<JukeboxSessionAttributes, Juke
49
50
  getJukeboxQueueMode: Sequelize.BelongsToGetAssociationMixin<JukeboxQueueMode>;
50
51
  setJukeboxQueueMode: Sequelize.BelongsToSetAssociationMixin<JukeboxQueueMode, JukeboxQueueModeId>;
51
52
  createJukeboxQueueMode: Sequelize.BelongsToCreateAssociationMixin<JukeboxQueueMode>;
53
+ guestUsers: GuestUser[];
54
+ getGuestUsers: Sequelize.HasManyGetAssociationsMixin<GuestUser>;
55
+ setGuestUsers: Sequelize.HasManySetAssociationsMixin<GuestUser, GuestUserId>;
56
+ addGuestUser: Sequelize.HasManyAddAssociationMixin<GuestUser, GuestUserId>;
57
+ addGuestUsers: Sequelize.HasManyAddAssociationsMixin<GuestUser, GuestUserId>;
58
+ createGuestUser: Sequelize.HasManyCreateAssociationMixin<GuestUser>;
59
+ removeGuestUser: Sequelize.HasManyRemoveAssociationMixin<GuestUser, GuestUserId>;
60
+ removeGuestUsers: Sequelize.HasManyRemoveAssociationsMixin<GuestUser, GuestUserId>;
61
+ hasGuestUser: Sequelize.HasManyHasAssociationMixin<GuestUser, GuestUserId>;
62
+ hasGuestUsers: Sequelize.HasManyHasAssociationsMixin<GuestUser, GuestUserId>;
63
+ countGuestUsers: Sequelize.HasManyCountAssociationsMixin;
52
64
  jukeboxCanonGenreRelations: JukeboxCanonGenreRelation[];
53
65
  getJukeboxCanonGenreRelations: Sequelize.HasManyGetAssociationsMixin<JukeboxCanonGenreRelation>;
54
66
  setJukeboxCanonGenreRelations: Sequelize.HasManySetAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
@@ -0,0 +1,50 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { 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
+ export interface MerchItemAttributes {
7
+ id: string;
8
+ canonArtistId: string;
9
+ merchTypeId: string;
10
+ merchPlatformId: string;
11
+ merchItemPlatformId: string;
12
+ title: string;
13
+ description: string;
14
+ photo?: string;
15
+ popularity?: number;
16
+ inactive?: boolean;
17
+ createDate: Date;
18
+ updateDate: Date;
19
+ }
20
+ export type MerchItemPk = "id";
21
+ export type MerchItemId = MerchItem[MerchItemPk];
22
+ export type MerchItemOptionalAttributes = "id" | "photo" | "popularity" | "inactive" | "createDate" | "updateDate";
23
+ export type MerchItemCreationAttributes = Optional<MerchItemAttributes, MerchItemOptionalAttributes>;
24
+ export declare class MerchItem extends Model<MerchItemAttributes, MerchItemCreationAttributes> implements MerchItemAttributes {
25
+ id: string;
26
+ canonArtistId: string;
27
+ merchTypeId: string;
28
+ merchPlatformId: string;
29
+ merchItemPlatformId: string;
30
+ title: string;
31
+ description: string;
32
+ photo?: string;
33
+ popularity?: number;
34
+ inactive?: boolean;
35
+ createDate: Date;
36
+ updateDate: Date;
37
+ canonArtist: CanonArtist;
38
+ getCanonArtist: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
39
+ setCanonArtist: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
40
+ createCanonArtist: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
41
+ merchPlatform: MerchPlatform;
42
+ getMerchPlatform: Sequelize.BelongsToGetAssociationMixin<MerchPlatform>;
43
+ setMerchPlatform: Sequelize.BelongsToSetAssociationMixin<MerchPlatform, MerchPlatformId>;
44
+ createMerchPlatform: Sequelize.BelongsToCreateAssociationMixin<MerchPlatform>;
45
+ merchType: MerchType;
46
+ getMerchType: Sequelize.BelongsToGetAssociationMixin<MerchType>;
47
+ setMerchType: Sequelize.BelongsToSetAssociationMixin<MerchType, MerchTypeId>;
48
+ createMerchType: Sequelize.BelongsToCreateAssociationMixin<MerchType>;
49
+ static initModel(sequelize: Sequelize.Sequelize): typeof MerchItem;
50
+ }