@earbug/db-models 0.0.1

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 (211) hide show
  1. package/.nvmrc +1 -0
  2. package/dist/AppUser.d.ts +161 -0
  3. package/dist/AppUser.js +121 -0
  4. package/dist/AppUserDevice.d.ts +26 -0
  5. package/dist/AppUserDevice.js +88 -0
  6. package/dist/AppUserFollowRelation.d.ts +34 -0
  7. package/dist/AppUserFollowRelation.js +113 -0
  8. package/dist/AppUserPlatformRelation.d.ts +43 -0
  9. package/dist/AppUserPlatformRelation.js +132 -0
  10. package/dist/CanonAlbum.d.ts +119 -0
  11. package/dist/CanonAlbum.js +117 -0
  12. package/dist/CanonAlbumExternalReferenceRelation.d.ts +31 -0
  13. package/dist/CanonAlbumExternalReferenceRelation.js +86 -0
  14. package/dist/CanonAlbumGenreRelation.d.ts +29 -0
  15. package/dist/CanonAlbumGenreRelation.js +82 -0
  16. package/dist/CanonAlbumImageHarvested.d.ts +30 -0
  17. package/dist/CanonAlbumImageHarvested.js +78 -0
  18. package/dist/CanonAlbumLabelRelation.d.ts +29 -0
  19. package/dist/CanonAlbumLabelRelation.js +82 -0
  20. package/dist/CanonAlbumTrackRelation.d.ts +29 -0
  21. package/dist/CanonAlbumTrackRelation.js +82 -0
  22. package/dist/CanonArtist.d.ts +91 -0
  23. package/dist/CanonArtist.js +114 -0
  24. package/dist/CanonArtistAlbumRelation.d.ts +29 -0
  25. package/dist/CanonArtistAlbumRelation.js +82 -0
  26. package/dist/CanonArtistExternalReferenceRelation.d.ts +31 -0
  27. package/dist/CanonArtistExternalReferenceRelation.js +86 -0
  28. package/dist/CanonArtistGenreRelation.d.ts +29 -0
  29. package/dist/CanonArtistGenreRelation.js +82 -0
  30. package/dist/CanonArtistImageHarvested.d.ts +30 -0
  31. package/dist/CanonArtistImageHarvested.js +70 -0
  32. package/dist/CanonArtistMemberRelation.d.ts +29 -0
  33. package/dist/CanonArtistMemberRelation.js +82 -0
  34. package/dist/CanonArtistTrackRelation.d.ts +29 -0
  35. package/dist/CanonArtistTrackRelation.js +82 -0
  36. package/dist/CanonGenre.d.ts +133 -0
  37. package/dist/CanonGenre.js +93 -0
  38. package/dist/CanonGenreExternalReferenceRelation.d.ts +31 -0
  39. package/dist/CanonGenreExternalReferenceRelation.js +86 -0
  40. package/dist/CanonLabel.d.ts +69 -0
  41. package/dist/CanonLabel.js +83 -0
  42. package/dist/CanonLabelExternalReferenceRelation.d.ts +31 -0
  43. package/dist/CanonLabelExternalReferenceRelation.js +86 -0
  44. package/dist/CanonMember.d.ts +71 -0
  45. package/dist/CanonMember.js +82 -0
  46. package/dist/CanonMemberExternalReferenceRelation.d.ts +33 -0
  47. package/dist/CanonMemberExternalReferenceRelation.js +91 -0
  48. package/dist/CanonToPlatformAlbumRelation.d.ts +29 -0
  49. package/dist/CanonToPlatformAlbumRelation.js +82 -0
  50. package/dist/CanonToPlatformArtistRelation.d.ts +29 -0
  51. package/dist/CanonToPlatformArtistRelation.js +82 -0
  52. package/dist/CanonToPlatformGenreRelation.d.ts +29 -0
  53. package/dist/CanonToPlatformGenreRelation.js +82 -0
  54. package/dist/CanonToPlatformTrackRelation.d.ts +29 -0
  55. package/dist/CanonToPlatformTrackRelation.js +82 -0
  56. package/dist/CanonTrack.d.ts +89 -0
  57. package/dist/CanonTrack.js +99 -0
  58. package/dist/ConfigParam.d.ts +19 -0
  59. package/dist/ConfigParam.js +70 -0
  60. package/dist/ExternalReference.d.ts +139 -0
  61. package/dist/ExternalReference.js +79 -0
  62. package/dist/JukeboxAccessType.d.ts +26 -0
  63. package/dist/JukeboxAccessType.js +36 -0
  64. package/dist/JukeboxCanonGenreRelation.d.ts +33 -0
  65. package/dist/JukeboxCanonGenreRelation.js +101 -0
  66. package/dist/JukeboxInvite.d.ts +39 -0
  67. package/dist/JukeboxInvite.js +98 -0
  68. package/dist/JukeboxQueueEntry.d.ts +74 -0
  69. package/dist/JukeboxQueueEntry.js +142 -0
  70. package/dist/JukeboxQueueMode.d.ts +26 -0
  71. package/dist/JukeboxQueueMode.js +36 -0
  72. package/dist/JukeboxSession.d.ts +108 -0
  73. package/dist/JukeboxSession.js +133 -0
  74. package/dist/JukeboxStatus.d.ts +26 -0
  75. package/dist/JukeboxStatus.js +34 -0
  76. package/dist/JukeboxTerminationCondition.d.ts +26 -0
  77. package/dist/JukeboxTerminationCondition.js +36 -0
  78. package/dist/JukeboxType.d.ts +26 -0
  79. package/dist/JukeboxType.js +36 -0
  80. package/dist/JukeboxUser.d.ts +56 -0
  81. package/dist/JukeboxUser.js +135 -0
  82. package/dist/JukeboxUserType.d.ts +26 -0
  83. package/dist/JukeboxUserType.js +34 -0
  84. package/dist/KnexMigrations.d.ts +19 -0
  85. package/dist/KnexMigrations.js +44 -0
  86. package/dist/KnexMigrationsLock.d.ts +15 -0
  87. package/dist/KnexMigrationsLock.js +36 -0
  88. package/dist/MetricsDaily.d.ts +19 -0
  89. package/dist/MetricsDaily.js +87 -0
  90. package/dist/MetricsEvent.d.ts +23 -0
  91. package/dist/MetricsEvent.js +117 -0
  92. package/dist/NewsSite.d.ts +21 -0
  93. package/dist/NewsSite.js +57 -0
  94. package/dist/PauseStatusType.d.ts +26 -0
  95. package/dist/PauseStatusType.js +34 -0
  96. package/dist/Platform.d.ts +127 -0
  97. package/dist/Platform.js +80 -0
  98. package/dist/PlatformAlbum.d.ts +232 -0
  99. package/dist/PlatformAlbum.js +123 -0
  100. package/dist/PlatformAlbumGenreRelation.d.ts +29 -0
  101. package/dist/PlatformAlbumGenreRelation.js +82 -0
  102. package/dist/PlatformAlbumTrackRelation.d.ts +29 -0
  103. package/dist/PlatformAlbumTrackRelation.js +82 -0
  104. package/dist/PlatformArtist.d.ts +225 -0
  105. package/dist/PlatformArtist.js +109 -0
  106. package/dist/PlatformArtistAlbumRelation.d.ts +29 -0
  107. package/dist/PlatformArtistAlbumRelation.js +82 -0
  108. package/dist/PlatformArtistGenreRelation.d.ts +29 -0
  109. package/dist/PlatformArtistGenreRelation.js +82 -0
  110. package/dist/PlatformArtistTrackRelation.d.ts +29 -0
  111. package/dist/PlatformArtistTrackRelation.js +82 -0
  112. package/dist/PlatformGenre.d.ts +122 -0
  113. package/dist/PlatformGenre.js +90 -0
  114. package/dist/PlatformTrack.d.ts +183 -0
  115. package/dist/PlatformTrack.js +129 -0
  116. package/dist/PlatformTrackGenreRelation.d.ts +29 -0
  117. package/dist/PlatformTrackGenreRelation.js +82 -0
  118. package/dist/PlatformUserAlbum.d.ts +54 -0
  119. package/dist/PlatformUserAlbum.js +121 -0
  120. package/dist/PlatformUserAlbumTrack.d.ts +42 -0
  121. package/dist/PlatformUserAlbumTrack.js +121 -0
  122. package/dist/PlatformUserPlaylist.d.ts +62 -0
  123. package/dist/PlatformUserPlaylist.js +135 -0
  124. package/dist/PlatformUserPlaylistTrack.d.ts +48 -0
  125. package/dist/PlatformUserPlaylistTrack.js +132 -0
  126. package/dist/PlaybackStatus.d.ts +26 -0
  127. package/dist/PlaybackStatus.js +36 -0
  128. package/dist/State.d.ts +50 -0
  129. package/dist/State.js +36 -0
  130. package/dist/TrackDeletionReason.d.ts +26 -0
  131. package/dist/TrackDeletionReason.js +34 -0
  132. package/dist/UnmatchedAlbum.d.ts +22 -0
  133. package/dist/UnmatchedAlbum.js +70 -0
  134. package/dist/UnmatchedArtist.d.ts +26 -0
  135. package/dist/UnmatchedArtist.js +81 -0
  136. package/dist/UserContacts.d.ts +46 -0
  137. package/dist/UserContacts.js +105 -0
  138. package/dist/init-models.d.ts +209 -0
  139. package/dist/init-models.js +507 -0
  140. package/model_options.json +3 -0
  141. package/models/AppUser.ts +267 -0
  142. package/models/AppUserDevice.ts +88 -0
  143. package/models/AppUserFollowRelation.ts +122 -0
  144. package/models/AppUserPlatformRelation.ts +150 -0
  145. package/models/CanonAlbum.ts +216 -0
  146. package/models/CanonAlbumExternalReferenceRelation.ts +92 -0
  147. package/models/CanonAlbumGenreRelation.ts +86 -0
  148. package/models/CanonAlbumImageHarvested.ts +106 -0
  149. package/models/CanonAlbumLabelRelation.ts +86 -0
  150. package/models/CanonAlbumTrackRelation.ts +86 -0
  151. package/models/CanonArtist.ts +183 -0
  152. package/models/CanonArtistAlbumRelation.ts +86 -0
  153. package/models/CanonArtistExternalReferenceRelation.ts +92 -0
  154. package/models/CanonArtistGenreRelation.ts +86 -0
  155. package/models/CanonArtistImageHarvested.ts +98 -0
  156. package/models/CanonArtistMemberRelation.ts +86 -0
  157. package/models/CanonArtistTrackRelation.ts +86 -0
  158. package/models/CanonGenre.ts +208 -0
  159. package/models/CanonGenreExternalReferenceRelation.ts +92 -0
  160. package/models/CanonLabel.ts +129 -0
  161. package/models/CanonLabelExternalReferenceRelation.ts +92 -0
  162. package/models/CanonMember.ts +130 -0
  163. package/models/CanonMemberExternalReferenceRelation.ts +99 -0
  164. package/models/CanonToPlatformAlbumRelation.ts +86 -0
  165. package/models/CanonToPlatformArtistRelation.ts +86 -0
  166. package/models/CanonToPlatformGenreRelation.ts +86 -0
  167. package/models/CanonToPlatformTrackRelation.ts +86 -0
  168. package/models/CanonTrack.ts +167 -0
  169. package/models/ConfigParam.ts +62 -0
  170. package/models/ExternalReference.ts +201 -0
  171. package/models/JukeboxAccessType.ts +60 -0
  172. package/models/JukeboxCanonGenreRelation.ts +109 -0
  173. package/models/JukeboxInvite.ts +113 -0
  174. package/models/JukeboxQueueEntry.ts +195 -0
  175. package/models/JukeboxQueueMode.ts +60 -0
  176. package/models/JukeboxSession.ts +223 -0
  177. package/models/JukeboxStatus.ts +58 -0
  178. package/models/JukeboxTerminationCondition.ts +60 -0
  179. package/models/JukeboxType.ts +60 -0
  180. package/models/JukeboxUser.ts +169 -0
  181. package/models/JukeboxUserType.ts +58 -0
  182. package/models/KnexMigrations.ts +60 -0
  183. package/models/KnexMigrationsLock.ts +48 -0
  184. package/models/MetricsDaily.ts +79 -0
  185. package/models/MetricsEvent.ts +114 -0
  186. package/models/NewsSite.ts +75 -0
  187. package/models/PauseStatusType.ts +58 -0
  188. package/models/Platform.ts +189 -0
  189. package/models/PlatformAlbum.ts +345 -0
  190. package/models/PlatformAlbumGenreRelation.ts +86 -0
  191. package/models/PlatformAlbumTrackRelation.ts +86 -0
  192. package/models/PlatformArtist.ts +324 -0
  193. package/models/PlatformArtistAlbumRelation.ts +86 -0
  194. package/models/PlatformArtistGenreRelation.ts +86 -0
  195. package/models/PlatformArtistTrackRelation.ts +86 -0
  196. package/models/PlatformGenre.ts +194 -0
  197. package/models/PlatformTrack.ts +298 -0
  198. package/models/PlatformTrackGenreRelation.ts +86 -0
  199. package/models/PlatformUserAlbum.ts +152 -0
  200. package/models/PlatformUserAlbumTrack.ts +139 -0
  201. package/models/PlatformUserPlaylist.ts +174 -0
  202. package/models/PlatformUserPlaylistTrack.ts +156 -0
  203. package/models/PlaybackStatus.ts +60 -0
  204. package/models/State.ts +86 -0
  205. package/models/TrackDeletionReason.ts +58 -0
  206. package/models/UnmatchedAlbum.ts +66 -0
  207. package/models/UnmatchedArtist.ts +81 -0
  208. package/models/UserContacts.ts +149 -0
  209. package/models/init-models.ts +716 -0
  210. package/package.json +19 -0
  211. package/tsconfig.json +52 -0
