@earbug/db-models 0.0.62 → 0.0.63

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.
Files changed (128) hide show
  1. package/.dockerignore +10 -0
  2. package/.github/workflows/publish.yaml +303 -0
  3. package/.nvmrc +1 -0
  4. package/Dockerfile.generate +19 -0
  5. package/model_options.json +3 -0
  6. package/models/AccessControlPreference.ts +53 -0
  7. package/models/AffinityRelationshipType.ts +96 -0
  8. package/models/AffinityTier.ts +131 -0
  9. package/models/AppUser.ts +577 -0
  10. package/models/AppUserDevice.ts +101 -0
  11. package/models/AppUserDeviceClassicBackup20260906.ts +66 -0
  12. package/models/AppUserFollowRelation.ts +128 -0
  13. package/models/AppUserPlatformRelation.ts +150 -0
  14. package/models/CanonAlbum.ts +229 -0
  15. package/models/CanonAlbumExternalReferenceRelation.ts +92 -0
  16. package/models/CanonAlbumGenreRelation.ts +86 -0
  17. package/models/CanonAlbumLabelRelation.ts +86 -0
  18. package/models/CanonAlbumTrackRelation.ts +92 -0
  19. package/models/CanonArtist.ts +356 -0
  20. package/models/CanonArtistAlbumRelation.ts +92 -0
  21. package/models/CanonArtistExternalReferenceRelation.ts +92 -0
  22. package/models/CanonArtistGenreRelation.ts +86 -0
  23. package/models/CanonArtistMemberRelation.ts +86 -0
  24. package/models/CanonArtistTrackRelation.ts +92 -0
  25. package/models/CanonGenre.ts +273 -0
  26. package/models/CanonGenreExternalReferenceRelation.ts +92 -0
  27. package/models/CanonLabel.ts +129 -0
  28. package/models/CanonLabelExternalReferenceRelation.ts +92 -0
  29. package/models/CanonMember.ts +130 -0
  30. package/models/CanonMemberExternalReferenceRelation.ts +99 -0
  31. package/models/CanonToPlatformAlbumRelation.ts +92 -0
  32. package/models/CanonToPlatformArtistRelation.ts +92 -0
  33. package/models/CanonToPlatformGenreRelation.ts +86 -0
  34. package/models/CanonToPlatformTrackRelation.ts +92 -0
  35. package/models/CanonTrack.ts +232 -0
  36. package/models/ConfigParam.ts +62 -0
  37. package/models/ExternalReference.ts +201 -0
  38. package/models/FeedConfig.ts +65 -0
  39. package/models/FeedContentType.ts +124 -0
  40. package/models/GuestUser.ts +137 -0
  41. package/models/JukeboxAccessType.ts +60 -0
  42. package/models/JukeboxCanonGenreRelation.ts +108 -0
  43. package/models/JukeboxInvite.ts +125 -0
  44. package/models/JukeboxQueueEntry.ts +247 -0
  45. package/models/JukeboxQueueMode.ts +60 -0
  46. package/models/JukeboxSession.ts +334 -0
  47. package/models/JukeboxSessionArtistAffinity.ts +136 -0
  48. package/models/JukeboxSessionGenreAffinity.ts +136 -0
  49. package/models/JukeboxStatus.ts +58 -0
  50. package/models/JukeboxTerminationCondition.ts +60 -0
  51. package/models/JukeboxType.ts +60 -0
  52. package/models/JukeboxUser.ts +182 -0
  53. package/models/JukeboxUserType.ts +58 -0
  54. package/models/KnexMigrations.ts +60 -0
  55. package/models/KnexMigrationsLock.ts +48 -0
  56. package/models/MerchItem.ts +198 -0
  57. package/models/MerchOrchestration.ts +130 -0
  58. package/models/MerchPlatform.ts +95 -0
  59. package/models/MerchType.ts +89 -0
  60. package/models/MetricsDaily.ts +79 -0
  61. package/models/MetricsEvent.ts +124 -0
  62. package/models/NewsArticle.ts +177 -0
  63. package/models/NewsPlatform.ts +76 -0
  64. package/models/NewsSite.ts +75 -0
  65. package/models/Notification.ts +214 -0
  66. package/models/NotificationType.ts +66 -0
  67. package/models/PauseStatusType.ts +58 -0
  68. package/models/Platform.ts +189 -0
  69. package/models/PlatformAlbum.ts +398 -0
  70. package/models/PlatformAlbumGenreRelation.ts +86 -0
  71. package/models/PlatformAlbumTrackRelation.ts +92 -0
  72. package/models/PlatformArtist.ts +358 -0
  73. package/models/PlatformArtistAlbumRelation.ts +92 -0
  74. package/models/PlatformArtistGenreRelation.ts +86 -0
  75. package/models/PlatformArtistTrackRelation.ts +92 -0
  76. package/models/PlatformGenre.ts +194 -0
  77. package/models/PlatformTrack.ts +339 -0
  78. package/models/PlatformTrackGenreRelation.ts +86 -0
  79. package/models/PlatformUserAlbum.ts +152 -0
  80. package/models/PlatformUserAlbumTrack.ts +138 -0
  81. package/models/PlatformUserPlaylist.ts +260 -0
  82. package/models/PlatformUserPlaylistArtistAffinity.ts +136 -0
  83. package/models/PlatformUserPlaylistGenreAffinity.ts +136 -0
  84. package/models/PlatformUserPlaylistTrack.ts +162 -0
  85. package/models/PlaybackStatus.ts +47 -0
  86. package/models/PlaybackStatusType.ts +58 -0
  87. package/models/RadioShow.ts +209 -0
  88. package/models/RadioShowGenres.ts +107 -0
  89. package/models/RadioShowMedia.ts +181 -0
  90. package/models/RadioShowPlacement.ts +115 -0
  91. package/models/RadioShowPublishRequests.ts +86 -0
  92. package/models/State.ts +86 -0
  93. package/models/TrackDeletionReason.ts +58 -0
  94. package/models/UnmatchedAlbum.ts +66 -0
  95. package/models/UnmatchedArtist.ts +81 -0
  96. package/models/UserAbuseReports.ts +232 -0
  97. package/models/UserAffinity.ts +117 -0
  98. package/models/UserArtistAffinity.ts +136 -0
  99. package/models/UserBookmarks.ts +235 -0
  100. package/models/UserComments.ts +271 -0
  101. package/models/UserContacts.ts +155 -0
  102. package/models/UserEngagementFactor.ts +109 -0
  103. package/models/UserGenreAffinity.ts +136 -0
  104. package/models/UserLikes.ts +235 -0
  105. package/models/UserMessages.ts +189 -0
  106. package/models/Versus.ts +438 -0
  107. package/models/VersusAccessType.ts +66 -0
  108. package/models/VersusCoCreator.ts +111 -0
  109. package/models/VersusCreatorScope.ts +66 -0
  110. package/models/VersusEndMode.ts +66 -0
  111. package/models/VersusEndTimerDuration.ts +81 -0
  112. package/models/VersusEndVoteThreshold.ts +67 -0
  113. package/models/VersusEntityKind.ts +79 -0
  114. package/models/VersusOption.ts +258 -0
  115. package/models/VersusPublishIssue.ts +146 -0
  116. package/models/VersusQuestion.ts +123 -0
  117. package/models/VersusQuestionVariableType.ts +66 -0
  118. package/models/VersusVote.ts +99 -0
  119. package/models/VersusVotingListType.ts +66 -0
  120. package/models/VersusVotingMode.ts +66 -0
  121. package/models/index.ts +3 -0
  122. package/models/init-models.ts +1259 -0
  123. package/models/initDb.ts +72 -0
  124. package/models/rdsCaBundle.ts +5 -0
  125. package/package.json +2 -5
  126. package/scripts/generate-and-upload.mjs +123 -0
  127. package/scripts/update-rds-ca-bundle.mjs +44 -0
  128. package/tsconfig.json +52 -0
