@earbug/db-models 0.0.62 → 0.0.64

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 (135) 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/dist/RadioShow.d.ts +8 -1
  6. package/dist/RadioShow.js +16 -0
  7. package/dist/RadioShowType.d.ts +26 -0
  8. package/dist/RadioShowType.js +42 -0
  9. package/dist/init-models.d.ts +5 -2
  10. package/dist/init-models.js +8 -2
  11. package/model_options.json +3 -0
  12. package/models/AccessControlPreference.ts +53 -0
  13. package/models/AffinityRelationshipType.ts +96 -0
  14. package/models/AffinityTier.ts +131 -0
  15. package/models/AppUser.ts +577 -0
  16. package/models/AppUserDevice.ts +101 -0
  17. package/models/AppUserDeviceClassicBackup20260906.ts +66 -0
  18. package/models/AppUserFollowRelation.ts +128 -0
  19. package/models/AppUserPlatformRelation.ts +150 -0
  20. package/models/CanonAlbum.ts +229 -0
  21. package/models/CanonAlbumExternalReferenceRelation.ts +92 -0
  22. package/models/CanonAlbumGenreRelation.ts +86 -0
  23. package/models/CanonAlbumLabelRelation.ts +86 -0
  24. package/models/CanonAlbumTrackRelation.ts +92 -0
  25. package/models/CanonArtist.ts +356 -0
  26. package/models/CanonArtistAlbumRelation.ts +92 -0
  27. package/models/CanonArtistExternalReferenceRelation.ts +92 -0
  28. package/models/CanonArtistGenreRelation.ts +86 -0
  29. package/models/CanonArtistMemberRelation.ts +86 -0
  30. package/models/CanonArtistTrackRelation.ts +92 -0
  31. package/models/CanonGenre.ts +273 -0
  32. package/models/CanonGenreExternalReferenceRelation.ts +92 -0
  33. package/models/CanonLabel.ts +129 -0
  34. package/models/CanonLabelExternalReferenceRelation.ts +92 -0
  35. package/models/CanonMember.ts +130 -0
  36. package/models/CanonMemberExternalReferenceRelation.ts +99 -0
  37. package/models/CanonToPlatformAlbumRelation.ts +92 -0
  38. package/models/CanonToPlatformArtistRelation.ts +92 -0
  39. package/models/CanonToPlatformGenreRelation.ts +86 -0
  40. package/models/CanonToPlatformTrackRelation.ts +92 -0
  41. package/models/CanonTrack.ts +232 -0
  42. package/models/ConfigParam.ts +62 -0
  43. package/models/ExternalReference.ts +201 -0
  44. package/models/FeedConfig.ts +65 -0
  45. package/models/FeedContentType.ts +124 -0
  46. package/models/GuestUser.ts +137 -0
  47. package/models/JukeboxAccessType.ts +60 -0
  48. package/models/JukeboxCanonGenreRelation.ts +108 -0
  49. package/models/JukeboxInvite.ts +125 -0
  50. package/models/JukeboxQueueEntry.ts +247 -0
  51. package/models/JukeboxQueueMode.ts +60 -0
  52. package/models/JukeboxSession.ts +334 -0
  53. package/models/JukeboxSessionArtistAffinity.ts +136 -0
  54. package/models/JukeboxSessionGenreAffinity.ts +136 -0
  55. package/models/JukeboxStatus.ts +58 -0
  56. package/models/JukeboxTerminationCondition.ts +60 -0
  57. package/models/JukeboxType.ts +60 -0
  58. package/models/JukeboxUser.ts +182 -0
  59. package/models/JukeboxUserType.ts +58 -0
  60. package/models/KnexMigrations.ts +60 -0
  61. package/models/KnexMigrationsLock.ts +48 -0
  62. package/models/MerchItem.ts +198 -0
  63. package/models/MerchOrchestration.ts +130 -0
  64. package/models/MerchPlatform.ts +95 -0
  65. package/models/MerchType.ts +89 -0
  66. package/models/MetricsDaily.ts +79 -0
  67. package/models/MetricsEvent.ts +124 -0
  68. package/models/NewsArticle.ts +177 -0
  69. package/models/NewsPlatform.ts +76 -0
  70. package/models/NewsSite.ts +75 -0
  71. package/models/Notification.ts +214 -0
  72. package/models/NotificationType.ts +66 -0
  73. package/models/PauseStatusType.ts +58 -0
  74. package/models/Platform.ts +189 -0
  75. package/models/PlatformAlbum.ts +398 -0
  76. package/models/PlatformAlbumGenreRelation.ts +86 -0
  77. package/models/PlatformAlbumTrackRelation.ts +92 -0
  78. package/models/PlatformArtist.ts +358 -0
  79. package/models/PlatformArtistAlbumRelation.ts +92 -0
  80. package/models/PlatformArtistGenreRelation.ts +86 -0
  81. package/models/PlatformArtistTrackRelation.ts +92 -0
  82. package/models/PlatformGenre.ts +194 -0
  83. package/models/PlatformTrack.ts +339 -0
  84. package/models/PlatformTrackGenreRelation.ts +86 -0
  85. package/models/PlatformUserAlbum.ts +152 -0
  86. package/models/PlatformUserAlbumTrack.ts +138 -0
  87. package/models/PlatformUserPlaylist.ts +260 -0
  88. package/models/PlatformUserPlaylistArtistAffinity.ts +136 -0
  89. package/models/PlatformUserPlaylistGenreAffinity.ts +136 -0
  90. package/models/PlatformUserPlaylistTrack.ts +162 -0
  91. package/models/PlaybackStatus.ts +47 -0
  92. package/models/PlaybackStatusType.ts +58 -0
  93. package/models/RadioShow.ts +233 -0
  94. package/models/RadioShowGenres.ts +107 -0
  95. package/models/RadioShowMedia.ts +181 -0
  96. package/models/RadioShowPlacement.ts +115 -0
  97. package/models/RadioShowPublishRequests.ts +86 -0
  98. package/models/RadioShowType.ts +66 -0
  99. package/models/State.ts +86 -0
  100. package/models/TrackDeletionReason.ts +58 -0
  101. package/models/UnmatchedAlbum.ts +66 -0
  102. package/models/UnmatchedArtist.ts +81 -0
  103. package/models/UserAbuseReports.ts +232 -0
  104. package/models/UserAffinity.ts +117 -0
  105. package/models/UserArtistAffinity.ts +136 -0
  106. package/models/UserBookmarks.ts +235 -0
  107. package/models/UserComments.ts +271 -0
  108. package/models/UserContacts.ts +155 -0
  109. package/models/UserEngagementFactor.ts +109 -0
  110. package/models/UserGenreAffinity.ts +136 -0
  111. package/models/UserLikes.ts +235 -0
  112. package/models/UserMessages.ts +189 -0
  113. package/models/Versus.ts +438 -0
  114. package/models/VersusAccessType.ts +66 -0
  115. package/models/VersusCoCreator.ts +111 -0
  116. package/models/VersusCreatorScope.ts +66 -0
  117. package/models/VersusEndMode.ts +66 -0
  118. package/models/VersusEndTimerDuration.ts +81 -0
  119. package/models/VersusEndVoteThreshold.ts +67 -0
  120. package/models/VersusEntityKind.ts +79 -0
  121. package/models/VersusOption.ts +258 -0
  122. package/models/VersusPublishIssue.ts +146 -0
  123. package/models/VersusQuestion.ts +123 -0
  124. package/models/VersusQuestionVariableType.ts +66 -0
  125. package/models/VersusVote.ts +99 -0
  126. package/models/VersusVotingListType.ts +66 -0
  127. package/models/VersusVotingMode.ts +66 -0
  128. package/models/index.ts +3 -0
  129. package/models/init-models.ts +1268 -0
  130. package/models/initDb.ts +72 -0
  131. package/models/rdsCaBundle.ts +5 -0
  132. package/package.json +2 -5
  133. package/scripts/generate-and-upload.mjs +123 -0
  134. package/scripts/update-rds-ca-bundle.mjs +44 -0
  135. package/tsconfig.json +52 -0