@@ -0,0 +1,113 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
4
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
5
+
6
+ export interface JukeboxInviteAttributes {
7
+ id: string;
8
+ jukeboxSessionId: string;
9
+ inviterUserId: string;
10
+ invitedUserId?: string;
11
+ email?: string;
12
+ createdAt: Date;
13
+ updatedAt: Date;
14
+ }
15
+
16
+ export type JukeboxInvitePk = "id";
17
+ export type JukeboxInviteId = JukeboxInvite[JukeboxInvitePk];
18
+ export type JukeboxInviteOptionalAttributes = "id" | "invitedUserId" | "email" | "createdAt" | "updatedAt";
19
+ export type JukeboxInviteCreationAttributes = Optional<JukeboxInviteAttributes, JukeboxInviteOptionalAttributes>;
20
+
21
+ export class JukeboxInvite extends Model<JukeboxInviteAttributes, JukeboxInviteCreationAttributes> implements JukeboxInviteAttributes {
22
+ id!: string;
23
+ jukeboxSessionId!: string;
24
+ inviterUserId!: string;
25
+ invitedUserId?: string;
26
+ email?: string;
27
+ createdAt!: Date;
28
+ updatedAt!: Date;
29
+
30
+ // JukeboxInvite belongsTo AppUser via invitedUserId
31
+ invitedUser!: AppUser;
32
+ getInvitedUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
33
+ setInvitedUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
34
+ createInvitedUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
35
+ // JukeboxInvite belongsTo AppUser via inviterUserId
36
+ inviterUser!: AppUser;
37
+ getInviterUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
38
+ setInviterUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
39
+ createInviterUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
40
+ // JukeboxInvite belongsTo JukeboxSession via jukeboxSessionId
41
+ jukeboxSession!: JukeboxSession;
42
+ getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
43
+ setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
44
+ createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
45
+
46
+ static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxInvite {
47
+ return JukeboxInvite.init({
48
+ id: {
49
+ type: DataTypes.UUID,
50
+ allowNull: false,
51
+ defaultValue: DataTypes.UUIDV4,
52
+ primaryKey: true
53
+ },
54
+ jukeboxSessionId: {
55
+ type: DataTypes.UUID,
56
+ allowNull: false,
57
+ references: {
58
+ model: 'jukebox_session',
59
+ key: 'id'
60
+ },
61
+ field: 'jukebox_session_id'
62
+ },
63
+ inviterUserId: {
64
+ type: DataTypes.UUID,
65
+ allowNull: false,
66
+ references: {
67
+ model: 'app_user',
68
+ key: 'id'
69
+ },
70
+ field: 'inviter_user_id'
71
+ },
72
+ invitedUserId: {
73
+ type: DataTypes.UUID,
74
+ allowNull: true,
75
+ references: {
76
+ model: 'app_user',
77
+ key: 'id'
78
+ },
79
+ field: 'invited_user_id'
80
+ },
81
+ email: {
82
+ type: DataTypes.TEXT,
83
+ allowNull: true
84
+ },
85
+ createdAt: {
86
+ type: DataTypes.DATE,
87
+ allowNull: false,
88
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
89
+ field: 'created_at'
90
+ },
91
+ updatedAt: {
92
+ type: DataTypes.DATE,
93
+ allowNull: false,
94
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
95
+ field: 'updated_at'
96
+ }
97
+ }, {
98
+ sequelize,
99
+ tableName: 'jukebox_invite',
100
+ schema: 'eb',
101
+ timestamps: false,
102
+ indexes: [
103
+ {
104
+ name: "jukebox_invite_pkey",
105
+ unique: true,
106
+ fields: [
107
+ { name: "id" },
108
+ ]
109
+ },
110
+ ]
111
+ });
112
+ }
113
+ }
@@ -0,0 +1,195 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { AppUser, AppUserId } from './AppUser';
4
+ import type { CanonTrack, CanonTrackId } from './CanonTrack';
5
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
6
+ import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
7
+ import type { PlaybackStatus, PlaybackStatusId } from './PlaybackStatus';
8
+ import type { TrackDeletionReason, TrackDeletionReasonId } from './TrackDeletionReason';
9
+
10
+ export interface JukeboxQueueEntryAttributes {
11
+ id: string;
12
+ jukeboxSessionId: string;
13
+ trackId: string;
14
+ playbackPriority?: number;
15
+ trackAddedUserId: string;
16
+ createdAt: Date;
17
+ updatedAt: Date;
18
+ setOrder: number;
19
+ trackDeletionReasonId: number;
20
+ playbackStatusTypeId: number;
21
+ playbackStarted?: Date;
22
+ trackThumbsUp?: string[];
23
+ trackThumbsDown?: string[];
24
+ }
25
+
26
+ export type JukeboxQueueEntryPk = "id";
27
+ export type JukeboxQueueEntryId = JukeboxQueueEntry[JukeboxQueueEntryPk];
28
+ export type JukeboxQueueEntryOptionalAttributes = "id" | "playbackPriority" | "createdAt" | "updatedAt" | "setOrder" | "trackDeletionReasonId" | "playbackStatusTypeId" | "playbackStarted" | "trackThumbsUp" | "trackThumbsDown";
29
+ export type JukeboxQueueEntryCreationAttributes = Optional<JukeboxQueueEntryAttributes, JukeboxQueueEntryOptionalAttributes>;
30
+
31
+ export class JukeboxQueueEntry extends Model<JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes> implements JukeboxQueueEntryAttributes {
32
+ id!: string;
33
+ jukeboxSessionId!: string;
34
+ trackId!: string;
35
+ playbackPriority?: number;
36
+ trackAddedUserId!: string;
37
+ createdAt!: Date;
38
+ updatedAt!: Date;
39
+ setOrder!: number;
40
+ trackDeletionReasonId!: number;
41
+ playbackStatusTypeId!: number;
42
+ playbackStarted?: Date;
43
+ trackThumbsUp?: string[];
44
+ trackThumbsDown?: string[];
45
+
46
+ // JukeboxQueueEntry belongsTo AppUser via trackAddedUserId
47
+ trackAddedUser!: AppUser;
48
+ getTrackAddedUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
49
+ setTrackAddedUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
50
+ createTrackAddedUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
51
+ // JukeboxQueueEntry belongsTo CanonTrack via trackId
52
+ track!: CanonTrack;
53
+ getTrack!: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
54
+ setTrack!: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
55
+ createTrack!: Sequelize.BelongsToCreateAssociationMixin<CanonTrack>;
56
+ // JukeboxQueueEntry hasMany JukeboxUser via pausedQueueEntryId
57
+ jukeboxUsers!: JukeboxUser[];
58
+ getJukeboxUsers!: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
59
+ setJukeboxUsers!: Sequelize.HasManySetAssociationsMixin<JukeboxUser, JukeboxUserId>;
60
+ addJukeboxUser!: Sequelize.HasManyAddAssociationMixin<JukeboxUser, JukeboxUserId>;
61
+ addJukeboxUsers!: Sequelize.HasManyAddAssociationsMixin<JukeboxUser, JukeboxUserId>;
62
+ createJukeboxUser!: Sequelize.HasManyCreateAssociationMixin<JukeboxUser>;
63
+ removeJukeboxUser!: Sequelize.HasManyRemoveAssociationMixin<JukeboxUser, JukeboxUserId>;
64
+ removeJukeboxUsers!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxUser, JukeboxUserId>;
65
+ hasJukeboxUser!: Sequelize.HasManyHasAssociationMixin<JukeboxUser, JukeboxUserId>;
66
+ hasJukeboxUsers!: Sequelize.HasManyHasAssociationsMixin<JukeboxUser, JukeboxUserId>;
67
+ countJukeboxUsers!: Sequelize.HasManyCountAssociationsMixin;
68
+ // JukeboxQueueEntry belongsTo JukeboxSession via jukeboxSessionId
69
+ jukeboxSession!: JukeboxSession;
70
+ getJukeboxSession!: Sequelize.BelongsToGetAssociationMixin<JukeboxSession>;
71
+ setJukeboxSession!: Sequelize.BelongsToSetAssociationMixin<JukeboxSession, JukeboxSessionId>;
72
+ createJukeboxSession!: Sequelize.BelongsToCreateAssociationMixin<JukeboxSession>;
73
+ // JukeboxQueueEntry belongsTo PlaybackStatus via playbackStatusTypeId
74
+ playbackStatusType!: PlaybackStatus;
75
+ getPlaybackStatusType!: Sequelize.BelongsToGetAssociationMixin<PlaybackStatus>;
76
+ setPlaybackStatusType!: Sequelize.BelongsToSetAssociationMixin<PlaybackStatus, PlaybackStatusId>;
77
+ createPlaybackStatusType!: Sequelize.BelongsToCreateAssociationMixin<PlaybackStatus>;
78
+ // JukeboxQueueEntry belongsTo TrackDeletionReason via trackDeletionReasonId
79
+ trackDeletionReason!: TrackDeletionReason;
80
+ getTrackDeletionReason!: Sequelize.BelongsToGetAssociationMixin<TrackDeletionReason>;
81
+ setTrackDeletionReason!: Sequelize.BelongsToSetAssociationMixin<TrackDeletionReason, TrackDeletionReasonId>;
82
+ createTrackDeletionReason!: Sequelize.BelongsToCreateAssociationMixin<TrackDeletionReason>;
83
+
84
+ static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxQueueEntry {
85
+ return JukeboxQueueEntry.init({
86
+ id: {
87
+ type: DataTypes.UUID,
88
+ allowNull: false,
89
+ defaultValue: DataTypes.UUIDV4,
90
+ primaryKey: true
91
+ },
92
+ jukeboxSessionId: {
93
+ type: DataTypes.UUID,
94
+ allowNull: false,
95
+ references: {
96
+ model: 'jukebox_session',
97
+ key: 'id'
98
+ },
99
+ field: 'jukebox_session_id'
100
+ },
101
+ trackId: {
102
+ type: DataTypes.UUID,
103
+ allowNull: false,
104
+ references: {
105
+ model: 'canon_track',
106
+ key: 'id'
107
+ },
108
+ field: 'track_id'
109
+ },
110
+ playbackPriority: {
111
+ type: DataTypes.DECIMAL,
112
+ allowNull: true,
113
+ field: 'playback_priority'
114
+ },
115
+ trackAddedUserId: {
116
+ type: DataTypes.UUID,
117
+ allowNull: false,
118
+ references: {
119
+ model: 'app_user',
120
+ key: 'id'
121
+ },
122
+ field: 'track_added_user_id'
123
+ },
124
+ createdAt: {
125
+ type: DataTypes.DATE,
126
+ allowNull: false,
127
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
128
+ field: 'created_at'
129
+ },
130
+ updatedAt: {
131
+ type: DataTypes.DATE,
132
+ allowNull: false,
133
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
134
+ field: 'updated_at'
135
+ },
136
+ setOrder: {
137
+ type: DataTypes.INTEGER,
138
+ allowNull: false,
139
+ defaultValue: 1,
140
+ field: 'set_order'
141
+ },
142
+ trackDeletionReasonId: {
143
+ type: DataTypes.SMALLINT,
144
+ allowNull: false,
145
+ defaultValue: 0,
146
+ references: {
147
+ model: 'track_deletion_reason',
148
+ key: 'id'
149
+ },
150
+ field: 'track_deletion_reason_id'
151
+ },
152
+ playbackStatusTypeId: {
153
+ type: DataTypes.SMALLINT,
154
+ allowNull: false,
155
+ defaultValue: 0,
156
+ references: {
157
+ model: 'playback_status',
158
+ key: 'id'
159
+ },
160
+ field: 'playback_status_type_id'
161
+ },
162
+ playbackStarted: {
163
+ type: DataTypes.DATE,
164
+ allowNull: true,
165
+ field: 'playback_started'
166
+ },
167
+ trackThumbsUp: {
168
+ type: DataTypes.ARRAY(DataTypes.UUID),
169
+ allowNull: true,
170
+ defaultValue: ["ARRAY[]"],
171
+ field: 'track_thumbs_up'
172
+ },
173
+ trackThumbsDown: {
174
+ type: DataTypes.ARRAY(DataTypes.UUID),
175
+ allowNull: true,
176
+ defaultValue: ["ARRAY[]"],
177
+ field: 'track_thumbs_down'
178
+ }
179
+ }, {
180
+ sequelize,
181
+ tableName: 'jukebox_queue_entry',
182
+ schema: 'eb',
183
+ timestamps: false,
184
+ indexes: [
185
+ {
186
+ name: "jukebox_queue_entry_pkey",
187
+ unique: true,
188
+ fields: [
189
+ { name: "id" },
190
+ ]
191
+ },
192
+ ]
193
+ });
194
+ }
195
+ }
@@ -0,0 +1,60 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { JukeboxSession, JukeboxSessionId } from './JukeboxSession';
4
+
5
+ export interface JukeboxQueueModeAttributes {
6
+ id: number;
7
+ description: string;
8
+ }
9
+
10
+ export type JukeboxQueueModePk = "id";
11
+ export type JukeboxQueueModeId = JukeboxQueueMode[JukeboxQueueModePk];
12
+ export type JukeboxQueueModeCreationAttributes = JukeboxQueueModeAttributes;
13
+
14
+ export class JukeboxQueueMode extends Model<JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes> implements JukeboxQueueModeAttributes {
15
+ id!: number;
16
+ description!: string;
17
+
18
+ // JukeboxQueueMode hasMany JukeboxSession via jukeboxQueueModeId
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 JukeboxQueueMode {
32
+ return JukeboxQueueMode.init({
33
+ id: {
34
+ autoIncrement: true,
35
+ autoIncrementIdentity: true,
36
+ type: DataTypes.SMALLINT,
37
+ allowNull: false,
38
+ primaryKey: true
39
+ },
40
+ description: {
41
+ type: DataTypes.TEXT,
42
+ allowNull: false
43
+ }
44
+ }, {
45
+ sequelize,
46
+ tableName: 'jukebox_queue_mode',
47
+ schema: 'eb',
48
+ timestamps: false,
49
+ indexes: [
50
+ {
51
+ name: "jukebox_queue_mode_pkey",
52
+ unique: true,
53
+ fields: [
54
+ { name: "id" },
55
+ ]
56
+ },
57
+ ]
58
+ });
59
+ }
60
+ }
@@ -0,0 +1,223 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { DataTypes, Model, Optional } from 'sequelize';
3
+ import type { JukeboxAccessType, JukeboxAccessTypeId } from './JukeboxAccessType';
4
+ import type { JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId } from './JukeboxCanonGenreRelation';
5
+ import type { JukeboxInvite, JukeboxInviteId } from './JukeboxInvite';
6
+ import type { JukeboxQueueEntry, JukeboxQueueEntryId } from './JukeboxQueueEntry';
7
+ import type { JukeboxQueueMode, JukeboxQueueModeId } from './JukeboxQueueMode';
8
+ import type { JukeboxStatus, JukeboxStatusId } from './JukeboxStatus';
9
+ import type { JukeboxTerminationCondition, JukeboxTerminationConditionId } from './JukeboxTerminationCondition';
10
+ import type { JukeboxType, JukeboxTypeId } from './JukeboxType';
11
+ import type { JukeboxUser, JukeboxUserId } from './JukeboxUser';
12
+
13
+ export interface JukeboxSessionAttributes {
14
+ id: string;
15
+ typeId: number;
16
+ accessTypeId: number;
17
+ terminationConditionId: number;
18
+ jukeboxQueueModeId: number;
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ jukeboxStatusId: number;
22
+ trackQueue?: string[];
23
+ description?: string;
24
+ stateMachineArn?: string;
25
+ durationMs: number;
26
+ }
27
+
28
+ export type JukeboxSessionPk = "id";
29
+ export type JukeboxSessionId = JukeboxSession[JukeboxSessionPk];
30
+ export type JukeboxSessionOptionalAttributes = "id" | "createdAt" | "updatedAt" | "jukeboxStatusId" | "trackQueue" | "description" | "stateMachineArn" | "durationMs";
31
+ export type JukeboxSessionCreationAttributes = Optional<JukeboxSessionAttributes, JukeboxSessionOptionalAttributes>;
32
+
33
+ export class JukeboxSession extends Model<JukeboxSessionAttributes, JukeboxSessionCreationAttributes> implements JukeboxSessionAttributes {
34
+ id!: string;
35
+ typeId!: number;
36
+ accessTypeId!: number;
37
+ terminationConditionId!: number;
38
+ jukeboxQueueModeId!: number;
39
+ createdAt!: Date;
40
+ updatedAt!: Date;
41
+ jukeboxStatusId!: number;
42
+ trackQueue?: string[];
43
+ description?: string;
44
+ stateMachineArn?: string;
45
+ durationMs!: number;
46
+
47
+ // JukeboxSession belongsTo JukeboxAccessType via accessTypeId
48
+ accessType!: JukeboxAccessType;
49
+ getAccessType!: Sequelize.BelongsToGetAssociationMixin<JukeboxAccessType>;
50
+ setAccessType!: Sequelize.BelongsToSetAssociationMixin<JukeboxAccessType, JukeboxAccessTypeId>;
51
+ createAccessType!: Sequelize.BelongsToCreateAssociationMixin<JukeboxAccessType>;
52
+ // JukeboxSession belongsTo JukeboxQueueMode via jukeboxQueueModeId
53
+ jukeboxQueueMode!: JukeboxQueueMode;
54
+ getJukeboxQueueMode!: Sequelize.BelongsToGetAssociationMixin<JukeboxQueueMode>;
55
+ setJukeboxQueueMode!: Sequelize.BelongsToSetAssociationMixin<JukeboxQueueMode, JukeboxQueueModeId>;
56
+ createJukeboxQueueMode!: Sequelize.BelongsToCreateAssociationMixin<JukeboxQueueMode>;
57
+ // JukeboxSession hasMany JukeboxCanonGenreRelation via jukeboxSessionId
58
+ jukeboxCanonGenreRelations!: JukeboxCanonGenreRelation[];
59
+ getJukeboxCanonGenreRelations!: Sequelize.HasManyGetAssociationsMixin<JukeboxCanonGenreRelation>;
60
+ setJukeboxCanonGenreRelations!: Sequelize.HasManySetAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
61
+ addJukeboxCanonGenreRelation!: Sequelize.HasManyAddAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
62
+ addJukeboxCanonGenreRelations!: Sequelize.HasManyAddAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
63
+ createJukeboxCanonGenreRelation!: Sequelize.HasManyCreateAssociationMixin<JukeboxCanonGenreRelation>;
64
+ removeJukeboxCanonGenreRelation!: Sequelize.HasManyRemoveAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
65
+ removeJukeboxCanonGenreRelations!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
66
+ hasJukeboxCanonGenreRelation!: Sequelize.HasManyHasAssociationMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
67
+ hasJukeboxCanonGenreRelations!: Sequelize.HasManyHasAssociationsMixin<JukeboxCanonGenreRelation, JukeboxCanonGenreRelationId>;
68
+ countJukeboxCanonGenreRelations!: Sequelize.HasManyCountAssociationsMixin;
69
+ // JukeboxSession hasMany JukeboxInvite via jukeboxSessionId
70
+ jukeboxInvites!: JukeboxInvite[];
71
+ getJukeboxInvites!: Sequelize.HasManyGetAssociationsMixin<JukeboxInvite>;
72
+ setJukeboxInvites!: Sequelize.HasManySetAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
73
+ addJukeboxInvite!: Sequelize.HasManyAddAssociationMixin<JukeboxInvite, JukeboxInviteId>;
74
+ addJukeboxInvites!: Sequelize.HasManyAddAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
75
+ createJukeboxInvite!: Sequelize.HasManyCreateAssociationMixin<JukeboxInvite>;
76
+ removeJukeboxInvite!: Sequelize.HasManyRemoveAssociationMixin<JukeboxInvite, JukeboxInviteId>;
77
+ removeJukeboxInvites!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
78
+ hasJukeboxInvite!: Sequelize.HasManyHasAssociationMixin<JukeboxInvite, JukeboxInviteId>;
79
+ hasJukeboxInvites!: Sequelize.HasManyHasAssociationsMixin<JukeboxInvite, JukeboxInviteId>;
80
+ countJukeboxInvites!: Sequelize.HasManyCountAssociationsMixin;
81
+ // JukeboxSession hasMany JukeboxQueueEntry via jukeboxSessionId
82
+ jukeboxQueueEntries!: JukeboxQueueEntry[];
83
+ getJukeboxQueueEntries!: Sequelize.HasManyGetAssociationsMixin<JukeboxQueueEntry>;
84
+ setJukeboxQueueEntries!: Sequelize.HasManySetAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
85
+ addJukeboxQueueEntry!: Sequelize.HasManyAddAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
86
+ addJukeboxQueueEntries!: Sequelize.HasManyAddAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
87
+ createJukeboxQueueEntry!: Sequelize.HasManyCreateAssociationMixin<JukeboxQueueEntry>;
88
+ removeJukeboxQueueEntry!: Sequelize.HasManyRemoveAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
89
+ removeJukeboxQueueEntries!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
90
+ hasJukeboxQueueEntry!: Sequelize.HasManyHasAssociationMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
91
+ hasJukeboxQueueEntries!: Sequelize.HasManyHasAssociationsMixin<JukeboxQueueEntry, JukeboxQueueEntryId>;
92
+ countJukeboxQueueEntries!: Sequelize.HasManyCountAssociationsMixin;
93
+ // JukeboxSession hasMany JukeboxUser via jukeboxSessionId
94
+ jukeboxUsers!: JukeboxUser[];
95
+ getJukeboxUsers!: Sequelize.HasManyGetAssociationsMixin<JukeboxUser>;
96
+ setJukeboxUsers!: Sequelize.HasManySetAssociationsMixin<JukeboxUser, JukeboxUserId>;
97
+ addJukeboxUser!: Sequelize.HasManyAddAssociationMixin<JukeboxUser, JukeboxUserId>;
98
+ addJukeboxUsers!: Sequelize.HasManyAddAssociationsMixin<JukeboxUser, JukeboxUserId>;
99
+ createJukeboxUser!: Sequelize.HasManyCreateAssociationMixin<JukeboxUser>;
100
+ removeJukeboxUser!: Sequelize.HasManyRemoveAssociationMixin<JukeboxUser, JukeboxUserId>;
101
+ removeJukeboxUsers!: Sequelize.HasManyRemoveAssociationsMixin<JukeboxUser, JukeboxUserId>;
102
+ hasJukeboxUser!: Sequelize.HasManyHasAssociationMixin<JukeboxUser, JukeboxUserId>;
103
+ hasJukeboxUsers!: Sequelize.HasManyHasAssociationsMixin<JukeboxUser, JukeboxUserId>;
104
+ countJukeboxUsers!: Sequelize.HasManyCountAssociationsMixin;
105
+ // JukeboxSession belongsTo JukeboxStatus via jukeboxStatusId
106
+ jukeboxStatus!: JukeboxStatus;
107
+ getJukeboxStatus!: Sequelize.BelongsToGetAssociationMixin<JukeboxStatus>;
108
+ setJukeboxStatus!: Sequelize.BelongsToSetAssociationMixin<JukeboxStatus, JukeboxStatusId>;
109
+ createJukeboxStatus!: Sequelize.BelongsToCreateAssociationMixin<JukeboxStatus>;
110
+ // JukeboxSession belongsTo JukeboxTerminationCondition via terminationConditionId
111
+ terminationCondition!: JukeboxTerminationCondition;
112
+ getTerminationCondition!: Sequelize.BelongsToGetAssociationMixin<JukeboxTerminationCondition>;
113
+ setTerminationCondition!: Sequelize.BelongsToSetAssociationMixin<JukeboxTerminationCondition, JukeboxTerminationConditionId>;
114
+ createTerminationCondition!: Sequelize.BelongsToCreateAssociationMixin<JukeboxTerminationCondition>;
115
+ // JukeboxSession belongsTo JukeboxType via typeId
116
+ type!: JukeboxType;
117
+ getType!: Sequelize.BelongsToGetAssociationMixin<JukeboxType>;
118
+ setType!: Sequelize.BelongsToSetAssociationMixin<JukeboxType, JukeboxTypeId>;
119
+ createType!: Sequelize.BelongsToCreateAssociationMixin<JukeboxType>;
120
+
121
+ static initModel(sequelize: Sequelize.Sequelize): typeof JukeboxSession {
122
+ return JukeboxSession.init({
123
+ id: {
124
+ type: DataTypes.UUID,
125
+ allowNull: false,
126
+ defaultValue: DataTypes.UUIDV4,
127
+ primaryKey: true
128
+ },
129
+ typeId: {
130
+ type: DataTypes.SMALLINT,
131
+ allowNull: false,
132
+ references: {
133
+ model: 'jukebox_type',
134
+ key: 'id'
135
+ },
136
+ field: 'type_id'
137
+ },
138
+ accessTypeId: {
139
+ type: DataTypes.SMALLINT,
140
+ allowNull: false,
141
+ references: {
142
+ model: 'jukebox_access_type',
143
+ key: 'id'
144
+ },
145
+ field: 'access_type_id'
146
+ },
147
+ terminationConditionId: {
148
+ type: DataTypes.SMALLINT,
149
+ allowNull: false,
150
+ references: {
151
+ model: 'jukebox_termination_condition',
152
+ key: 'id'
153
+ },
154
+ field: 'termination_condition_id'
155
+ },
156
+ jukeboxQueueModeId: {
157
+ type: DataTypes.SMALLINT,
158
+ allowNull: false,
159
+ references: {
160
+ model: 'jukebox_queue_mode',
161
+ key: 'id'
162
+ },
163
+ field: 'jukebox_queue_mode_id'
164
+ },
165
+ createdAt: {
166
+ type: DataTypes.DATE,
167
+ allowNull: false,
168
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
169
+ field: 'created_at'
170
+ },
171
+ updatedAt: {
172
+ type: DataTypes.DATE,
173
+ allowNull: false,
174
+ defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
175
+ field: 'updated_at'
176
+ },
177
+ jukeboxStatusId: {
178
+ type: DataTypes.SMALLINT,
179
+ allowNull: false,
180
+ defaultValue: 0,
181
+ references: {
182
+ model: 'jukebox_status',
183
+ key: 'id'
184
+ },
185
+ field: 'jukebox_status_id'
186
+ },
187
+ trackQueue: {
188
+ type: DataTypes.ARRAY(DataTypes.TEXT),
189
+ allowNull: true,
190
+ field: 'track_queue'
191
+ },
192
+ description: {
193
+ type: DataTypes.STRING(512),
194
+ allowNull: true
195
+ },
196
+ stateMachineArn: {
197
+ type: DataTypes.STRING(255),
198
+ allowNull: true,
199
+ field: 'state_machine_arn'
200
+ },
201
+ durationMs: {
202
+ type: DataTypes.INTEGER,
203
+ allowNull: false,
204
+ defaultValue: 0,
205
+ field: 'duration_ms'
206
+ }
207
+ }, {
208
+ sequelize,
209
+ tableName: 'jukebox_session',
210
+ schema: 'eb',
211
+ timestamps: false,
212
+ indexes: [
213
+ {
214
+ name: "jukebox_session_pkey",
215
+ unique: true,
216
+ fields: [
217
+ { name: "id" },
218
+ ]
219
+ },
220
+ ]
221
+ });
222
+ }
223
+ }
@@ -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
+ }