@@ -0,0 +1,334 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { GuestUser, GuestUserId } from './GuestUser';
4
+ import type { JukeboxAccessType, JukeboxAccessTypeId } from './JukeboxAccessType';
5
+ import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './JukeboxCanonGenreRelation';
6
+ import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
7
+ import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
8
+ import type { JukeboxQueueMode, JukeboxQueueModeId } from './JukeboxQueueMode';
9
+ import type { JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId } from './JukeboxSessionArtistAffinity';
10
+ import type { JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId } from './JukeboxSessionGenreAffinity';
11
+ import type { JukeboxStatus, JukeboxStatusId } from './JukeboxStatus';
12
+ import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from './JukeboxTerminationCondition';
13
+ import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
14
+ import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
15
+ import type { Notification, NotificationId } from './Notification';
16
+ import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
17
+ import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
18
+ import type { UserComments, UserCommentsId } from './UserComments';
19
+ import type { UserLikes, UserLikesId } from './UserLikes';
20
+
21
+ export interface JukeboxSessionAttributes {
22
+ id: string;
23
+ typeId: number;
24
+ accessTypeId: number;
25
+ terminationConditionId: number;
26
+ jukeboxQueueModeId: number;
27
+ createdAt: Date;
28
+ updatedAt: Date;
29
+ jukeboxStatusId: number;
30
+ trackQueue?: string[];
31
+ description?: string;
32
+ stateMachineArn?: string;
33
+ durationMs: number;
34
+ pausedAt?: Date;
35
+ }
36
+
37
+ export type JukeboxSessionPk = "id";
38
+ export type JukeboxSessionId = JukeboxSession[JukeboxSessionPk];
39
+ export type JukeboxSessionOptionalAttributes = "id" | "createdAt" | "updatedAt" | "jukeboxStatusId" | "trackQueue" | "description" | "stateMachineArn" | "durationMs" | "pausedAt";
40
+ export type JukeboxSessionCreationAttributes = Optional<JukeboxSessionAttributes, JukeboxSessionOptionalAttributes>;
41
+
42
+ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessionCreationAttributes> implements JukeboxSessionAttributes {
43
+ id!: string;
44
+ typeId!: number;
45
+ accessTypeId!: number;
46
+ terminationConditionId!: number;
47
+ jukeboxQueueModeId!: number;
48
+ createdAt!: Date;
49
+ updatedAt!: Date;
50
+ jukeboxStatusId!: number;
51
+ trackQueue?: string[];
52
+ description?: string;
53
+ stateMachineArn?: string;
54
+ durationMs!: number;
55
+ pausedAt?: Date;
56
+
57
+ // JukeboxSession belongsTo JukeboxAccessType via accessTypeId
58
+ accessType!: JukeboxAccessType;
59
+ getAccessType!: Sequelize.BelongsToGetAssociationMixin<JukeboxAccessType>;
60
+ setAccessType!: Sequelize.BelongsToSetAssociationMixin<JukeboxAccessType, JukeboxAccessTypeId>;
61
+ createAccessType!: Sequelize.BelongsToCreateAssociationMixin<JukeboxAccessType>;
62
+ // JukeboxSession belongsTo JukeboxQueueMode via jukeboxQueueModeId
63
+ jukeboxQueueMode!: JukeboxQueueMode;
64
+ getJukeboxQueueMode!: Sequelize.BelongsToGetAssociationMixin<JukeboxQueueMode>;
65
+ setJukeboxQueueMode!: Sequelize.BelongsToSetAssociationMixin<JukeboxQueueMode, JukeboxQueueModeId>;
66
+ createJukeboxQueueMode!: Sequelize.BelongsToCreateAssociationMixin<JukeboxQueueMode>;
67
+ // JukeboxSession hasMany GuestUser via jukeboxSessionId
68
+ guestUsers!: GuestUser[];
69
+ getGuestUsers!: Sequelize.HasManyGetAssociationsMixin<GuestUser>;
70
+ setGuestUsers!: Sequelize.HasManySetAssociationsMixin<GuestUser, GuestUserId>;
71
+ addGuestUser!: Sequelize.HasManyAddAssociationMixin<GuestUser, GuestUserId>;
72
+ addGuestUsers!: Sequelize.HasManyAddAssociationsMixin<GuestUser, GuestUserId>;
73
+ createGuestUser!: Sequelize.HasManyCreateAssociationMixin<GuestUser>;
74
+ removeGuestUser!: Sequelize.HasManyRemoveAssociationMixin<GuestUser, GuestUserId>;
75
+ removeGuestUsers!: Sequelize.HasManyRemoveAssociationsMixin<GuestUser, GuestUserId>;
76
+ hasGuestUser!: Sequelize.HasManyHasAssociationMixin<GuestUser, GuestUserId>;
77
+ hasGuestUsers!: Sequelize.HasManyHasAssociationsMixin<GuestUser, GuestUserId>;
78
+ countGuestUsers!: Sequelize.HasManyCountAssociationsMixin;
79
+ // JukeboxSession hasMany JukeboxCanonGenreRelation via jukeboxSessionId
80
+ jukeboxCanonGenreRelations!: JukeboxCanonGenreRelation[];
81
+ getJukeboxCanonGenreRelations!: Sequelize.HasManyGetAssociationsMixin<JukeboxCanonGenreRelation>;
82
+ setJukeboxCanonGenreRelations!: Sequelize.HasManySetAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
83
+ addJukeboxCanonGenreRelation!: Sequelize.HasManyAddAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
84
+ addJukeboxCanonGenreRelations!: Sequelize.HasManyAddAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
85
+ createJukeboxCanonGenreRelation!: Sequelize.HasManyCreateAssociationMixin<JukeboxCanonGenreRelation>;
86
+ removeJukeboxCanonGenreRelation!: Sequelize.HasManyRemoveAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
87
+ removeJukeboxCanonGenreRelations!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
88
+ hasJukeboxCanonGenreRelation!: Sequelize.HasManyHasAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
89
+ hasJukeboxCanonGenreRelations!: Sequelize.HasManyHasAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
90
+ countJukeboxCanonGenreRelations!: Sequelize.HasManyCountAssociationsMixin;
91
+ // JukeboxSession hasMany JukeboxInvite via jukeboxSessionId
92
+ jukeboxInvites!: JukeboxInvite[];
93
+ getJukeboxInvites!: Sequelize.HasManyGetAssociationsMixin<JukeboxInvite>;
94
+ setJukeboxInvites!: Sequelize.HasManySetAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
95
+ addJukeboxInvite!: Sequelize.HasManyAddAssociationMixin<JukeboxInvite, JukeboxInviteId>;
96
+ addJukeboxInvites!: Sequelize.HasManyAddAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
97
+ createJukeboxInvite!: Sequelize.HasManyCreateAssociationMixin<JukeboxInvite>;
98
+ removeJukeboxInvite!: Sequelize.HasManyRemoveAssociationMixin<JukeboxInvite, JukeboxInviteId>;
99
+ removeJukeboxInvites!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
100
+ hasJukeboxInvite!: Sequelize.HasManyHasAssociationMixin<JukeboxInvite, JukeboxInviteId>;
101
+ hasJukeboxInvites!: Sequelize.HasManyHasAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
102
+ countJukeboxInvites!: Sequelize.HasManyCountAssociationsMixin;
103
+ // JukeboxSession hasMany JukeboxQueueEntry via jukeboxSessionId
104
+ jukeboxQueueEntries!: JukeboxQueueEntry[];
105
+ getJukeboxQueueEntries!: Sequelize.HasManyGetAssociationsMixin<JukeboxQueueEntry>;
106
+ setJukeboxQueueEntries!: Sequelize.HasManySetAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
107
+ addJukeboxQueueEntry!: Sequelize.HasManyAddAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
108
+ addJukeboxQueueEntries!: Sequelize.HasManyAddAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
109
+ createJukeboxQueueEntry!: Sequelize.HasManyCreateAssociationMixin<JukeboxQueueEntry>;
110
+ removeJukeboxQueueEntry!: Sequelize.HasManyRemoveAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
111
+ removeJukeboxQueueEntries!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
112
+ hasJukeboxQueueEntry!: Sequelize.HasManyHasAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
113
+ hasJukeboxQueueEntries!: Sequelize.HasManyHasAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
114
+ countJukeboxQueueEntries!: Sequelize.HasManyCountAssociationsMixin;
115
+ // JukeboxSession hasMany JukeboxSessionArtistAffinity via jukeboxSessionId
116
+ jukeboxSessionArtistAffinities!: JukeboxSessionArtistAffinity[];
117
+ getJukeboxSessionArtistAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionArtistAffinity>;
118
+ setJukeboxSessionArtistAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
119
+ addJukeboxSessionArtistAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
120
+ addJukeboxSessionArtistAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
121
+ createJukeboxSessionArtistAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionArtistAffinity>;
122
+ removeJukeboxSessionArtistAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
123
+ removeJukeboxSessionArtistAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
124
+ hasJukeboxSessionArtistAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
125
+ hasJukeboxSessionArtistAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionArtistAffinity, JukeboxSessionArtistAffinityId>;
126
+ countJukeboxSessionArtistAffinities!: Sequelize.HasManyCountAssociationsMixin;
127
+ // JukeboxSession hasMany JukeboxSessionGenreAffinity via jukeboxSessionId
128
+ jukeboxSessionGenreAffinities!: JukeboxSessionGenreAffinity[];
129
+ getJukeboxSessionGenreAffinities!: Sequelize.HasManyGetAssociationsMixin<JukeboxSessionGenreAffinity>;
130
+ setJukeboxSessionGenreAffinities!: Sequelize.HasManySetAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
131
+ addJukeboxSessionGenreAffinity!: Sequelize.HasManyAddAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
132
+ addJukeboxSessionGenreAffinities!: Sequelize.HasManyAddAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
133
+ createJukeboxSessionGenreAffinity!: Sequelize.HasManyCreateAssociationMixin<JukeboxSessionGenreAffinity>;
134
+ removeJukeboxSessionGenreAffinity!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
135
+ removeJukeboxSessionGenreAffinities!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
136
+ hasJukeboxSessionGenreAffinity!: Sequelize.HasManyHasAssociationMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
137
+ hasJukeboxSessionGenreAffinities!: Sequelize.HasManyHasAssociationsMixin<JukeboxSessionGenreAffinity, JukeboxSessionGenreAffinityId>;
138
+ countJukeboxSessionGenreAffinities!: Sequelize.HasManyCountAssociationsMixin;
139
+ // JukeboxSession hasMany JukeboxUser via jukeboxSessionId
140
+ jukeboxUsers!: JukeboxUser[];
141
+ getJukeboxUsers!: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
142
+ setJukeboxUsers!: Sequelize.HasManySetAssociationsMixin<JukeboxUser, JukeboxUserId>;
143
+ addJukeboxUser!: Sequelize.HasManyAddAssociationMixin<JukeboxUser, JukeboxUserId>;
144
+ addJukeboxUsers!: Sequelize.HasManyAddAssociationsMixin<JukeboxUser, JukeboxUserId>;
145
+ createJukeboxUser!: Sequelize.HasManyCreateAssociationMixin<JukeboxUser>;
146
+ removeJukeboxUser!: Sequelize.HasManyRemoveAssociationMixin<JukeboxUser, JukeboxUserId>;
147
+ removeJukeboxUsers!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxUser, JukeboxUserId>;
148
+ hasJukeboxUser!: Sequelize.HasManyHasAssociationMixin<JukeboxUser, JukeboxUserId>;
149
+ hasJukeboxUsers!: Sequelize.HasManyHasAssociationsMixin<JukeboxUser, JukeboxUserId>;
150
+ countJukeboxUsers!: Sequelize.HasManyCountAssociationsMixin;
151
+ // JukeboxSession hasMany Notification via jukeboxSessionId
152
+ notifications!: Notification[];
153
+ getNotifications!: Sequelize.HasManyGetAssociationsMixin<Notification>;
154
+ setNotifications!: Sequelize.HasManySetAssociationsMixin<Notification, NotificationId>;
155
+ addNotification!: Sequelize.HasManyAddAssociationMixin<Notification, NotificationId>;
156
+ addNotifications!: Sequelize.HasManyAddAssociationsMixin<Notification, NotificationId>;
157
+ createNotification!: Sequelize.HasManyCreateAssociationMixin<Notification>;
158
+ removeNotification!: Sequelize.HasManyRemoveAssociationMixin<Notification, NotificationId>;
159
+ removeNotifications!: Sequelize.HasManyRemoveAssociationsMixin<Notification, NotificationId>;
160
+ hasNotification!: Sequelize.HasManyHasAssociationMixin<Notification, NotificationId>;
161
+ hasNotifications!: Sequelize.HasManyHasAssociationsMixin<Notification, NotificationId>;
162
+ countNotifications!: Sequelize.HasManyCountAssociationsMixin;
163
+ // JukeboxSession hasMany UserAbuseReports via jukeboxId
164
+ userAbuseReports!: UserAbuseReports[];
165
+ getUserAbuseReports!: Sequelize.HasManyGetAssociationsMixin<UserAbuseReports>;
166
+ setUserAbuseReports!: Sequelize.HasManySetAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
167
+ addUserAbuseReport!: Sequelize.HasManyAddAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
168
+ addUserAbuseReports!: Sequelize.HasManyAddAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
169
+ createUserAbuseReport!: Sequelize.HasManyCreateAssociationMixin<UserAbuseReports>;
170
+ removeUserAbuseReport!: Sequelize.HasManyRemoveAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
171
+ removeUserAbuseReports!: Sequelize.HasManyRemoveAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
172
+ hasUserAbuseReport!: Sequelize.HasManyHasAssociationMixin<UserAbuseReports, UserAbuseReportsId>;
173
+ hasUserAbuseReports!: Sequelize.HasManyHasAssociationsMixin<UserAbuseReports, UserAbuseReportsId>;
174
+ countUserAbuseReports!: Sequelize.HasManyCountAssociationsMixin;
175
+ // JukeboxSession hasMany UserBookmarks via jukeboxId
176
+ userBookmarks!: UserBookmarks[];
177
+ getUserBookmarks!: Sequelize.HasManyGetAssociationsMixin<UserBookmarks>;
178
+ setUserBookmarks!: Sequelize.HasManySetAssociationsMixin<UserBookmarks, UserBookmarksId>;
179
+ addUserBookmark!: Sequelize.HasManyAddAssociationMixin<UserBookmarks, UserBookmarksId>;
180
+ addUserBookmarks!: Sequelize.HasManyAddAssociationsMixin<UserBookmarks, UserBookmarksId>;
181
+ createUserBookmark!: Sequelize.HasManyCreateAssociationMixin<UserBookmarks>;
182
+ removeUserBookmark!: Sequelize.HasManyRemoveAssociationMixin<UserBookmarks, UserBookmarksId>;
183
+ removeUserBookmarks!: Sequelize.HasManyRemoveAssociationsMixin<UserBookmarks, UserBookmarksId>;
184
+ hasUserBookmark!: Sequelize.HasManyHasAssociationMixin<UserBookmarks, UserBookmarksId>;
185
+ hasUserBookmarks!: Sequelize.HasManyHasAssociationsMixin<UserBookmarks, UserBookmarksId>;
186
+ countUserBookmarks!: Sequelize.HasManyCountAssociationsMixin;
187
+ // JukeboxSession hasMany UserComments via jukeboxId
188
+ userComments!: UserComments[];
189
+ getUserComments!: Sequelize.HasManyGetAssociationsMixin<UserComments>;
190
+ setUserComments!: Sequelize.HasManySetAssociationsMixin<UserComments, UserCommentsId>;
191
+ addUserComment!: Sequelize.HasManyAddAssociationMixin<UserComments, UserCommentsId>;
192
+ addUserComments!: Sequelize.HasManyAddAssociationsMixin<UserComments, UserCommentsId>;
193
+ createUserComment!: Sequelize.HasManyCreateAssociationMixin<UserComments>;
194
+ removeUserComment!: Sequelize.HasManyRemoveAssociationMixin<UserComments, UserCommentsId>;
195
+ removeUserComments!: Sequelize.HasManyRemoveAssociationsMixin<UserComments, UserCommentsId>;
196
+ hasUserComment!: Sequelize.HasManyHasAssociationMixin<UserComments, UserCommentsId>;
197
+ hasUserComments!: Sequelize.HasManyHasAssociationsMixin<UserComments, UserCommentsId>;
198
+ countUserComments!: Sequelize.HasManyCountAssociationsMixin;
199
+ // JukeboxSession hasMany UserLikes via jukeboxId
200
+ userLikes!: UserLikes[];
201
+ getUserLikes!: Sequelize.HasManyGetAssociationsMixin<UserLikes>;
202
+ setUserLikes!: Sequelize.HasManySetAssociationsMixin<UserLikes, UserLikesId>;
203
+ addUserLike!: Sequelize.HasManyAddAssociationMixin<UserLikes, UserLikesId>;
204
+ addUserLikes!: Sequelize.HasManyAddAssociationsMixin<UserLikes, UserLikesId>;
205
+ createUserLike!: Sequelize.HasManyCreateAssociationMixin<UserLikes>;
206
+ removeUserLike!: Sequelize.HasManyRemoveAssociationMixin<UserLikes, UserLikesId>;
207
+ removeUserLikes!: Sequelize.HasManyRemoveAssociationsMixin<UserLikes, UserLikesId>;
208
+ hasUserLike!: Sequelize.HasManyHasAssociationMixin<UserLikes, UserLikesId>;
209
+ hasUserLikes!: Sequelize.HasManyHasAssociationsMixin<UserLikes, UserLikesId>;
210
+ countUserLikes!: Sequelize.HasManyCountAssociationsMixin;
211
+ // JukeboxSession belongsTo JukeboxStatus via jukeboxStatusId
212
+ jukeboxStatus!: JukeboxStatus;
213
+ getJukeboxStatus!: Sequelize.BelongsToGetAssociationMixin<JukeboxStatus>;
214
+ setJukeboxStatus!: Sequelize.BelongsToSetAssociationMixin<JukeboxStatus, JukeboxStatusId>;
215
+ createJukeboxStatus!: Sequelize.BelongsToCreateAssociationMixin<JukeboxStatus>;
216
+ // JukeboxSession belongsTo JukeboxTerminationCondition via terminationConditionId
217
+ terminationCondition!: JukeboxTerminationCondition;
218
+ getTerminationCondition!: Sequelize.BelongsToGetAssociationMixin<JukeboxTerminationCondition>;
219
+ setTerminationCondition!: Sequelize.BelongsToSetAssociationMixin<JukeboxTerminationCondition, JukeboxTerminationConditionId>;
220
+ createTerminationCondition!: Sequelize.BelongsToCreateAssociationMixin<JukeboxTerminationCondition>;
221
+ // JukeboxSession belongsTo JukeboxType via typeId
222
+ type!: JukeboxType;
223
+ getType!: Sequelize.BelongsToGetAssociationMixin<JukeboxType>;
224
+ setType!: Sequelize.BelongsToSetAssociationMixin<JukeboxType, JukeboxTypeId>;
225
+ createType!: Sequelize.BelongsToCreateAssociationMixin<JukeboxType>;
226
+
227
+ static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSession {
228
+ return JukeboxSession.init({
229
+ id: {
230
+ type: DataTypes.UUID,
231
+ allowNull: false,
232
+ defaultValue: DataTypes.UUIDV4,
233
+ primaryKey: true
234
+ },
235
+ typeId: {
236
+ type: DataTypes.SMALLINT,
237
+ allowNull: false,
238
+ references: {
239
+ model: 'jukebox_type',
240
+ key: 'id'
241
+ },
242
+ field: 'type_id'
243
+ },
244
+ accessTypeId: {
245
+ type: DataTypes.SMALLINT,
246
+ allowNull: false,
247
+ references: {
248
+ model: 'jukebox_access_type',
249
+ key: 'id'
250
+ },
251
+ field: 'access_type_id'
252
+ },
253
+ terminationConditionId: {
254
+ type: DataTypes.SMALLINT,
255
+ allowNull: false,
256
+ references: {
257
+ model: 'jukebox_termination_condition',
258
+ key: 'id'
259
+ },
260
+ field: 'termination_condition_id'
261
+ },
262
+ jukeboxQueueModeId: {
263
+ type: DataTypes.SMALLINT,
264
+ allowNull: false,
265
+ references: {
266
+ model: 'jukebox_queue_mode',
267
+ key: 'id'
268
+ },
269
+ field: 'jukebox_queue_mode_id'
270
+ },
271
+ createdAt: {
272
+ type: DataTypes.DATE,
273
+ allowNull: false,
274
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
275
+ field: 'created_at'
276
+ },
277
+ updatedAt: {
278
+ type: DataTypes.DATE,
279
+ allowNull: false,
280
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
281
+ field: 'updated_at'
282
+ },
283
+ jukeboxStatusId: {
284
+ type: DataTypes.SMALLINT,
285
+ allowNull: false,
286
+ defaultValue: 0,
287
+ references: {
288
+ model: 'jukebox_status',
289
+ key: 'id'
290
+ },
291
+ field: 'jukebox_status_id'
292
+ },
293
+ trackQueue: {
294
+ type: DataTypes.ARRAY(DataTypes.TEXT),
295
+ allowNull: true,
296
+ field: 'track_queue'
297
+ },
298
+ description: {
299
+ type: DataTypes.STRING(512),
300
+ allowNull: true
301
+ },
302
+ stateMachineArn: {
303
+ type: DataTypes.STRING(255),
304
+ allowNull: true,
305
+ field: 'state_machine_arn'
306
+ },
307
+ durationMs: {
308
+ type: DataTypes.INTEGER,
309
+ allowNull: false,
310
+ defaultValue: 0,
311
+ field: 'duration_ms'
312
+ },
313
+ pausedAt: {
314
+ type: DataTypes.DATE,
315
+ allowNull: true,
316
+ field: 'paused_at'
317
+ }
318
+ }, {
319
+ sequelize,
320
+ tableName: 'jukebox_session',
321
+ schema: 'eb',
322
+ timestamps: false,
323
+ indexes: [
324
+ {
325
+ name: "jukebox_session_pkey",
326
+ unique: true,
327
+ fields: [
328
+ { name: "id" },
329
+ ]
330
+ },
331
+ ]
332
+ });
333
+ }
334
+ }
@@ -0,0 +1,136 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { AffinityTier, AffinityTierId } from './AffinityTier';
4
+ import type { CanonArtist, CanonArtistId } from './CanonArtist';
5
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
6
+
7
+ export interface JukeboxSessionArtistAffinityAttributes {
8
+ id: string;
9
+ jukeboxSessionId: string;
10
+ canonArtistId: string;
11
+ affinityTierId: number;
12
+ rank: number;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+
17
+ export type JukeboxSessionArtistAffinityPk = "id";
18
+ export type JukeboxSessionArtistAffinityId = JukeboxSessionArtistAffinity[JukeboxSessionArtistAffinityPk];
19
+ export type JukeboxSessionArtistAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
20
+ export type JukeboxSessionArtistAffinityCreationAttributes = Optional<JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityOptionalAttributes>;
21
+
22
+ export class JukeboxSessionArtistAffinity extends Model<JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes> implements JukeboxSessionArtistAffinityAttributes {
23
+ id!: string;
24
+ jukeboxSessionId!: string;
25
+ canonArtistId!: string;
26
+ affinityTierId!: number;
27
+ rank!: number;
28
+ createdAt!: Date;
29
+ updatedAt!: Date;
30
+
31
+ // JukeboxSessionArtistAffinity belongsTo AffinityTier via affinityTierId
32
+ affinityTier!: AffinityTier;
33
+ getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
34
+ setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
35
+ createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
36
+ // JukeboxSessionArtistAffinity belongsTo CanonArtist via canonArtistId
37
+ canonArtist!: CanonArtist;
38
+ getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
39
+ setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
40
+ createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
41
+ // JukeboxSessionArtistAffinity belongsTo JukeboxSession via jukeboxSessionId
42
+ jukeboxSession!: JukeboxSession;
43
+ getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
44
+ setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
45
+ createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
46
+
47
+ static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSessionArtistAffinity {
48
+ return JukeboxSessionArtistAffinity.init({
49
+ id: {
50
+ type: DataTypes.UUID,
51
+ allowNull: false,
52
+ defaultValue: DataTypes.UUIDV4,
53
+ primaryKey: true
54
+ },
55
+ jukeboxSessionId: {
56
+ type: DataTypes.UUID,
57
+ allowNull: false,
58
+ references: {
59
+ model: 'jukebox_session',
60
+ key: 'id'
61
+ },
62
+ unique: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
63
+ field: 'jukebox_session_id'
64
+ },
65
+ canonArtistId: {
66
+ type: DataTypes.UUID,
67
+ allowNull: false,
68
+ references: {
69
+ model: 'canon_artist',
70
+ key: 'id'
71
+ },
72
+ unique: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
73
+ field: 'canon_artist_id'
74
+ },
75
+ affinityTierId: {
76
+ type: DataTypes.SMALLINT,
77
+ allowNull: false,
78
+ references: {
79
+ model: 'affinity_tier',
80
+ key: 'id'
81
+ },
82
+ field: 'affinity_tier_id'
83
+ },
84
+ rank: {
85
+ type: DataTypes.INTEGER,
86
+ allowNull: false
87
+ },
88
+ createdAt: {
89
+ type: DataTypes.DATE,
90
+ allowNull: false,
91
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
92
+ field: 'created_at'
93
+ },
94
+ updatedAt: {
95
+ type: DataTypes.DATE,
96
+ allowNull: false,
97
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
98
+ field: 'updated_at'
99
+ }
100
+ }, {
101
+ sequelize,
102
+ tableName: 'jukebox_session_artist_affinity',
103
+ schema: 'eb',
104
+ timestamps: false,
105
+ indexes: [
106
+ {
107
+ name: "idx_jukebox_session_artist_affinity_artist",
108
+ fields: [
109
+ { name: "canon_artist_id" },
110
+ ]
111
+ },
112
+ {
113
+ name: "idx_jukebox_session_artist_affinity_session",
114
+ fields: [
115
+ { name: "jukebox_session_id" },
116
+ ]
117
+ },
118
+ {
119
+ name: "jukebox_session_artist_affinity_jukebox_session_id_canon_artist",
120
+ unique: true,
121
+ fields: [
122
+ { name: "jukebox_session_id" },
123
+ { name: "canon_artist_id" },
124
+ ]
125
+ },
126
+ {
127
+ name: "jukebox_session_artist_affinity_pkey",
128
+ unique: true,
129
+ fields: [
130
+ { name: "id" },
131
+ ]
132
+ },
133
+ ]
134
+ });
135
+ }
136
+ }
@@ -0,0 +1,136 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { AffinityTier, AffinityTierId } from './AffinityTier';
4
+ import type { CanonGenre, CanonGenreId } from './CanonGenre';
5
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
6
+
7
+ export interface JukeboxSessionGenreAffinityAttributes {
8
+ id: string;
9
+ jukeboxSessionId: string;
10
+ canonGenreId: string;
11
+ affinityTierId: number;
12
+ rank: number;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+
17
+ export type JukeboxSessionGenreAffinityPk = "id";
18
+ export type JukeboxSessionGenreAffinityId = JukeboxSessionGenreAffinity[JukeboxSessionGenreAffinityPk];
19
+ export type JukeboxSessionGenreAffinityOptionalAttributes = "id" | "createdAt" | "updatedAt";
20
+ export type JukeboxSessionGenreAffinityCreationAttributes = Optional<JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityOptionalAttributes>;
21
+
22
+ export class JukeboxSessionGenreAffinity extends Model<JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes> implements JukeboxSessionGenreAffinityAttributes {
23
+ id!: string;
24
+ jukeboxSessionId!: string;
25
+ canonGenreId!: string;
26
+ affinityTierId!: number;
27
+ rank!: number;
28
+ createdAt!: Date;
29
+ updatedAt!: Date;
30
+
31
+ // JukeboxSessionGenreAffinity belongsTo AffinityTier via affinityTierId
32
+ affinityTier!: AffinityTier;
33
+ getAffinityTier!: Sequelize.BelongsToGetAssociationMixin<AffinityTier>;
34
+ setAffinityTier!: Sequelize.BelongsToSetAssociationMixin<AffinityTier, AffinityTierId>;
35
+ createAffinityTier!: Sequelize.BelongsToCreateAssociationMixin<AffinityTier>;
36
+ // JukeboxSessionGenreAffinity belongsTo CanonGenre via canonGenreId
37
+ canonGenre!: CanonGenre;
38
+ getCanonGenre!: Sequelize.BelongsToGetAssociationMixin<CanonGenre>;
39
+ setCanonGenre!: Sequelize.BelongsToSetAssociationMixin<CanonGenre, CanonGenreId>;
40
+ createCanonGenre!: Sequelize.BelongsToCreateAssociationMixin<CanonGenre>;
41
+ // JukeboxSessionGenreAffinity belongsTo JukeboxSession via jukeboxSessionId
42
+ jukeboxSession!: JukeboxSession;
43
+ getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
44
+ setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
45
+ createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
46
+
47
+ static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSessionGenreAffinity {
48
+ return JukeboxSessionGenreAffinity.init({
49
+ id: {
50
+ type: DataTypes.UUID,
51
+ allowNull: false,
52
+ defaultValue: DataTypes.UUIDV4,
53
+ primaryKey: true
54
+ },
55
+ jukeboxSessionId: {
56
+ type: DataTypes.UUID,
57
+ allowNull: false,
58
+ references: {
59
+ model: 'jukebox_session',
60
+ key: 'id'
61
+ },
62
+ unique: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
63
+ field: 'jukebox_session_id'
64
+ },
65
+ canonGenreId: {
66
+ type: DataTypes.UUID,
67
+ allowNull: false,
68
+ references: {
69
+ model: 'canon_genre',
70
+ key: 'id'
71
+ },
72
+ unique: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
73
+ field: 'canon_genre_id'
74
+ },
75
+ affinityTierId: {
76
+ type: DataTypes.SMALLINT,
77
+ allowNull: false,
78
+ references: {
79
+ model: 'affinity_tier',
80
+ key: 'id'
81
+ },
82
+ field: 'affinity_tier_id'
83
+ },
84
+ rank: {
85
+ type: DataTypes.INTEGER,
86
+ allowNull: false
87
+ },
88
+ createdAt: {
89
+ type: DataTypes.DATE,
90
+ allowNull: false,
91
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
92
+ field: 'created_at'
93
+ },
94
+ updatedAt: {
95
+ type: DataTypes.DATE,
96
+ allowNull: false,
97
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
98
+ field: 'updated_at'
99
+ }
100
+ }, {
101
+ sequelize,
102
+ tableName: 'jukebox_session_genre_affinity',
103
+ schema: 'eb',
104
+ timestamps: false,
105
+ indexes: [
106
+ {
107
+ name: "idx_jukebox_session_genre_affinity_genre",
108
+ fields: [
109
+ { name: "canon_genre_id" },
110
+ ]
111
+ },
112
+ {
113
+ name: "idx_jukebox_session_genre_affinity_session",
114
+ fields: [
115
+ { name: "jukebox_session_id" },
116
+ ]
117
+ },
118
+ {
119
+ name: "jukebox_session_genre_affinity_jukebox_session_id_canon_genre_i",
120
+ unique: true,
121
+ fields: [
122
+ { name: "jukebox_session_id" },
123
+ { name: "canon_genre_id" },
124
+ ]
125
+ },
126
+ {
127
+ name: "jukebox_session_genre_affinity_pkey",
128
+ unique: true,
129
+ fields: [
130
+ { name: "id" },
131
+ ]
132
+ },
133
+ ]
134
+ });
135
+ }
136
+ }
@@ -0,0 +1,58 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
4
+
5
+ export interface JukeboxStatusAttributes {
6
+ id: number;
7
+ description: string;
8
+ }
9
+
10
+ export type JukeboxStatusPk = "id";
11
+ export type JukeboxStatusId = JukeboxStatus[JukeboxStatusPk];
12
+ export type JukeboxStatusCreationAttributes = JukeboxStatusAttributes;
13
+
14
+ export class JukeboxStatus extends Model<JukeboxStatusAttributes, JukeboxStatusCreationAttributes> implements JukeboxStatusAttributes {
15
+ id!: number;
16
+ description!: string;
17
+
18
+ // JukeboxStatus hasMany JukeboxSession via jukeboxStatusId
19
+ jukeboxSessions!: JukeboxSession[];
20
+ getJukeboxSessions!: Sequelize.HasManyGetAssociationsMixin<JukeboxSession>;
21
+ setJukeboxSessions!: Sequelize.HasManySetAssociationsMixin<JukeboxSession, JukeboxSessionId>;
22
+ addJukeboxSession!: Sequelize.HasManyAddAssociationMixin<JukeboxSession, JukeboxSessionId>;
23
+ addJukeboxSessions!: Sequelize.HasManyAddAssociationsMixin<JukeboxSession, JukeboxSessionId>;
24
+ createJukeboxSession!: Sequelize.HasManyCreateAssociationMixin<JukeboxSession>;
25
+ removeJukeboxSession!: Sequelize.HasManyRemoveAssociationMixin<JukeboxSession, JukeboxSessionId>;
26
+ removeJukeboxSessions!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxSession, JukeboxSessionId>;
27
+ hasJukeboxSession!: Sequelize.HasManyHasAssociationMixin<JukeboxSession, JukeboxSessionId>;
28
+ hasJukeboxSessions!: Sequelize.HasManyHasAssociationsMixin<JukeboxSession, JukeboxSessionId>;
29
+ countJukeboxSessions!: Sequelize.HasManyCountAssociationsMixin;
30
+
31
+ static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxStatus {
32
+ return JukeboxStatus.init({
33
+ id: {
34
+ type: DataTypes.SMALLINT,
35
+ allowNull: false,
36
+ primaryKey: true
37
+ },
38
+ description: {
39
+ type: DataTypes.STRING(255),
40
+ allowNull: false
41
+ }
42
+ }, {
43
+ sequelize,
44
+ tableName: 'jukebox_status',
45
+ schema: 'eb',
46
+ timestamps: false,
47
+ indexes: [
48
+ {
49
+ name: "jukebox_status_pkey",
50
+ unique: true,
51
+ fields: [
52
+ { name: "id" },
53
+ ]
54
+ },
55
+ ]
56
+ });
57
+ }
58
+ }