package/.dockerignore ADDED
@@ -0,0 +1,10 @@
1
+ *
2
+ !.dockerignore
3
+ !Dockerfile.generate
4
+ !package.json
5
+ !package-lock.json
6
+ !model_options.json
7
+ !models/
8
+ !models/**
9
+ !scripts/
10
+ !scripts/generate-and-upload.mjs
@@ -0,0 +1,303 @@
1
+ name: Regenerate Models and Publish
2
+
3
+ on:
4
+ repository_dispatch:
5
+ types: [migration_completed]
6
+
7
+ concurrency:
8
+ group: db-models-publish
9
+ cancel-in-progress: false
10
+
11
+ jobs:
12
+ publish:
13
+ name: Regenerate, Build, and Publish
14
+ runs-on: ubuntu-latest
15
+ timeout-minutes: 30
16
+ environment: dev
17
+ env:
18
+ AWS_REGION: us-east-1
19
+ SSM_PREFIX: /earbug-dev/db-models
20
+ AWS_ACCOUNT_ID: "630596767721"
21
+ ECR_REGISTRY_ACCOUNT_ID: "146319281891"
22
+ permissions:
23
+ contents: read
24
+ id-token: write
25
+ steps:
26
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
27
+ with:
28
+ persist-credentials: false
29
+
30
+ - name: Configure AWS credentials
31
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
32
+ with:
33
+ role-to-assume: arn:aws:iam::630596767721:role/earbug-db-models-ci-dev
34
+ aws-region: ${{ env.AWS_REGION }}
35
+
36
+ - name: Read ECS job configuration
37
+ run: |
38
+ set -euo pipefail
39
+
40
+ get_parameter() {
41
+ aws ssm get-parameter \
42
+ --name "$SSM_PREFIX/$1" \
43
+ --query Parameter.Value \
44
+ --output text
45
+ }
46
+
47
+ ECS_CLUSTER="$(get_parameter cluster-arn)"
48
+ PRIVATE_SUBNETS="$(get_parameter subnets)"
49
+ SECURITY_GROUP_ID="$(get_parameter security-group-id)"
50
+ TASK_ROLE_ARN="$(get_parameter task-role-arn)"
51
+ EXECUTION_ROLE_ARN="$(get_parameter execution-role-arn)"
52
+ LOG_GROUP_NAME="$(get_parameter log-group-name)"
53
+ ECR_REGISTRY="$(get_parameter ecr-registry)"
54
+ ECR_REPO="$(get_parameter ecr-repo)"
55
+ TASK_FAMILY="$(get_parameter task-family)"
56
+ RDS_SECRET_ARN="$(get_parameter rds-secret-arn)"
57
+ PG_SSL="$(get_parameter pg-ssl)"
58
+ ARTIFACT_BUCKET="$(get_parameter artifact-bucket)"
59
+ ARTIFACT_PREFIX="$(get_parameter artifact-prefix)"
60
+
61
+ for name in ECS_CLUSTER PRIVATE_SUBNETS SECURITY_GROUP_ID TASK_ROLE_ARN EXECUTION_ROLE_ARN \
62
+ LOG_GROUP_NAME ECR_REGISTRY ECR_REPO TASK_FAMILY RDS_SECRET_ARN PG_SSL \
63
+ ARTIFACT_BUCKET ARTIFACT_PREFIX; do
64
+ value="${!name}"
65
+ if [ -z "$value" ] || [ "$value" = "None" ] || [[ "$value" == *$'\n'* ]]; then
66
+ echo "::error::Invalid $name value from SSM"
67
+ exit 1
68
+ fi
69
+ done
70
+
71
+ if [ "$PG_SSL" != "true" ]; then
72
+ echo "::error::PG_SSL must be true"
73
+ exit 1
74
+ fi
75
+
76
+ EXPECTED_ECR_REGISTRY="${ECR_REGISTRY_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com"
77
+ EXPECTED_CLUSTER="arn:aws:ecs:${AWS_REGION}:${AWS_ACCOUNT_ID}:cluster/earbug-dev-cluster"
78
+ EXPECTED_TASK_ROLE="arn:aws:iam::${AWS_ACCOUNT_ID}:role/earbug-dev-db-models-ecs-task-role"
79
+ EXPECTED_EXECUTION_ROLE="arn:aws:iam::${AWS_ACCOUNT_ID}:role/earbug-dev-db-models-ecs-execution-role"
80
+
81
+ [ "$ECS_CLUSTER" = "$EXPECTED_CLUSTER" ] || { echo "::error::Unexpected ECS cluster"; exit 1; }
82
+ [ "$TASK_ROLE_ARN" = "$EXPECTED_TASK_ROLE" ] || { echo "::error::Unexpected task role"; exit 1; }
83
+ [ "$EXECUTION_ROLE_ARN" = "$EXPECTED_EXECUTION_ROLE" ] || { echo "::error::Unexpected execution role"; exit 1; }
84
+ [ "$ECR_REGISTRY" = "$EXPECTED_ECR_REGISTRY" ] || { echo "::error::Unexpected ECR registry"; exit 1; }
85
+ [ "$ECR_REPO" = "earbug/db-models-generate" ] || { echo "::error::Unexpected ECR repository"; exit 1; }
86
+ [ "$TASK_FAMILY" = "earbug-dev-db-models" ] || { echo "::error::Unexpected task family"; exit 1; }
87
+ [ "$LOG_GROUP_NAME" = "/ecs/earbug-dev-db-models" ] || { echo "::error::Unexpected log group"; exit 1; }
88
+ [[ "$PRIVATE_SUBNETS" =~ ^subnet-[a-z0-9]+(,subnet-[a-z0-9]+)*$ ]] || { echo "::error::Invalid subnet list"; exit 1; }
89
+ [[ "$SECURITY_GROUP_ID" =~ ^sg-[a-z0-9]+$ ]] || { echo "::error::Invalid security group"; exit 1; }
90
+ [[ "$RDS_SECRET_ARN" =~ ^arn:aws:secretsmanager:${AWS_REGION}:${AWS_ACCOUNT_ID}:secret:rds/earbug-dev/credentials-[A-Za-z0-9_-]+$ ]] || { echo "::error::Unexpected RDS secret ARN"; exit 1; }
91
+ [ "$ARTIFACT_BUCKET" = "earbug-dev-db-models-artifacts" ] || { echo "::error::Unexpected artifact bucket"; exit 1; }
92
+ [ "$ARTIFACT_PREFIX" = "models/" ] || { echo "::error::Unexpected artifact prefix"; exit 1; }
93
+
94
+ {
95
+ printf 'ECS_CLUSTER=%s\n' "$ECS_CLUSTER"
96
+ printf 'PRIVATE_SUBNETS=%s\n' "$PRIVATE_SUBNETS"
97
+ printf 'SECURITY_GROUP_ID=%s\n' "$SECURITY_GROUP_ID"
98
+ printf 'TASK_ROLE_ARN=%s\n' "$TASK_ROLE_ARN"
99
+ printf 'EXECUTION_ROLE_ARN=%s\n' "$EXECUTION_ROLE_ARN"
100
+ printf 'LOG_GROUP_NAME=%s\n' "$LOG_GROUP_NAME"
101
+ printf 'ECR_REGISTRY=%s\n' "$ECR_REGISTRY"
102
+ printf 'ECR_REPO=%s\n' "$ECR_REPO"
103
+ printf 'TASK_FAMILY=%s\n' "$TASK_FAMILY"
104
+ printf 'RDS_SECRET_ARN=%s\n' "$RDS_SECRET_ARN"
105
+ printf 'PG_SSL=%s\n' "$PG_SSL"
106
+ printf 'ARTIFACT_BUCKET=%s\n' "$ARTIFACT_BUCKET"
107
+ printf 'ARTIFACT_PREFIX=%s\n' "$ARTIFACT_PREFIX"
108
+ } >> "$GITHUB_ENV"
109
+
110
+ - name: Build and push generator image
111
+ run: |
112
+ set -euo pipefail
113
+ IMAGE_TAG="${GITHUB_SHA}-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
114
+ IMAGE_URI="${ECR_REGISTRY}/${ECR_REPO}:${IMAGE_TAG}"
115
+ aws ecr get-login-password --region "$AWS_REGION" \
116
+ | docker login --username AWS --password-stdin "$ECR_REGISTRY"
117
+ docker build -f Dockerfile.generate -t "$IMAGE_URI" .
118
+ docker push "$IMAGE_URI"
119
+ echo "IMAGE_URI=$IMAGE_URI" >> "$GITHUB_ENV"
120
+
121
+ - name: Register model-generation task
122
+ run: |
123
+ set -euo pipefail
124
+ ARTIFACT_KEY="${ARTIFACT_PREFIX}${GITHUB_RUN_ID}-${GITHUB_SHA}/models.tgz"
125
+ jq -n \
126
+ --arg family "$TASK_FAMILY" \
127
+ --arg taskRoleArn "$TASK_ROLE_ARN" \
128
+ --arg executionRoleArn "$EXECUTION_ROLE_ARN" \
129
+ --arg image "$IMAGE_URI" \
130
+ --arg region "$AWS_REGION" \
131
+ --arg logGroup "$LOG_GROUP_NAME" \
132
+ --arg secretArn "$RDS_SECRET_ARN" \
133
+ --arg pgSsl "$PG_SSL" \
134
+ --arg artifactBucket "$ARTIFACT_BUCKET" \
135
+ --arg artifactKey "$ARTIFACT_KEY" \
136
+ '{
137
+ family: $family,
138
+ networkMode: "awsvpc",
139
+ requiresCompatibilities: ["FARGATE"],
140
+ cpu: "512",
141
+ memory: "1024",
142
+ taskRoleArn: $taskRoleArn,
143
+ executionRoleArn: $executionRoleArn,
144
+ containerDefinitions: [{
145
+ name: "db-models",
146
+ image: $image,
147
+ essential: true,
148
+ environment: [
149
+ {name: "AWS_REGION", value: $region},
150
+ {name: "PG_SSL", value: $pgSsl},
151
+ {name: "ARTIFACT_BUCKET", value: $artifactBucket},
152
+ {name: "ARTIFACT_KEY", value: $artifactKey}
153
+ ],
154
+ secrets: [
155
+ {name: "PGHOST", valueFrom: ($secretArn + ":host::")},
156
+ {name: "PGPORT", valueFrom: ($secretArn + ":port::")},
157
+ {name: "PGUSER", valueFrom: ($secretArn + ":username::")},
158
+ {name: "PGPASSWORD", valueFrom: ($secretArn + ":password::")},
159
+ {name: "PGDATABASE", valueFrom: ($secretArn + ":dbname::")}
160
+ ],
161
+ logConfiguration: {
162
+ logDriver: "awslogs",
163
+ options: {
164
+ "awslogs-group": $logGroup,
165
+ "awslogs-region": $region,
166
+ "awslogs-stream-prefix": "db-models"
167
+ }
168
+ }
169
+ }]
170
+ }' > /tmp/task-definition.json
171
+
172
+ TASK_DEFINITION_ARN=$(aws ecs register-task-definition \
173
+ --cli-input-json file:///tmp/task-definition.json \
174
+ --query taskDefinition.taskDefinitionArn \
175
+ --output text)
176
+ echo "TASK_DEFINITION_ARN=$TASK_DEFINITION_ARN" >> "$GITHUB_ENV"
177
+ echo "ARTIFACT_KEY=$ARTIFACT_KEY" >> "$GITHUB_ENV"
178
+
179
+ - name: Run model-generation task
180
+ run: |
181
+ set -euo pipefail
182
+ NETWORK_CONFIGURATION=$(jq -cn \
183
+ --arg subnets "$PRIVATE_SUBNETS" \
184
+ --arg securityGroup "$SECURITY_GROUP_ID" \
185
+ '{awsvpcConfiguration: {
186
+ subnets: ($subnets | split(",")),
187
+ securityGroups: [$securityGroup],
188
+ assignPublicIp: "DISABLED"
189
+ }}')
190
+
191
+ RUN_RESULT=$(aws ecs run-task \
192
+ --cluster "$ECS_CLUSTER" \
193
+ --launch-type FARGATE \
194
+ --task-definition "$TASK_DEFINITION_ARN" \
195
+ --network-configuration "$NETWORK_CONFIGURATION" \
196
+ --started-by "github-${GITHUB_RUN_ID}")
197
+ TASK_ARN=$(jq -r '.tasks[0].taskArn // empty' <<< "$RUN_RESULT")
198
+
199
+ if [ -z "$TASK_ARN" ]; then
200
+ jq '.failures' <<< "$RUN_RESULT"
201
+ exit 1
202
+ fi
203
+
204
+ echo "TASK_ARN=$TASK_ARN" >> "$GITHUB_ENV"
205
+ aws ecs wait tasks-stopped --cluster "$ECS_CLUSTER" --tasks "$TASK_ARN"
206
+
207
+ - name: Check model-generation result
208
+ run: |
209
+ set -euo pipefail
210
+ TASK_RESULT=$(aws ecs describe-tasks --cluster "$ECS_CLUSTER" --tasks "$TASK_ARN")
211
+ EXIT_CODE=$(jq -r '.tasks[0].containers[] | select(.name == "db-models") | .exitCode // -1' <<< "$TASK_RESULT")
212
+
213
+ if [ "$EXIT_CODE" -ne 0 ]; then
214
+ TASK_ID="${TASK_ARN##*/}"
215
+ LOG_STREAM="db-models/db-models/${TASK_ID}"
216
+ jq -r '.tasks[0] | "Stopped reason: " + (.stoppedReason // "unknown")' <<< "$TASK_RESULT"
217
+ echo "Task logs: ${LOG_GROUP_NAME}/${LOG_STREAM}"
218
+ exit 1
219
+ fi
220
+
221
+ - name: Download generated models
222
+ run: |
223
+ set -euo pipefail
224
+ aws s3 cp \
225
+ "s3://${ARTIFACT_BUCKET}/${ARTIFACT_KEY}" \
226
+ /tmp/models.tgz \
227
+ --checksum-mode ENABLED \
228
+ --only-show-errors
229
+ rm -rf /tmp/generated-models
230
+ mkdir /tmp/generated-models
231
+ tar -tzf /tmp/models.tgz > /tmp/models.members
232
+ while IFS= read -r member; do
233
+ case "$member" in
234
+ models|models/|models/*) ;;
235
+ *) echo "::error::Artifact contains files outside models/"; exit 1 ;;
236
+ esac
237
+ case "/$member/" in
238
+ */../*) echo "::error::Artifact contains a parent-directory path"; exit 1 ;;
239
+ esac
240
+ case "$member" in
241
+ models/index.ts|models/initDb.ts|models/rdsCaBundle.ts)
242
+ echo "::error::Artifact contains a hand-maintained file"
243
+ exit 1
244
+ ;;
245
+ esac
246
+ done < /tmp/models.members
247
+ tar -tvzf /tmp/models.tgz > /tmp/models.verbose
248
+ if awk 'substr($1, 1, 1) !~ /^[-d]$/ { found=1 } END { exit !found }' /tmp/models.verbose; then
249
+ echo "::error::Artifact contains a link or special file"
250
+ exit 1
251
+ fi
252
+ tar --no-same-owner --no-same-permissions -xzf /tmp/models.tgz -C /tmp/generated-models
253
+ for maintained in index.ts initDb.ts rdsCaBundle.ts; do
254
+ if [ -e "/tmp/generated-models/models/$maintained" ] || [ -L "/tmp/generated-models/models/$maintained" ]; then
255
+ echo "::error::Artifact contains hand-maintained file $maintained"
256
+ exit 1
257
+ fi
258
+ done
259
+ find models -mindepth 1 -maxdepth 1 \
260
+ ! -name index.ts ! -name initDb.ts ! -name rdsCaBundle.ts \
261
+ -exec rm -rf {} +
262
+ cp -a /tmp/generated-models/models/. models/
263
+ git diff --exit-code -- models/index.ts models/initDb.ts models/rdsCaBundle.ts
264
+
265
+ - name: Verify models were generated
266
+ run: |
267
+ set -euo pipefail
268
+ COUNT=$(grep -cE '^import \{ .* as _.* \} from "\./' models/init-models.ts || true)
269
+ echo "init-models.ts imports $COUNT models"
270
+ if [ "$COUNT" -lt 25 ]; then
271
+ echo "::error::Only $COUNT models generated (expected >= 25). Refusing to build or publish."
272
+ exit 1
273
+ fi
274
+
275
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
276
+ with:
277
+ node-version: 24
278
+ registry-url: https://registry.npmjs.org
279
+
280
+ - run: npm ci --ignore-scripts
281
+
282
+ - name: Build
283
+ run: npm run build
284
+
285
+ - name: Bump patch version
286
+ id: version
287
+ run: echo "version=$(npm version patch --no-git-tag-version)" >> "$GITHUB_OUTPUT"
288
+
289
+ - name: Publish to npm
290
+ run: npm publish --access public
291
+
292
+ - name: Commit and push changes
293
+ env:
294
+ GH_TOKEN: ${{ secrets.MODELS_DISPATCH_TOKEN }}
295
+ VERSION: ${{ steps.version.outputs.version }}
296
+ run: |
297
+ set -euo pipefail
298
+ gh auth setup-git
299
+ git config user.name "github-actions[bot]"
300
+ git config user.email "github-actions[bot]@users.noreply.github.com"
301
+ git add models/ package.json
302
+ git commit -m "$VERSION - regenerate dev models and publish"
303
+ git push
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 24
@@ -0,0 +1,19 @@
1
+ FROM amazon/aws-cli@sha256:92de75724b6a746951f0e8b915d86bbccd7cb55aff96cd0cb4f7017272160780 AS awscli
2
+ FROM node:24-bookworm-slim@sha256:eae779f20e0cdf264247f6f3b4e62510d91f168a615117ed38430ba295f55590
3
+
4
+ COPY --from=awscli /usr/local/aws-cli /usr/local/aws-cli
5
+ RUN ln -s /usr/local/aws-cli/v2/current/bin/aws /usr/local/bin/aws
6
+
7
+ WORKDIR /app
8
+
9
+ COPY package.json package-lock.json ./
10
+ RUN npm ci --ignore-scripts \
11
+ && sed -i 's/\^(char/\^(citext|char/' node_modules/sequelize-auto/lib/auto-generator.js
12
+
13
+ COPY --chown=node:node model_options.json ./
14
+ COPY --chown=node:node models ./models
15
+ COPY --chown=node:node scripts/generate-and-upload.mjs ./scripts/generate-and-upload.mjs
16
+
17
+ USER node
18
+
19
+ CMD ["node", "scripts/generate-and-upload.mjs"]
@@ -5,6 +5,7 @@ import type { RadioShowGenres, RadioShowGenresId } from './RadioShowGenres';
5
5
  import type { RadioShowMedia, RadioShowMediaId } from './RadioShowMedia';
6
6
  import type { RadioShowPlacement, RadioShowPlacementId } from './RadioShowPlacement';
7
7
  import type { RadioShowPublishRequests, RadioShowPublishRequestsId } from './RadioShowPublishRequests';
8
+ import type { RadioShowType, RadioShowTypeId } from './RadioShowType';
8
9
  import type { UserAbuseReports, UserAbuseReportsId } from './UserAbuseReports';
9
10
  import type { UserBookmarks, UserBookmarksId } from './UserBookmarks';
10
11
  import type { UserComments, UserCommentsId } from './UserComments';
@@ -18,10 +19,11 @@ export interface RadioShowAttributes {
18
19
  deleted?: boolean;
19
20
  createDate: Date;
20
21
  updateDate: Date;
22
+ radioShowTypeId: number;
21
23
  }
22
24
  export type RadioShowPk = "id";
23
25
  export type RadioShowId = RadioShow[RadioShowPk];
24
- export type RadioShowOptionalAttributes = "id" | "scheduledRelease" | "description" | "deleted" | "createDate" | "updateDate";
26
+ export type RadioShowOptionalAttributes = "id" | "scheduledRelease" | "description" | "deleted" | "createDate" | "updateDate" | "radioShowTypeId";
25
27
  export type RadioShowCreationAttributes = Optional<RadioShowAttributes, RadioShowOptionalAttributes>;
26
28
  export declare class RadioShow extends Model<RadioShowAttributes, RadioShowCreationAttributes> implements RadioShowAttributes {
27
29
  id: string;
@@ -32,6 +34,7 @@ export declare class RadioShow extends Model<RadioShowAttributes, RadioShowCreat
32
34
  deleted?: boolean;
33
35
  createDate: Date;
34
36
  updateDate: Date;
37
+ radioShowTypeId: number;
35
38
  creatorUser: AppUser;
36
39
  getCreatorUser: Sequelize.BelongsToGetAssociationMixin<AppUser>;
37
40
  setCreatorUser: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
@@ -124,5 +127,9 @@ export declare class RadioShow extends Model<RadioShowAttributes, RadioShowCreat
124
127
  hasUserLike: Sequelize.HasManyHasAssociationMixin<UserLikes, UserLikesId>;
125
128
  hasUserLikes: Sequelize.HasManyHasAssociationsMixin<UserLikes, UserLikesId>;
126
129
  countUserLikes: Sequelize.HasManyCountAssociationsMixin;
130
+ radioShowType: RadioShowType;
131
+ getRadioShowType: Sequelize.BelongsToGetAssociationMixin<RadioShowType>;
132
+ setRadioShowType: Sequelize.BelongsToSetAssociationMixin<RadioShowType, RadioShowTypeId>;
133
+ createRadioShowType: Sequelize.BelongsToCreateAssociationMixin<RadioShowType>;
127
134
  static initModel(sequelize: Sequelize.Sequelize): typeof RadioShow;
128
135
  }
package/dist/RadioShow.js CHANGED
@@ -72,6 +72,16 @@ class RadioShow extends sequelize_1.Model {
72
72
  allowNull: false,
73
73
  defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
74
74
  field: 'update_date'
75
+ },
76
+ radioShowTypeId: {
77
+ type: sequelize_1.DataTypes.SMALLINT,
78
+ allowNull: false,
79
+ defaultValue: 1,
80
+ references: {
81
+ model: 'radio_show_type',
82
+ key: 'id'
83
+ },
84
+ field: 'radio_show_type_id'
75
85
  }
76
86
  }, {
77
87
  sequelize,
@@ -85,6 +95,12 @@ class RadioShow extends sequelize_1.Model {
85
95
  { name: "creator_user_id" },
86
96
  ]
87
97
  },
98
+ {
99
+ name: "idx_radio_show_type",
100
+ fields: [
101
+ { name: "radio_show_type_id" },
102
+ ]
103
+ },
88
104
  {
89
105
  name: "radio_show_pkey",
90
106
  unique: true,
@@ -0,0 +1,26 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model } from 'sequelize';
3
+ import type { RadioShow, RadioShowId } from './RadioShow';
4
+ export interface RadioShowTypeAttributes {
5
+ id: number;
6
+ description: string;
7
+ }
8
+ export type RadioShowTypePk = "id";
9
+ export type RadioShowTypeId = RadioShowType[RadioShowTypePk];
10
+ export type RadioShowTypeCreationAttributes = RadioShowTypeAttributes;
11
+ export declare class RadioShowType extends Model<RadioShowTypeAttributes, RadioShowTypeCreationAttributes> implements RadioShowTypeAttributes {
12
+ id: number;
13
+ description: string;
14
+ radioShows: RadioShow[];
15
+ getRadioShows: Sequelize.HasManyGetAssociationsMixin<RadioShow>;
16
+ setRadioShows: Sequelize.HasManySetAssociationsMixin<RadioShow, RadioShowId>;
17
+ addRadioShow: Sequelize.HasManyAddAssociationMixin<RadioShow, RadioShowId>;
18
+ addRadioShows: Sequelize.HasManyAddAssociationsMixin<RadioShow, RadioShowId>;
19
+ createRadioShow: Sequelize.HasManyCreateAssociationMixin<RadioShow>;
20
+ removeRadioShow: Sequelize.HasManyRemoveAssociationMixin<RadioShow, RadioShowId>;
21
+ removeRadioShows: Sequelize.HasManyRemoveAssociationsMixin<RadioShow, RadioShowId>;
22
+ hasRadioShow: Sequelize.HasManyHasAssociationMixin<RadioShow, RadioShowId>;
23
+ hasRadioShows: Sequelize.HasManyHasAssociationsMixin<RadioShow, RadioShowId>;
24
+ countRadioShows: Sequelize.HasManyCountAssociationsMixin;
25
+ static initModel(sequelize: Sequelize.Sequelize): typeof RadioShowType;
26
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RadioShowType = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ class RadioShowType extends sequelize_1.Model {
6
+ static initModel(sequelize) {
7
+ return RadioShowType.init({
8
+ id: {
9
+ type: sequelize_1.DataTypes.SMALLINT,
10
+ allowNull: false,
11
+ primaryKey: true
12
+ },
13
+ description: {
14
+ type: sequelize_1.DataTypes.STRING(64),
15
+ allowNull: false,
16
+ unique: "radio_show_type_description_key"
17
+ }
18
+ }, {
19
+ sequelize,
20
+ tableName: 'radio_show_type',
21
+ schema: 'eb',
22
+ timestamps: false,
23
+ indexes: [
24
+ {
25
+ name: "radio_show_type_description_key",
26
+ unique: true,
27
+ fields: [
28
+ { name: "description" },
29
+ ]
30
+ },
31
+ {
32
+ name: "radio_show_type_pkey",
33
+ unique: true,
34
+ fields: [
35
+ { name: "id" },
36
+ ]
37
+ },
38
+ ]
39
+ });
40
+ }
41
+ }
42
+ exports.RadioShowType = RadioShowType;
@@ -171,6 +171,8 @@ import { RadioShowPlacement as _RadioShowPlacement } from "./RadioShowPlacement"
171
171
  import type { RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes } from "./RadioShowPlacement";
172
172
  import { RadioShowPublishRequests as _RadioShowPublishRequests } from "./RadioShowPublishRequests";
173
173
  import type { RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes } from "./RadioShowPublishRequests";
174
+ import { RadioShowType as _RadioShowType } from "./RadioShowType";
175
+ import type { RadioShowTypeAttributes, RadioShowTypeCreationAttributes } from "./RadioShowType";
174
176
  import { State as _State } from "./State";
175
177
  import type { StateAttributes, StateCreationAttributes } from "./State";
176
178
  import { TrackDeletionReason as _TrackDeletionReason } from "./TrackDeletionReason";
@@ -229,8 +231,8 @@ import { VersusVotingListType as _VersusVotingListType } from "./VersusVotingLis
229
231
  import type { VersusVotingListTypeAttributes, VersusVotingListTypeCreationAttributes } from "./VersusVotingListType";
230
232
  import { VersusVotingMode as _VersusVotingMode } from "./VersusVotingMode";
231
233
  import type { VersusVotingModeAttributes, VersusVotingModeCreationAttributes } from "./VersusVotingMode";
232
- export { _AccessControlPreference as AccessControlPreference, _AffinityRelationshipType as AffinityRelationshipType, _AffinityTier as AffinityTier, _AppUser as AppUser, _AppUserDevice as AppUserDevice, _AppUserDeviceClassicBackup20260906 as AppUserDeviceClassicBackup20260906, _AppUserFollowRelation as AppUserFollowRelation, _AppUserPlatformRelation as AppUserPlatformRelation, _CanonAlbum as CanonAlbum, _CanonAlbumExternalReferenceRelation as CanonAlbumExternalReferenceRelation, _CanonAlbumGenreRelation as CanonAlbumGenreRelation, _CanonAlbumLabelRelation as CanonAlbumLabelRelation, _CanonAlbumTrackRelation as CanonAlbumTrackRelation, _CanonArtist as CanonArtist, _CanonArtistAlbumRelation as CanonArtistAlbumRelation, _CanonArtistExternalReferenceRelation as CanonArtistExternalReferenceRelation, _CanonArtistGenreRelation as CanonArtistGenreRelation, _CanonArtistMemberRelation as CanonArtistMemberRelation, _CanonArtistTrackRelation as CanonArtistTrackRelation, _CanonGenre as CanonGenre, _CanonGenreExternalReferenceRelation as CanonGenreExternalReferenceRelation, _CanonLabel as CanonLabel, _CanonLabelExternalReferenceRelation as CanonLabelExternalReferenceRelation, _CanonMember as CanonMember, _CanonMemberExternalReferenceRelation as CanonMemberExternalReferenceRelation, _CanonToPlatformAlbumRelation as CanonToPlatformAlbumRelation, _CanonToPlatformArtistRelation as CanonToPlatformArtistRelation, _CanonToPlatformGenreRelation as CanonToPlatformGenreRelation, _CanonToPlatformTrackRelation as CanonToPlatformTrackRelation, _CanonTrack as CanonTrack, _ConfigParam as ConfigParam, _ExternalReference as ExternalReference, _FeedConfig as FeedConfig, _FeedContentType as FeedContentType, _GuestUser as GuestUser, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity, _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MerchItem as MerchItem, _MerchOrchestration as MerchOrchestration, _MerchPlatform as MerchPlatform, _MerchType as MerchType, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsArticle as NewsArticle, _NewsPlatform as NewsPlatform, _NewsSite as NewsSite, _Notification as Notification, _NotificationType as NotificationType, _PauseStatusType as PauseStatusType, _Platform as Platform, _PlatformAlbum as PlatformAlbum, _PlatformAlbumGenreRelation as PlatformAlbumGenreRelation, _PlatformAlbumTrackRelation as PlatformAlbumTrackRelation, _PlatformArtist as PlatformArtist, _PlatformArtistAlbumRelation as PlatformArtistAlbumRelation, _PlatformArtistGenreRelation as PlatformArtistGenreRelation, _PlatformArtistTrackRelation as PlatformArtistTrackRelation, _PlatformGenre as PlatformGenre, _PlatformTrack as PlatformTrack, _PlatformTrackGenreRelation as PlatformTrackGenreRelation, _PlatformUserAlbum as PlatformUserAlbum, _PlatformUserAlbumTrack as PlatformUserAlbumTrack, _PlatformUserPlaylist as PlatformUserPlaylist, _PlatformUserPlaylistArtistAffinity as PlatformUserPlaylistArtistAffinity, _PlatformUserPlaylistGenreAffinity as PlatformUserPlaylistGenreAffinity, _PlatformUserPlaylistTrack as PlatformUserPlaylistTrack, _PlaybackStatus as PlaybackStatus, _PlaybackStatusType as PlaybackStatusType, _RadioShow as RadioShow, _RadioShowGenres as RadioShowGenres, _RadioShowMedia as RadioShowMedia, _RadioShowPlacement as RadioShowPlacement, _RadioShowPublishRequests as RadioShowPublishRequests, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserAbuseReports as UserAbuseReports, _UserAffinity as UserAffinity, _UserArtistAffinity as UserArtistAffinity, _UserBookmarks as UserBookmarks, _UserComments as UserComments, _UserContacts as UserContacts, _UserEngagementFactor as UserEngagementFactor, _UserGenreAffinity as UserGenreAffinity, _UserLikes as UserLikes, _UserMessages as UserMessages, _Versus as Versus, _VersusAccessType as VersusAccessType, _VersusCoCreator as VersusCoCreator, _VersusCreatorScope as VersusCreatorScope, _VersusEndMode as VersusEndMode, _VersusEndTimerDuration as VersusEndTimerDuration, _VersusEndVoteThreshold as VersusEndVoteThreshold, _VersusEntityKind as VersusEntityKind, _VersusOption as VersusOption, _VersusPublishIssue as VersusPublishIssue, _VersusQuestion as VersusQuestion, _VersusQuestionVariableType as VersusQuestionVariableType, _VersusVote as VersusVote, _VersusVotingListType as VersusVotingListType, _VersusVotingMode as VersusVotingMode, };
233
- export type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes, AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes, AffinityTierAttributes, AffinityTierCreationAttributes, AppUserAttributes, AppUserCreationAttributes, AppUserDeviceAttributes, AppUserDeviceCreationAttributes, AppUserDeviceClassicBackup20260906Attributes, AppUserDeviceClassicBackup20260906CreationAttributes, AppUserFollowRelationAttributes, AppUserFollowRelationCreationAttributes, AppUserPlatformRelationAttributes, AppUserPlatformRelationCreationAttributes, CanonAlbumAttributes, CanonAlbumCreationAttributes, CanonAlbumExternalReferenceRelationAttributes, CanonAlbumExternalReferenceRelationCreationAttributes, CanonAlbumGenreRelationAttributes, CanonAlbumGenreRelationCreationAttributes, CanonAlbumLabelRelationAttributes, CanonAlbumLabelRelationCreationAttributes, CanonAlbumTrackRelationAttributes, CanonAlbumTrackRelationCreationAttributes, CanonArtistAttributes, CanonArtistCreationAttributes, CanonArtistAlbumRelationAttributes, CanonArtistAlbumRelationCreationAttributes, CanonArtistExternalReferenceRelationAttributes, CanonArtistExternalReferenceRelationCreationAttributes, CanonArtistGenreRelationAttributes, CanonArtistGenreRelationCreationAttributes, CanonArtistMemberRelationAttributes, CanonArtistMemberRelationCreationAttributes, CanonArtistTrackRelationAttributes, CanonArtistTrackRelationCreationAttributes, CanonGenreAttributes, CanonGenreCreationAttributes, CanonGenreExternalReferenceRelationAttributes, CanonGenreExternalReferenceRelationCreationAttributes, CanonLabelAttributes, CanonLabelCreationAttributes, CanonLabelExternalReferenceRelationAttributes, CanonLabelExternalReferenceRelationCreationAttributes, CanonMemberAttributes, CanonMemberCreationAttributes, CanonMemberExternalReferenceRelationAttributes, CanonMemberExternalReferenceRelationCreationAttributes, CanonToPlatformAlbumRelationAttributes, CanonToPlatformAlbumRelationCreationAttributes, CanonToPlatformArtistRelationAttributes, CanonToPlatformArtistRelationCreationAttributes, CanonToPlatformGenreRelationAttributes, CanonToPlatformGenreRelationCreationAttributes, CanonToPlatformTrackRelationAttributes, CanonToPlatformTrackRelationCreationAttributes, CanonTrackAttributes, CanonTrackCreationAttributes, ConfigParamAttributes, ConfigParamCreationAttributes, ExternalReferenceAttributes, ExternalReferenceCreationAttributes, FeedConfigAttributes, FeedConfigCreationAttributes, FeedContentTypeAttributes, FeedContentTypeCreationAttributes, GuestUserAttributes, GuestUserCreationAttributes, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes, JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MerchItemAttributes, MerchItemCreationAttributes, MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes, MerchPlatformAttributes, MerchPlatformCreationAttributes, MerchTypeAttributes, MerchTypeCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsArticleAttributes, NewsArticleCreationAttributes, NewsPlatformAttributes, NewsPlatformCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, NotificationAttributes, NotificationCreationAttributes, NotificationTypeAttributes, NotificationTypeCreationAttributes, PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes, PlatformAttributes, PlatformCreationAttributes, PlatformAlbumAttributes, PlatformAlbumCreationAttributes, PlatformAlbumGenreRelationAttributes, PlatformAlbumGenreRelationCreationAttributes, PlatformAlbumTrackRelationAttributes, PlatformAlbumTrackRelationCreationAttributes, PlatformArtistAttributes, PlatformArtistCreationAttributes, PlatformArtistAlbumRelationAttributes, PlatformArtistAlbumRelationCreationAttributes, PlatformArtistGenreRelationAttributes, PlatformArtistGenreRelationCreationAttributes, PlatformArtistTrackRelationAttributes, PlatformArtistTrackRelationCreationAttributes, PlatformGenreAttributes, PlatformGenreCreationAttributes, PlatformTrackAttributes, PlatformTrackCreationAttributes, PlatformTrackGenreRelationAttributes, PlatformTrackGenreRelationCreationAttributes, PlatformUserAlbumAttributes, PlatformUserAlbumCreationAttributes, PlatformUserAlbumTrackAttributes, PlatformUserAlbumTrackCreationAttributes, PlatformUserPlaylistAttributes, PlatformUserPlaylistCreationAttributes, PlatformUserPlaylistArtistAffinityAttributes, PlatformUserPlaylistArtistAffinityCreationAttributes, PlatformUserPlaylistGenreAffinityAttributes, PlatformUserPlaylistGenreAffinityCreationAttributes, PlatformUserPlaylistTrackAttributes, PlatformUserPlaylistTrackCreationAttributes, PlaybackStatusAttributes, PlaybackStatusCreationAttributes, PlaybackStatusTypeAttributes, PlaybackStatusTypeCreationAttributes, RadioShowAttributes, RadioShowCreationAttributes, RadioShowGenresAttributes, RadioShowGenresCreationAttributes, RadioShowMediaAttributes, RadioShowMediaCreationAttributes, RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes, RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserAbuseReportsAttributes, UserAbuseReportsCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes, UserBookmarksAttributes, UserBookmarksCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, UserMessagesAttributes, UserMessagesCreationAttributes, VersusAttributes, VersusCreationAttributes, VersusAccessTypeAttributes, VersusAccessTypeCreationAttributes, VersusCoCreatorAttributes, VersusCoCreatorCreationAttributes, VersusCreatorScopeAttributes, VersusCreatorScopeCreationAttributes, VersusEndModeAttributes, VersusEndModeCreationAttributes, VersusEndTimerDurationAttributes, VersusEndTimerDurationCreationAttributes, VersusEndVoteThresholdAttributes, VersusEndVoteThresholdCreationAttributes, VersusEntityKindAttributes, VersusEntityKindCreationAttributes, VersusOptionAttributes, VersusOptionCreationAttributes, VersusPublishIssueAttributes, VersusPublishIssueCreationAttributes, VersusQuestionAttributes, VersusQuestionCreationAttributes, VersusQuestionVariableTypeAttributes, VersusQuestionVariableTypeCreationAttributes, VersusVoteAttributes, VersusVoteCreationAttributes, VersusVotingListTypeAttributes, VersusVotingListTypeCreationAttributes, VersusVotingModeAttributes, VersusVotingModeCreationAttributes, };
234
+ export { _AccessControlPreference as AccessControlPreference, _AffinityRelationshipType as AffinityRelationshipType, _AffinityTier as AffinityTier, _AppUser as AppUser, _AppUserDevice as AppUserDevice, _AppUserDeviceClassicBackup20260906 as AppUserDeviceClassicBackup20260906, _AppUserFollowRelation as AppUserFollowRelation, _AppUserPlatformRelation as AppUserPlatformRelation, _CanonAlbum as CanonAlbum, _CanonAlbumExternalReferenceRelation as CanonAlbumExternalReferenceRelation, _CanonAlbumGenreRelation as CanonAlbumGenreRelation, _CanonAlbumLabelRelation as CanonAlbumLabelRelation, _CanonAlbumTrackRelation as CanonAlbumTrackRelation, _CanonArtist as CanonArtist, _CanonArtistAlbumRelation as CanonArtistAlbumRelation, _CanonArtistExternalReferenceRelation as CanonArtistExternalReferenceRelation, _CanonArtistGenreRelation as CanonArtistGenreRelation, _CanonArtistMemberRelation as CanonArtistMemberRelation, _CanonArtistTrackRelation as CanonArtistTrackRelation, _CanonGenre as CanonGenre, _CanonGenreExternalReferenceRelation as CanonGenreExternalReferenceRelation, _CanonLabel as CanonLabel, _CanonLabelExternalReferenceRelation as CanonLabelExternalReferenceRelation, _CanonMember as CanonMember, _CanonMemberExternalReferenceRelation as CanonMemberExternalReferenceRelation, _CanonToPlatformAlbumRelation as CanonToPlatformAlbumRelation, _CanonToPlatformArtistRelation as CanonToPlatformArtistRelation, _CanonToPlatformGenreRelation as CanonToPlatformGenreRelation, _CanonToPlatformTrackRelation as CanonToPlatformTrackRelation, _CanonTrack as CanonTrack, _ConfigParam as ConfigParam, _ExternalReference as ExternalReference, _FeedConfig as FeedConfig, _FeedContentType as FeedContentType, _GuestUser as GuestUser, _JukeboxAccessType as JukeboxAccessType, _JukeboxCanonGenreRelation as JukeboxCanonGenreRelation, _JukeboxInvite as JukeboxInvite, _JukeboxQueueEntry as JukeboxQueueEntry, _JukeboxQueueMode as JukeboxQueueMode, _JukeboxSession as JukeboxSession, _JukeboxSessionArtistAffinity as JukeboxSessionArtistAffinity, _JukeboxSessionGenreAffinity as JukeboxSessionGenreAffinity, _JukeboxStatus as JukeboxStatus, _JukeboxTerminationCondition as JukeboxTerminationCondition, _JukeboxType as JukeboxType, _JukeboxUser as JukeboxUser, _JukeboxUserType as JukeboxUserType, _KnexMigrations as KnexMigrations, _KnexMigrationsLock as KnexMigrationsLock, _MerchItem as MerchItem, _MerchOrchestration as MerchOrchestration, _MerchPlatform as MerchPlatform, _MerchType as MerchType, _MetricsDaily as MetricsDaily, _MetricsEvent as MetricsEvent, _NewsArticle as NewsArticle, _NewsPlatform as NewsPlatform, _NewsSite as NewsSite, _Notification as Notification, _NotificationType as NotificationType, _PauseStatusType as PauseStatusType, _Platform as Platform, _PlatformAlbum as PlatformAlbum, _PlatformAlbumGenreRelation as PlatformAlbumGenreRelation, _PlatformAlbumTrackRelation as PlatformAlbumTrackRelation, _PlatformArtist as PlatformArtist, _PlatformArtistAlbumRelation as PlatformArtistAlbumRelation, _PlatformArtistGenreRelation as PlatformArtistGenreRelation, _PlatformArtistTrackRelation as PlatformArtistTrackRelation, _PlatformGenre as PlatformGenre, _PlatformTrack as PlatformTrack, _PlatformTrackGenreRelation as PlatformTrackGenreRelation, _PlatformUserAlbum as PlatformUserAlbum, _PlatformUserAlbumTrack as PlatformUserAlbumTrack, _PlatformUserPlaylist as PlatformUserPlaylist, _PlatformUserPlaylistArtistAffinity as PlatformUserPlaylistArtistAffinity, _PlatformUserPlaylistGenreAffinity as PlatformUserPlaylistGenreAffinity, _PlatformUserPlaylistTrack as PlatformUserPlaylistTrack, _PlaybackStatus as PlaybackStatus, _PlaybackStatusType as PlaybackStatusType, _RadioShow as RadioShow, _RadioShowGenres as RadioShowGenres, _RadioShowMedia as RadioShowMedia, _RadioShowPlacement as RadioShowPlacement, _RadioShowPublishRequests as RadioShowPublishRequests, _RadioShowType as RadioShowType, _State as State, _TrackDeletionReason as TrackDeletionReason, _UnmatchedAlbum as UnmatchedAlbum, _UnmatchedArtist as UnmatchedArtist, _UserAbuseReports as UserAbuseReports, _UserAffinity as UserAffinity, _UserArtistAffinity as UserArtistAffinity, _UserBookmarks as UserBookmarks, _UserComments as UserComments, _UserContacts as UserContacts, _UserEngagementFactor as UserEngagementFactor, _UserGenreAffinity as UserGenreAffinity, _UserLikes as UserLikes, _UserMessages as UserMessages, _Versus as Versus, _VersusAccessType as VersusAccessType, _VersusCoCreator as VersusCoCreator, _VersusCreatorScope as VersusCreatorScope, _VersusEndMode as VersusEndMode, _VersusEndTimerDuration as VersusEndTimerDuration, _VersusEndVoteThreshold as VersusEndVoteThreshold, _VersusEntityKind as VersusEntityKind, _VersusOption as VersusOption, _VersusPublishIssue as VersusPublishIssue, _VersusQuestion as VersusQuestion, _VersusQuestionVariableType as VersusQuestionVariableType, _VersusVote as VersusVote, _VersusVotingListType as VersusVotingListType, _VersusVotingMode as VersusVotingMode, };
235
+ export type { AccessControlPreferenceAttributes, AccessControlPreferenceCreationAttributes, AffinityRelationshipTypeAttributes, AffinityRelationshipTypeCreationAttributes, AffinityTierAttributes, AffinityTierCreationAttributes, AppUserAttributes, AppUserCreationAttributes, AppUserDeviceAttributes, AppUserDeviceCreationAttributes, AppUserDeviceClassicBackup20260906Attributes, AppUserDeviceClassicBackup20260906CreationAttributes, AppUserFollowRelationAttributes, AppUserFollowRelationCreationAttributes, AppUserPlatformRelationAttributes, AppUserPlatformRelationCreationAttributes, CanonAlbumAttributes, CanonAlbumCreationAttributes, CanonAlbumExternalReferenceRelationAttributes, CanonAlbumExternalReferenceRelationCreationAttributes, CanonAlbumGenreRelationAttributes, CanonAlbumGenreRelationCreationAttributes, CanonAlbumLabelRelationAttributes, CanonAlbumLabelRelationCreationAttributes, CanonAlbumTrackRelationAttributes, CanonAlbumTrackRelationCreationAttributes, CanonArtistAttributes, CanonArtistCreationAttributes, CanonArtistAlbumRelationAttributes, CanonArtistAlbumRelationCreationAttributes, CanonArtistExternalReferenceRelationAttributes, CanonArtistExternalReferenceRelationCreationAttributes, CanonArtistGenreRelationAttributes, CanonArtistGenreRelationCreationAttributes, CanonArtistMemberRelationAttributes, CanonArtistMemberRelationCreationAttributes, CanonArtistTrackRelationAttributes, CanonArtistTrackRelationCreationAttributes, CanonGenreAttributes, CanonGenreCreationAttributes, CanonGenreExternalReferenceRelationAttributes, CanonGenreExternalReferenceRelationCreationAttributes, CanonLabelAttributes, CanonLabelCreationAttributes, CanonLabelExternalReferenceRelationAttributes, CanonLabelExternalReferenceRelationCreationAttributes, CanonMemberAttributes, CanonMemberCreationAttributes, CanonMemberExternalReferenceRelationAttributes, CanonMemberExternalReferenceRelationCreationAttributes, CanonToPlatformAlbumRelationAttributes, CanonToPlatformAlbumRelationCreationAttributes, CanonToPlatformArtistRelationAttributes, CanonToPlatformArtistRelationCreationAttributes, CanonToPlatformGenreRelationAttributes, CanonToPlatformGenreRelationCreationAttributes, CanonToPlatformTrackRelationAttributes, CanonToPlatformTrackRelationCreationAttributes, CanonTrackAttributes, CanonTrackCreationAttributes, ConfigParamAttributes, ConfigParamCreationAttributes, ExternalReferenceAttributes, ExternalReferenceCreationAttributes, FeedConfigAttributes, FeedConfigCreationAttributes, FeedContentTypeAttributes, FeedContentTypeCreationAttributes, GuestUserAttributes, GuestUserCreationAttributes, JukeboxAccessTypeAttributes, JukeboxAccessTypeCreationAttributes, JukeboxCanonGenreRelationAttributes, JukeboxCanonGenreRelationCreationAttributes, JukeboxInviteAttributes, JukeboxInviteCreationAttributes, JukeboxQueueEntryAttributes, JukeboxQueueEntryCreationAttributes, JukeboxQueueModeAttributes, JukeboxQueueModeCreationAttributes, JukeboxSessionAttributes, JukeboxSessionCreationAttributes, JukeboxSessionArtistAffinityAttributes, JukeboxSessionArtistAffinityCreationAttributes, JukeboxSessionGenreAffinityAttributes, JukeboxSessionGenreAffinityCreationAttributes, JukeboxStatusAttributes, JukeboxStatusCreationAttributes, JukeboxTerminationConditionAttributes, JukeboxTerminationConditionCreationAttributes, JukeboxTypeAttributes, JukeboxTypeCreationAttributes, JukeboxUserAttributes, JukeboxUserCreationAttributes, JukeboxUserTypeAttributes, JukeboxUserTypeCreationAttributes, KnexMigrationsAttributes, KnexMigrationsCreationAttributes, KnexMigrationsLockAttributes, KnexMigrationsLockCreationAttributes, MerchItemAttributes, MerchItemCreationAttributes, MerchOrchestrationAttributes, MerchOrchestrationCreationAttributes, MerchPlatformAttributes, MerchPlatformCreationAttributes, MerchTypeAttributes, MerchTypeCreationAttributes, MetricsDailyAttributes, MetricsDailyCreationAttributes, MetricsEventAttributes, MetricsEventCreationAttributes, NewsArticleAttributes, NewsArticleCreationAttributes, NewsPlatformAttributes, NewsPlatformCreationAttributes, NewsSiteAttributes, NewsSiteCreationAttributes, NotificationAttributes, NotificationCreationAttributes, NotificationTypeAttributes, NotificationTypeCreationAttributes, PauseStatusTypeAttributes, PauseStatusTypeCreationAttributes, PlatformAttributes, PlatformCreationAttributes, PlatformAlbumAttributes, PlatformAlbumCreationAttributes, PlatformAlbumGenreRelationAttributes, PlatformAlbumGenreRelationCreationAttributes, PlatformAlbumTrackRelationAttributes, PlatformAlbumTrackRelationCreationAttributes, PlatformArtistAttributes, PlatformArtistCreationAttributes, PlatformArtistAlbumRelationAttributes, PlatformArtistAlbumRelationCreationAttributes, PlatformArtistGenreRelationAttributes, PlatformArtistGenreRelationCreationAttributes, PlatformArtistTrackRelationAttributes, PlatformArtistTrackRelationCreationAttributes, PlatformGenreAttributes, PlatformGenreCreationAttributes, PlatformTrackAttributes, PlatformTrackCreationAttributes, PlatformTrackGenreRelationAttributes, PlatformTrackGenreRelationCreationAttributes, PlatformUserAlbumAttributes, PlatformUserAlbumCreationAttributes, PlatformUserAlbumTrackAttributes, PlatformUserAlbumTrackCreationAttributes, PlatformUserPlaylistAttributes, PlatformUserPlaylistCreationAttributes, PlatformUserPlaylistArtistAffinityAttributes, PlatformUserPlaylistArtistAffinityCreationAttributes, PlatformUserPlaylistGenreAffinityAttributes, PlatformUserPlaylistGenreAffinityCreationAttributes, PlatformUserPlaylistTrackAttributes, PlatformUserPlaylistTrackCreationAttributes, PlaybackStatusAttributes, PlaybackStatusCreationAttributes, PlaybackStatusTypeAttributes, PlaybackStatusTypeCreationAttributes, RadioShowAttributes, RadioShowCreationAttributes, RadioShowGenresAttributes, RadioShowGenresCreationAttributes, RadioShowMediaAttributes, RadioShowMediaCreationAttributes, RadioShowPlacementAttributes, RadioShowPlacementCreationAttributes, RadioShowPublishRequestsAttributes, RadioShowPublishRequestsCreationAttributes, RadioShowTypeAttributes, RadioShowTypeCreationAttributes, StateAttributes, StateCreationAttributes, TrackDeletionReasonAttributes, TrackDeletionReasonCreationAttributes, UnmatchedAlbumAttributes, UnmatchedAlbumCreationAttributes, UnmatchedArtistAttributes, UnmatchedArtistCreationAttributes, UserAbuseReportsAttributes, UserAbuseReportsCreationAttributes, UserAffinityAttributes, UserAffinityCreationAttributes, UserArtistAffinityAttributes, UserArtistAffinityCreationAttributes, UserBookmarksAttributes, UserBookmarksCreationAttributes, UserCommentsAttributes, UserCommentsCreationAttributes, UserContactsAttributes, UserContactsCreationAttributes, UserEngagementFactorAttributes, UserEngagementFactorCreationAttributes, UserGenreAffinityAttributes, UserGenreAffinityCreationAttributes, UserLikesAttributes, UserLikesCreationAttributes, UserMessagesAttributes, UserMessagesCreationAttributes, VersusAttributes, VersusCreationAttributes, VersusAccessTypeAttributes, VersusAccessTypeCreationAttributes, VersusCoCreatorAttributes, VersusCoCreatorCreationAttributes, VersusCreatorScopeAttributes, VersusCreatorScopeCreationAttributes, VersusEndModeAttributes, VersusEndModeCreationAttributes, VersusEndTimerDurationAttributes, VersusEndTimerDurationCreationAttributes, VersusEndVoteThresholdAttributes, VersusEndVoteThresholdCreationAttributes, VersusEntityKindAttributes, VersusEntityKindCreationAttributes, VersusOptionAttributes, VersusOptionCreationAttributes, VersusPublishIssueAttributes, VersusPublishIssueCreationAttributes, VersusQuestionAttributes, VersusQuestionCreationAttributes, VersusQuestionVariableTypeAttributes, VersusQuestionVariableTypeCreationAttributes, VersusVoteAttributes, VersusVoteCreationAttributes, VersusVotingListTypeAttributes, VersusVotingListTypeCreationAttributes, VersusVotingModeAttributes, VersusVotingModeCreationAttributes, };
234
236
  export declare function initModels(sequelize: Sequelize): {
235
237
  AccessControlPreference: typeof _AccessControlPreference;
236
238
  AffinityRelationshipType: typeof _AffinityRelationshipType;
@@ -318,6 +320,7 @@ export declare function initModels(sequelize: Sequelize): {
318
320
  RadioShowMedia: typeof _RadioShowMedia;
319
321
  RadioShowPlacement: typeof _RadioShowPlacement;
320
322
  RadioShowPublishRequests: typeof _RadioShowPublishRequests;
323
+ RadioShowType: typeof _RadioShowType;
321
324
  State: typeof _State;
322
325
  TrackDeletionReason: typeof _TrackDeletionReason;
323
326
  UnmatchedAlbum: typeof _UnmatchedAlbum;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KnexMigrationsLock = exports.KnexMigrations = exports.JukeboxUserType = exports.JukeboxUser = exports.JukeboxType = exports.JukeboxTerminationCondition = exports.JukeboxStatus = exports.JukeboxSessionGenreAffinity = exports.JukeboxSessionArtistAffinity = exports.JukeboxSession = exports.JukeboxQueueMode = exports.JukeboxQueueEntry = exports.JukeboxInvite = exports.JukeboxCanonGenreRelation = exports.JukeboxAccessType = exports.GuestUser = exports.FeedContentType = exports.FeedConfig = exports.ExternalReference = exports.ConfigParam = exports.CanonTrack = exports.CanonToPlatformTrackRelation = exports.CanonToPlatformGenreRelation = exports.CanonToPlatformArtistRelation = exports.CanonToPlatformAlbumRelation = exports.CanonMemberExternalReferenceRelation = exports.CanonMember = exports.CanonLabelExternalReferenceRelation = exports.CanonLabel = exports.CanonGenreExternalReferenceRelation = exports.CanonGenre = exports.CanonArtistTrackRelation = exports.CanonArtistMemberRelation = exports.CanonArtistGenreRelation = exports.CanonArtistExternalReferenceRelation = exports.CanonArtistAlbumRelation = exports.CanonArtist = exports.CanonAlbumTrackRelation = exports.CanonAlbumLabelRelation = exports.CanonAlbumGenreRelation = exports.CanonAlbumExternalReferenceRelation = exports.CanonAlbum = exports.AppUserPlatformRelation = exports.AppUserFollowRelation = exports.AppUserDeviceClassicBackup20260906 = exports.AppUserDevice = exports.AppUser = exports.AffinityTier = exports.AffinityRelationshipType = exports.AccessControlPreference = void 0;
4
- exports.UserMessages = exports.UserLikes = exports.UserGenreAffinity = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = exports.UserBookmarks = exports.UserArtistAffinity = exports.UserAffinity = exports.UserAbuseReports = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = exports.RadioShowPublishRequests = exports.RadioShowPlacement = exports.RadioShowMedia = exports.RadioShowGenres = exports.RadioShow = exports.PlaybackStatusType = exports.PlaybackStatus = exports.PlatformUserPlaylistTrack = exports.PlatformUserPlaylistGenreAffinity = exports.PlatformUserPlaylistArtistAffinity = exports.PlatformUserPlaylist = exports.PlatformUserAlbumTrack = exports.PlatformUserAlbum = exports.PlatformTrackGenreRelation = exports.PlatformTrack = exports.PlatformGenre = exports.PlatformArtistTrackRelation = exports.PlatformArtistGenreRelation = exports.PlatformArtistAlbumRelation = exports.PlatformArtist = exports.PlatformAlbumTrackRelation = exports.PlatformAlbumGenreRelation = exports.PlatformAlbum = exports.Platform = exports.PauseStatusType = exports.NotificationType = exports.Notification = exports.NewsSite = exports.NewsPlatform = exports.NewsArticle = exports.MetricsEvent = exports.MetricsDaily = exports.MerchType = exports.MerchPlatform = exports.MerchOrchestration = exports.MerchItem = void 0;
5
- exports.VersusVotingMode = exports.VersusVotingListType = exports.VersusVote = exports.VersusQuestionVariableType = exports.VersusQuestion = exports.VersusPublishIssue = exports.VersusOption = exports.VersusEntityKind = exports.VersusEndVoteThreshold = exports.VersusEndTimerDuration = exports.VersusEndMode = exports.VersusCreatorScope = exports.VersusCoCreator = exports.VersusAccessType = exports.Versus = void 0;
4
+ exports.UserLikes = exports.UserGenreAffinity = exports.UserEngagementFactor = exports.UserContacts = exports.UserComments = exports.UserBookmarks = exports.UserArtistAffinity = exports.UserAffinity = exports.UserAbuseReports = exports.UnmatchedArtist = exports.UnmatchedAlbum = exports.TrackDeletionReason = exports.State = exports.RadioShowType = exports.RadioShowPublishRequests = exports.RadioShowPlacement = exports.RadioShowMedia = exports.RadioShowGenres = exports.RadioShow = exports.PlaybackStatusType = exports.PlaybackStatus = exports.PlatformUserPlaylistTrack = exports.PlatformUserPlaylistGenreAffinity = exports.PlatformUserPlaylistArtistAffinity = exports.PlatformUserPlaylist = exports.PlatformUserAlbumTrack = exports.PlatformUserAlbum = exports.PlatformTrackGenreRelation = exports.PlatformTrack = exports.PlatformGenre = exports.PlatformArtistTrackRelation = exports.PlatformArtistGenreRelation = exports.PlatformArtistAlbumRelation = exports.PlatformArtist = exports.PlatformAlbumTrackRelation = exports.PlatformAlbumGenreRelation = exports.PlatformAlbum = exports.Platform = exports.PauseStatusType = exports.NotificationType = exports.Notification = exports.NewsSite = exports.NewsPlatform = exports.NewsArticle = exports.MetricsEvent = exports.MetricsDaily = exports.MerchType = exports.MerchPlatform = exports.MerchOrchestration = exports.MerchItem = void 0;
5
+ exports.VersusVotingMode = exports.VersusVotingListType = exports.VersusVote = exports.VersusQuestionVariableType = exports.VersusQuestion = exports.VersusPublishIssue = exports.VersusOption = exports.VersusEntityKind = exports.VersusEndVoteThreshold = exports.VersusEndTimerDuration = exports.VersusEndMode = exports.VersusCreatorScope = exports.VersusCoCreator = exports.VersusAccessType = exports.Versus = exports.UserMessages = void 0;
6
6
  exports.initModels = initModels;
7
7
  const AccessControlPreference_1 = require("./AccessControlPreference");
8
8
  Object.defineProperty(exports, "AccessControlPreference", { enumerable: true, get: function () { return AccessControlPreference_1.AccessControlPreference; } });
@@ -176,6 +176,8 @@ const RadioShowPlacement_1 = require("./RadioShowPlacement");
176
176
  Object.defineProperty(exports, "RadioShowPlacement", { enumerable: true, get: function () { return RadioShowPlacement_1.RadioShowPlacement; } });
177
177
  const RadioShowPublishRequests_1 = require("./RadioShowPublishRequests");
178
178
  Object.defineProperty(exports, "RadioShowPublishRequests", { enumerable: true, get: function () { return RadioShowPublishRequests_1.RadioShowPublishRequests; } });
179
+ const RadioShowType_1 = require("./RadioShowType");
180
+ Object.defineProperty(exports, "RadioShowType", { enumerable: true, get: function () { return RadioShowType_1.RadioShowType; } });
179
181
  const State_1 = require("./State");
180
182
  Object.defineProperty(exports, "State", { enumerable: true, get: function () { return State_1.State; } });
181
183
  const TrackDeletionReason_1 = require("./TrackDeletionReason");
@@ -321,6 +323,7 @@ function initModels(sequelize) {
321
323
  const RadioShowMedia = RadioShowMedia_1.RadioShowMedia.initModel(sequelize);
322
324
  const RadioShowPlacement = RadioShowPlacement_1.RadioShowPlacement.initModel(sequelize);
323
325
  const RadioShowPublishRequests = RadioShowPublishRequests_1.RadioShowPublishRequests.initModel(sequelize);
326
+ const RadioShowType = RadioShowType_1.RadioShowType.initModel(sequelize);
324
327
  const State = State_1.State.initModel(sequelize);
325
328
  const TrackDeletionReason = TrackDeletionReason_1.TrackDeletionReason.initModel(sequelize);
326
329
  const UnmatchedAlbum = UnmatchedAlbum_1.UnmatchedAlbum.initModel(sequelize);
@@ -742,6 +745,8 @@ function initModels(sequelize) {
742
745
  RadioShow.hasMany(UserLikes, { as: "userLikes", foreignKey: "radioShowId" });
743
746
  UserAbuseReports.belongsTo(RadioShowMedia, { as: "radioShowMedium", foreignKey: "radioShowMediaId" });
744
747
  RadioShowMedia.hasMany(UserAbuseReports, { as: "userAbuseReports", foreignKey: "radioShowMediaId" });
748
+ RadioShow.belongsTo(RadioShowType, { as: "radioShowType", foreignKey: "radioShowTypeId" });
749
+ RadioShowType.hasMany(RadioShow, { as: "radioShows", foreignKey: "radioShowTypeId" });
745
750
  AppUser.belongsTo(State, { as: "state", foreignKey: "stateId" });
746
751
  State.hasMany(AppUser, { as: "appUsers", foreignKey: "stateId" });
747
752
  PlatformUserPlaylist.belongsTo(State, { as: "state", foreignKey: "stateId" });
@@ -877,6 +882,7 @@ function initModels(sequelize) {
877
882
  RadioShowMedia: RadioShowMedia,
878
883
  RadioShowPlacement: RadioShowPlacement,
879
884
  RadioShowPublishRequests: RadioShowPublishRequests,
885
+ RadioShowType: RadioShowType,
880
886
  State: State,
881
887
  TrackDeletionReason: TrackDeletionReason,
882
888
  UnmatchedAlbum: UnmatchedAlbum,
@@ -0,0 +1,3 @@
1
+ {
2
+ "timestamps": false
3
+ }