@strong-together/shared 1.1.0 → 2.1.0

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.
package/dist/index.cjs ADDED
@@ -0,0 +1,2772 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/index.ts
22
+ var index_exports = {};
23
+ __export(index_exports, {
24
+ accessTokenPayloadDtoSchema: () => accessTokenPayloadDtoSchema,
25
+ addAerobicInputQueryDtoSchema: () => addAerobicInputQueryDtoSchema,
26
+ addAerobicsRequestSchema: () => addAerobicsRequestSchema,
27
+ addUserAerobicsContract: () => addUserAerobicsContract,
28
+ addWorkoutContract: () => addWorkoutContract,
29
+ addWorkoutRequestSchema: () => addWorkoutRequestSchema,
30
+ addWorkoutResponseSchema: () => addWorkoutResponseSchema,
31
+ addWorkoutSplitPayloadQueryDtoSchema: () => addWorkoutSplitPayloadQueryDtoSchema,
32
+ adherenceExerciseStatsQueryDtoSchema: () => adherenceExerciseStatsQueryDtoSchema,
33
+ aerobicTrackingDbSchema: () => aerobicTrackingDbSchema,
34
+ aerobicsDailyRecordQueryDtoSchema: () => aerobicsDailyRecordQueryDtoSchema,
35
+ aerobicsWeeklyRecordQueryDtoSchema: () => aerobicsWeeklyRecordQueryDtoSchema,
36
+ allUserMessageQueryDtoSchema: () => allUserMessageQueryDtoSchema,
37
+ analyzeVideoPayloadDtoSchema: () => analyzeVideoPayloadDtoSchema,
38
+ analyzeVideoResultPayloadDtoSchema: () => analyzeVideoResultPayloadDtoSchema,
39
+ appleOAuthContract: () => appleOAuthContract,
40
+ appleOAuthRequestSchema: () => appleOAuthRequestSchema,
41
+ appleTokenVerificationResultDtoSchema: () => appleTokenVerificationResultDtoSchema,
42
+ authenticatedUserForUpdateQueryDtoSchema: () => authenticatedUserForUpdateQueryDtoSchema,
43
+ bootstrapContract: () => bootstrapContract,
44
+ bootstrapRequestSchema: () => bootstrapRequestSchema,
45
+ bootstrapResponseSchema: () => bootstrapResponseSchema,
46
+ changeEmailAndVerifyContract: () => changeEmailAndVerifyContract,
47
+ changeEmailAndVerifyRequestSchema: () => changeEmailAndVerifyRequestSchema,
48
+ changeEmailTokenPayloadDtoSchema: () => changeEmailTokenPayloadDtoSchema,
49
+ checkUserVerifyContract: () => checkUserVerifyContract,
50
+ checkUserVerifyRequestSchema: () => checkUserVerifyRequestSchema,
51
+ createUserContract: () => createUserContract,
52
+ createUserRequestSchema: () => createUserRequestSchema,
53
+ createUserResponseSchema: () => createUserResponseSchema,
54
+ createUserUserSchema: () => createUserUserSchema,
55
+ createdUserQueryDtoSchema: () => createdUserQueryDtoSchema,
56
+ createdUserRawQueryDtoSchema: () => createdUserRawQueryDtoSchema,
57
+ createdUserRowQueryDtoSchema: () => createdUserRowQueryDtoSchema,
58
+ deleteMessageContract: () => deleteMessageContract,
59
+ deleteMessageRequestSchema: () => deleteMessageRequestSchema,
60
+ deleteMessageResponseSchema: () => deleteMessageResponseSchema,
61
+ deleteProfilePicRequestSchema: () => deleteProfilePicRequestSchema,
62
+ deleteUserProfilePicContract: () => deleteUserProfilePicContract,
63
+ deletedMessageQueryDtoSchema: () => deletedMessageQueryDtoSchema,
64
+ emailVerifyPayloadDtoSchema: () => emailVerifyPayloadDtoSchema,
65
+ enqueueAnalyzeVideoParamsDtoSchema: () => enqueueAnalyzeVideoParamsDtoSchema,
66
+ exerciseAssignmentIdQueryDtoSchema: () => exerciseAssignmentIdQueryDtoSchema,
67
+ exerciseDbSchema: () => exerciseDbSchema,
68
+ exerciseInPlanQueryDtoSchema: () => exerciseInPlanQueryDtoSchema,
69
+ exerciseMapByMuscleRowQueryDtoSchema: () => exerciseMapByMuscleRowQueryDtoSchema,
70
+ exerciseMetadataQueryDtoSchema: () => exerciseMetadataQueryDtoSchema,
71
+ exerciseToWorkoutSplitDbSchema: () => exerciseToWorkoutSplitDbSchema,
72
+ exerciseToWorkoutSplitExpandedViewDbSchema: () => exerciseToWorkoutSplitExpandedViewDbSchema,
73
+ exerciseTrackingAnalysisQueryDtoSchema: () => exerciseTrackingAnalysisQueryDtoSchema,
74
+ exerciseTrackingAndStatsQueryDtoSchema: () => exerciseTrackingAndStatsQueryDtoSchema,
75
+ exerciseTrackingAndStatsRowQueryDtoSchema: () => exerciseTrackingAndStatsRowQueryDtoSchema,
76
+ exerciseTrackingDbSchema: () => exerciseTrackingDbSchema,
77
+ exerciseTrackingExpandedViewDbSchema: () => exerciseTrackingExpandedViewDbSchema,
78
+ exerciseTrackingIdQueryDtoSchema: () => exerciseTrackingIdQueryDtoSchema,
79
+ exerciseTrackingPrMaxQueryDtoSchema: () => exerciseTrackingPrMaxQueryDtoSchema,
80
+ exercisesMapByMuscleQueryDtoSchema: () => exercisesMapByMuscleQueryDtoSchema,
81
+ finishUserWorkoutContract: () => finishUserWorkoutContract,
82
+ finishUserWorkoutResponseSchema: () => finishUserWorkoutResponseSchema,
83
+ finishWorkoutRequestSchema: () => finishWorkoutRequestSchema,
84
+ finishedWorkoutEntryQueryDtoSchema: () => finishedWorkoutEntryQueryDtoSchema,
85
+ forgotPasswordPayloadDtoSchema: () => forgotPasswordPayloadDtoSchema,
86
+ generateTicketContract: () => generateTicketContract,
87
+ generateTicketRequestSchema: () => generateTicketRequestSchema,
88
+ generateTicketResponseSchema: () => generateTicketResponseSchema,
89
+ getAerobicsRequestSchema: () => getAerobicsRequestSchema,
90
+ getAllExercisesContract: () => getAllExercisesContract,
91
+ getAllExercisesExerciseQueryDtoSchema: () => getAllExercisesExerciseQueryDtoSchema,
92
+ getAllExercisesResponseSchema: () => getAllExercisesResponseSchema,
93
+ getAllMessagesRequestSchema: () => getAllMessagesRequestSchema,
94
+ getAllUserMessagesContract: () => getAllUserMessagesContract,
95
+ getAllUserMessagesResponseSchema: () => getAllUserMessagesResponseSchema,
96
+ getAnalyticsContract: () => getAnalyticsContract,
97
+ getAnalyticsResponseSchema: () => getAnalyticsResponseSchema,
98
+ getAuthenticatedUserByIdContract: () => getAuthenticatedUserByIdContract,
99
+ getAuthenticatedUserByIdResponseSchema: () => getAuthenticatedUserByIdResponseSchema,
100
+ getExerciseTrackingContract: () => getExerciseTrackingContract,
101
+ getExerciseTrackingRequestSchema: () => getExerciseTrackingRequestSchema,
102
+ getExerciseTrackingResponseSchema: () => getExerciseTrackingResponseSchema,
103
+ getPresignedUrlFromS3Contract: () => getPresignedUrlFromS3Contract,
104
+ getPresignedUrlFromS3RequestSchema: () => getPresignedUrlFromS3RequestSchema,
105
+ getPresignedUrlFromS3ResponseSchema: () => getPresignedUrlFromS3ResponseSchema,
106
+ getUserAerobicsContract: () => getUserAerobicsContract,
107
+ getWholeUserWorkoutPlanContract: () => getWholeUserWorkoutPlanContract,
108
+ getWholeUserWorkoutPlanResponseSchema: () => getWholeUserWorkoutPlanResponseSchema,
109
+ getWholeWorkoutPlanRequestSchema: () => getWholeWorkoutPlanRequestSchema,
110
+ goalAdherenceQueryDtoSchema: () => goalAdherenceQueryDtoSchema,
111
+ goalAdherenceRowQueryDtoSchema: () => goalAdherenceRowQueryDtoSchema,
112
+ googleOAuthContract: () => googleOAuthContract,
113
+ googleOAuthRequestSchema: () => googleOAuthRequestSchema,
114
+ googleTokenVerificationResultDtoSchema: () => googleTokenVerificationResultDtoSchema,
115
+ lastLoginQueryDtoSchema: () => lastLoginQueryDtoSchema,
116
+ loginContract: () => loginContract,
117
+ loginRequestSchema: () => loginRequestSchema,
118
+ loginResponseSchema: () => loginResponseSchema,
119
+ logoutContract: () => logoutContract,
120
+ logoutResponseSchema: () => logoutResponseSchema,
121
+ markMessageAsReadContract: () => markMessageAsReadContract,
122
+ markMessageAsReadRequestSchema: () => markMessageAsReadRequestSchema,
123
+ markMessageAsReadResponseSchema: () => markMessageAsReadResponseSchema,
124
+ messageAfterSendQueryDtoSchema: () => messageAfterSendQueryDtoSchema,
125
+ messageAsReadQueryDtoSchema: () => messageAsReadQueryDtoSchema,
126
+ messageDbSchema: () => messageDbSchema,
127
+ oAuthCreatedUserRowQueryDtoSchema: () => oAuthCreatedUserRowQueryDtoSchema,
128
+ oAuthLinkQueryDtoSchema: () => oAuthLinkQueryDtoSchema,
129
+ oAuthLinkRowQueryDtoSchema: () => oAuthLinkRowQueryDtoSchema,
130
+ oAuthLoginContract: () => oAuthLoginContract,
131
+ oAuthLoginResponseSchema: () => oAuthLoginResponseSchema,
132
+ oAuthLookupQueryDtoSchema: () => oAuthLookupQueryDtoSchema,
133
+ oAuthLookupRawQueryDtoSchema: () => oAuthLookupRawQueryDtoSchema,
134
+ oAuthLookupRowQueryDtoSchema: () => oAuthLookupRowQueryDtoSchema,
135
+ oauthAccountDbSchema: () => oauthAccountDbSchema,
136
+ proceedLoginResponseSchema: () => proceedLoginResponseSchema,
137
+ prsViewDbSchema: () => prsViewDbSchema,
138
+ refreshTokenContract: () => refreshTokenContract,
139
+ refreshTokenResponseSchema: () => refreshTokenResponseSchema,
140
+ resetPasswordContract: () => resetPasswordContract,
141
+ resetPasswordRequestSchema: () => resetPasswordRequestSchema,
142
+ resetPasswordResponseSchema: () => resetPasswordResponseSchema,
143
+ saveUserPushTokenContract: () => saveUserPushTokenContract,
144
+ saveUserPushTokenRequestSchema: () => saveUserPushTokenRequestSchema,
145
+ sendChangePassEmailContract: () => sendChangePassEmailContract,
146
+ sendChangePassEmailRequestSchema: () => sendChangePassEmailRequestSchema,
147
+ sendVerificationMailContract: () => sendVerificationMailContract,
148
+ sendVerificationMailRequestSchema: () => sendVerificationMailRequestSchema,
149
+ serializedDateSchema: () => serializedDateSchema,
150
+ setProfilePicAndUpdateDBContract: () => setProfilePicAndUpdateDBContract,
151
+ setProfilePicAndUpdateDBResponseSchema: () => setProfilePicAndUpdateDBResponseSchema,
152
+ squatRepetitionDtoSchema: () => squatRepetitionDtoSchema,
153
+ timezoneSchema: () => timezoneSchema,
154
+ tokenVersionQueryDtoSchema: () => tokenVersionQueryDtoSchema,
155
+ trackingByDateItemQueryDtoSchema: () => trackingByDateItemQueryDtoSchema,
156
+ trackingBySplitNameItemQueryDtoSchema: () => trackingBySplitNameItemQueryDtoSchema,
157
+ trackingMapItemQueryDtoSchema: () => trackingMapItemQueryDtoSchema,
158
+ trackingSetDbSchema: () => trackingSetDbSchema,
159
+ updateAuthenticatedUserContract: () => updateAuthenticatedUserContract,
160
+ updateAuthenticatedUserResponseSchema: () => updateAuthenticatedUserResponseSchema,
161
+ updateUserRequestSchema: () => updateUserRequestSchema,
162
+ userAerobicsQueryDtoSchema: () => userAerobicsQueryDtoSchema,
163
+ userAerobicsResponseSchema: () => userAerobicsResponseSchema,
164
+ userAerobicsRowQueryDtoSchema: () => userAerobicsRowQueryDtoSchema,
165
+ userAfterBumpQueryDtoSchema: () => userAfterBumpQueryDtoSchema,
166
+ userByIdentifierQueryDtoSchema: () => userByIdentifierQueryDtoSchema,
167
+ userByIdentifierRawQueryDtoSchema: () => userByIdentifierRawQueryDtoSchema,
168
+ userByIdentifierRowQueryDtoSchema: () => userByIdentifierRowQueryDtoSchema,
169
+ userByUsernameRawQueryDtoSchema: () => userByUsernameRawQueryDtoSchema,
170
+ userByUsernameRowQueryDtoSchema: () => userByUsernameRowQueryDtoSchema,
171
+ userConflictQueryDtoSchema: () => userConflictQueryDtoSchema,
172
+ userDataContract: () => userDataContract,
173
+ userDataQueryDtoSchema: () => userDataQueryDtoSchema,
174
+ userDataResponseSchema: () => userDataResponseSchema,
175
+ userDataRowQueryDtoSchema: () => userDataRowQueryDtoSchema,
176
+ userDbSchema: () => userDbSchema,
177
+ userExistsQueryDtoSchema: () => userExistsQueryDtoSchema,
178
+ userInsertDbSchema: () => userInsertDbSchema,
179
+ userMessageIdentityQueryDtoSchema: () => userMessageIdentityQueryDtoSchema,
180
+ userProfilePicQueryDtoSchema: () => userProfilePicQueryDtoSchema,
181
+ userReminderSettingDbSchema: () => userReminderSettingDbSchema,
182
+ userSplitInformationDbSchema: () => userSplitInformationDbSchema,
183
+ userToHourlyReminderQueryDtoSchema: () => userToHourlyReminderQueryDtoSchema,
184
+ userUpdateDbSchema: () => userUpdateDbSchema,
185
+ userWithNotificationsEnabledQueryDtoSchema: () => userWithNotificationsEnabledQueryDtoSchema,
186
+ verifyAccountRequestSchema: () => verifyAccountRequestSchema,
187
+ verifyUserAccountContract: () => verifyUserAccountContract,
188
+ weeklyDataQueryDtoSchema: () => weeklyDataQueryDtoSchema,
189
+ wholeUserWorkoutPlanQueryDtoSchema: () => wholeUserWorkoutPlanQueryDtoSchema,
190
+ workoutExerciseInputQueryDtoSchema: () => workoutExerciseInputQueryDtoSchema,
191
+ workoutExerciseMetadataQueryDtoSchema: () => workoutExerciseMetadataQueryDtoSchema,
192
+ workoutPlanDbSchema: () => workoutPlanDbSchema,
193
+ workoutPlanIdQueryDtoSchema: () => workoutPlanIdQueryDtoSchema,
194
+ workoutRmRecordQueryDtoSchema: () => workoutRmRecordQueryDtoSchema,
195
+ workoutRmsQueryDtoSchema: () => workoutRmsQueryDtoSchema,
196
+ workoutRmsRowQueryDtoSchema: () => workoutRmsRowQueryDtoSchema,
197
+ workoutSetDbSchema: () => workoutSetDbSchema,
198
+ workoutSplitDbSchema: () => workoutSplitDbSchema,
199
+ workoutSplitIdQueryDtoSchema: () => workoutSplitIdQueryDtoSchema,
200
+ workoutSplitLookupQueryDtoSchema: () => workoutSplitLookupQueryDtoSchema,
201
+ workoutSplitQueryDtoSchema: () => workoutSplitQueryDtoSchema,
202
+ workoutSplitsMapItemQueryDtoSchema: () => workoutSplitsMapItemQueryDtoSchema,
203
+ workoutSplitsMapQueryDtoSchema: () => workoutSplitsMapQueryDtoSchema,
204
+ workoutSplitsRowQueryDtoSchema: () => workoutSplitsRowQueryDtoSchema,
205
+ workoutSummaryDbSchema: () => workoutSummaryDbSchema,
206
+ workoutSummaryIdQueryDtoSchema: () => workoutSummaryIdQueryDtoSchema
207
+ });
208
+ module.exports = __toCommonJS(index_exports);
209
+
210
+ // src/common/transport.schemas.ts
211
+ var import_v4 = require("zod/v4");
212
+ var serializedDateSchema = import_v4.z.string();
213
+ var timezoneSchema = import_v4.z.string();
214
+
215
+ // src/database/database.schemas.ts
216
+ var import_drizzle_zod = require("drizzle-zod");
217
+
218
+ // ../../src/infrastructure/db/schema/drizzle/roles.ts
219
+ var import_pg_core = require("drizzle-orm/pg-core");
220
+ var anonRole = (0, import_pg_core.pgRole)("anon");
221
+ var authenticatedRole = (0, import_pg_core.pgRole)("authenticated");
222
+ var guestRole = (0, import_pg_core.pgRole)("guest");
223
+ var serviceRole = (0, import_pg_core.pgRole)("service_role");
224
+ var appUserRole = (0, import_pg_core.pgRole)("app_user");
225
+ var appRuntimeUserRole = (0, import_pg_core.pgRole)("app_runtime_user", {
226
+ createDb: false,
227
+ createRole: false,
228
+ inherit: false
229
+ });
230
+
231
+ // ../../src/infrastructure/db/schema/drizzle/schemas.ts
232
+ var import_pg_core2 = require("drizzle-orm/pg-core");
233
+ var authSchema = (0, import_pg_core2.pgSchema)("auth");
234
+ var identitySchema = (0, import_pg_core2.pgSchema)("identity");
235
+ var workoutSchema = (0, import_pg_core2.pgSchema)("workout");
236
+ var trackingSchema = (0, import_pg_core2.pgSchema)("tracking");
237
+ var remindersSchema = (0, import_pg_core2.pgSchema)("reminders");
238
+ var analyticsSchema = (0, import_pg_core2.pgSchema)("analytics");
239
+ var messagesSchema = (0, import_pg_core2.pgSchema)("messages");
240
+ var authProviders = identitySchema.enum("Auth Providers", [
241
+ "apple",
242
+ "google",
243
+ "app"
244
+ ]);
245
+
246
+ // ../../src/infrastructure/db/schema/drizzle/identity/user/table.ts
247
+ var import_drizzle_orm27 = require("drizzle-orm");
248
+ var import_pg_core30 = require("drizzle-orm/pg-core");
249
+
250
+ // ../../src/infrastructure/db/schema/drizzle/messages/messages/table.ts
251
+ var import_drizzle_orm2 = require("drizzle-orm");
252
+ var import_pg_core4 = require("drizzle-orm/pg-core");
253
+
254
+ // ../../src/infrastructure/db/schema/drizzle/messages/messages/policies.ts
255
+ var import_drizzle_orm = require("drizzle-orm");
256
+ var import_pg_core3 = require("drizzle-orm/pg-core");
257
+ var uid = import_drizzle_orm.sql`"identity"."current_user_id"()`;
258
+ function messagePolicies(t) {
259
+ const participant = import_drizzle_orm.sql`${uid} = ${t.senderId} or ${uid} = ${t.receiverId}`;
260
+ return [
261
+ // Lets authenticated message participants read their sent or received messages.
262
+ (0, import_pg_core3.pgPolicy)("Enable read access for auth users on message", {
263
+ for: "select",
264
+ to: authenticatedRole,
265
+ using: participant
266
+ }),
267
+ // Lets authenticated users send as themselves or as the existing system sender.
268
+ (0, import_pg_core3.pgPolicy)("Enable insert for auth users on message", {
269
+ for: "insert",
270
+ to: authenticatedRole,
271
+ withCheck: import_drizzle_orm.sql`${uid} = ${t.senderId} or ${t.senderId} = '8dedd0e0-8c25-4c84-a05b-4ae5f5c48f3a'::uuid`
272
+ }),
273
+ // Lets authenticated message participants update a message while remaining participants.
274
+ (0, import_pg_core3.pgPolicy)("Enable update for auth users on message", {
275
+ for: "update",
276
+ to: authenticatedRole,
277
+ using: participant,
278
+ withCheck: participant
279
+ }),
280
+ // Lets authenticated message participants delete their sent or received messages.
281
+ (0, import_pg_core3.pgPolicy)("Enable delete for auth users on message", {
282
+ for: "delete",
283
+ to: authenticatedRole,
284
+ using: participant
285
+ })
286
+ ];
287
+ }
288
+ __name(messagePolicies, "messagePolicies");
289
+
290
+ // ../../src/infrastructure/db/schema/drizzle/messages/messages/table.ts
291
+ var uid2 = import_drizzle_orm2.sql`"identity"."current_user_id"()`;
292
+ var message = messagesSchema.table("message", {
293
+ id: (0, import_pg_core4.uuid)("id").defaultRandom().notNull(),
294
+ senderId: (0, import_pg_core4.uuid)("sender_id").default(uid2).notNull(),
295
+ receiverId: (0, import_pg_core4.uuid)("receiver_id").default(uid2).notNull(),
296
+ subject: (0, import_pg_core4.text)("subject").default("Subject").notNull(),
297
+ msg: (0, import_pg_core4.text)("msg").default("Hello World").notNull(),
298
+ sentAt: (0, import_pg_core4.timestamp)("sent_at", {
299
+ withTimezone: true
300
+ }).default(import_drizzle_orm2.sql`(now() AT TIME ZONE 'utc')`).notNull(),
301
+ isRead: (0, import_pg_core4.boolean)("is_read").default(false).notNull()
302
+ }, (t) => [
303
+ (0, import_pg_core4.primaryKey)({
304
+ name: "message_pkey",
305
+ columns: [
306
+ t.id
307
+ ]
308
+ }),
309
+ (0, import_pg_core4.foreignKey)({
310
+ name: "message_sender_id_fkey",
311
+ columns: [
312
+ t.senderId
313
+ ],
314
+ foreignColumns: [
315
+ user.id
316
+ ]
317
+ }).onUpdate("cascade").onDelete("cascade"),
318
+ (0, import_pg_core4.foreignKey)({
319
+ name: "message_receiver_id_fkey",
320
+ columns: [
321
+ t.receiverId
322
+ ],
323
+ foreignColumns: [
324
+ user.id
325
+ ]
326
+ }).onUpdate("cascade").onDelete("cascade"),
327
+ (0, import_pg_core4.index)("message_receiver_id_idx").on(t.receiverId),
328
+ ...messagePolicies(t)
329
+ ]);
330
+ var messageRelations = (0, import_drizzle_orm2.relations)(message, ({ one }) => ({
331
+ sender: one(user, {
332
+ fields: [
333
+ message.senderId
334
+ ],
335
+ references: [
336
+ user.id
337
+ ],
338
+ relationName: "messageSender"
339
+ }),
340
+ receiver: one(user, {
341
+ fields: [
342
+ message.receiverId
343
+ ],
344
+ references: [
345
+ user.id
346
+ ],
347
+ relationName: "messageReceiver"
348
+ })
349
+ }));
350
+
351
+ // ../../src/infrastructure/db/schema/drizzle/reminders/user_reminder_setting/table.ts
352
+ var import_drizzle_orm4 = require("drizzle-orm");
353
+ var import_pg_core6 = require("drizzle-orm/pg-core");
354
+
355
+ // ../../src/infrastructure/db/schema/drizzle/reminders/user_reminder_setting/policies.ts
356
+ var import_drizzle_orm3 = require("drizzle-orm");
357
+ var import_pg_core5 = require("drizzle-orm/pg-core");
358
+ var uid3 = import_drizzle_orm3.sql`"identity"."current_user_id"()`;
359
+ function userReminderSettingPolicies(t) {
360
+ return [
361
+ // Lets authenticated users read only their own reminder settings.
362
+ (0, import_pg_core5.pgPolicy)("auth can SELECT own reminder settings", {
363
+ for: "select",
364
+ to: authenticatedRole,
365
+ using: import_drizzle_orm3.sql`${uid3} = ${t.userId}`
366
+ }),
367
+ // Lets authenticated users insert reminder settings only for themselves.
368
+ (0, import_pg_core5.pgPolicy)("auth can INSERT own reminder settings", {
369
+ for: "insert",
370
+ to: authenticatedRole,
371
+ withCheck: import_drizzle_orm3.sql`${uid3} = ${t.userId}`
372
+ }),
373
+ // Lets authenticated users update their own reminder settings and preserves ownership.
374
+ (0, import_pg_core5.pgPolicy)("auth can UPDATE own reminder settings", {
375
+ for: "update",
376
+ to: authenticatedRole,
377
+ using: import_drizzle_orm3.sql`${uid3} = ${t.userId}`,
378
+ withCheck: import_drizzle_orm3.sql`${uid3} = ${t.userId}`
379
+ }),
380
+ // Provides the original additional update policy for settings owned by the user.
381
+ (0, import_pg_core5.pgPolicy)("Allow authenticated users to update their own reminder settings", {
382
+ for: "update",
383
+ to: authenticatedRole,
384
+ using: import_drizzle_orm3.sql`${uid3} = ${t.userId}`
385
+ })
386
+ ];
387
+ }
388
+ __name(userReminderSettingPolicies, "userReminderSettingPolicies");
389
+
390
+ // ../../src/infrastructure/db/schema/drizzle/reminders/user_reminder_setting/table.ts
391
+ var userReminderSetting = remindersSchema.table("user_reminder_setting", {
392
+ userId: (0, import_pg_core6.uuid)("user_id").notNull(),
393
+ workoutRemindersEnabled: (0, import_pg_core6.boolean)("workout_reminders_enabled").default(true).notNull(),
394
+ reminderOffsetMinutes: (0, import_pg_core6.integer)("reminder_offset_minutes").default(60).notNull(),
395
+ updatedAt: (0, import_pg_core6.timestamp)("updated_at", {
396
+ withTimezone: true
397
+ }).default(import_drizzle_orm4.sql`timezone('UTC', now())`).notNull(),
398
+ timezone: (0, import_pg_core6.text)("timezone").default("'UTC'::text")
399
+ }, (t) => [
400
+ (0, import_pg_core6.primaryKey)({
401
+ name: "user_reminder_setting_pkey",
402
+ columns: [
403
+ t.userId
404
+ ]
405
+ }),
406
+ (0, import_pg_core6.foreignKey)({
407
+ name: "user_reminder_setting_user_id_fkey",
408
+ columns: [
409
+ t.userId
410
+ ],
411
+ foreignColumns: [
412
+ user.id
413
+ ]
414
+ }).onDelete("cascade"),
415
+ ...userReminderSettingPolicies(t)
416
+ ]);
417
+ var userReminderSettingRelations = (0, import_drizzle_orm4.relations)(userReminderSetting, ({ one }) => ({
418
+ user: one(user, {
419
+ fields: [
420
+ userReminderSetting.userId
421
+ ],
422
+ references: [
423
+ user.id
424
+ ]
425
+ })
426
+ }));
427
+
428
+ // ../../src/infrastructure/db/schema/drizzle/reminders/user_split_information/table.ts
429
+ var import_drizzle_orm21 = require("drizzle-orm");
430
+ var import_pg_core24 = require("drizzle-orm/pg-core");
431
+
432
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_split/table.ts
433
+ var import_drizzle_orm20 = require("drizzle-orm");
434
+ var import_pg_core23 = require("drizzle-orm/pg-core");
435
+
436
+ // ../../src/infrastructure/db/schema/drizzle/tracking/workout_summary/table.ts
437
+ var import_drizzle_orm16 = require("drizzle-orm");
438
+ var import_pg_core19 = require("drizzle-orm/pg-core");
439
+
440
+ // ../../src/infrastructure/db/schema/drizzle/tracking/exercise_tracking/table.ts
441
+ var import_drizzle_orm14 = require("drizzle-orm");
442
+ var import_pg_core16 = require("drizzle-orm/pg-core");
443
+
444
+ // ../../src/infrastructure/db/schema/drizzle/workout/exercises/table.ts
445
+ var import_drizzle_orm10 = require("drizzle-orm");
446
+ var import_pg_core12 = require("drizzle-orm/pg-core");
447
+
448
+ // ../../src/infrastructure/db/schema/drizzle/workout/exercisetoworkoutsplit/table.ts
449
+ var import_drizzle_orm8 = require("drizzle-orm");
450
+ var import_pg_core10 = require("drizzle-orm/pg-core");
451
+
452
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_set/table.ts
453
+ var import_drizzle_orm6 = require("drizzle-orm");
454
+ var import_pg_core8 = require("drizzle-orm/pg-core");
455
+
456
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_set/policies.ts
457
+ var import_drizzle_orm5 = require("drizzle-orm");
458
+ var import_pg_core7 = require("drizzle-orm/pg-core");
459
+ var currentUserId = import_drizzle_orm5.sql`"identity"."current_user_id"()`;
460
+ function workoutSetPolicies(table) {
461
+ const ownsWorkoutSet = import_drizzle_orm5.sql`exists (
462
+ select 1
463
+ from "workout"."exercise_to_workout_split" ets
464
+ join "workout"."workout_split" ws on ws."id" = ets."workout_split_id"
465
+ join "workout"."workout_plan" wp on wp."id" = ws."workout_id"
466
+ where ets."id" = ${table.exerciseToSplitId}
467
+ and wp."user_id" = ${currentUserId}
468
+ )`;
469
+ return [
470
+ // Lets authenticated users read planned sets only from workout plans they own.
471
+ (0, import_pg_core7.pgPolicy)("Enable read access for auth users on workout_set", {
472
+ for: "select",
473
+ to: authenticatedRole,
474
+ using: ownsWorkoutSet
475
+ }),
476
+ // Lets authenticated users add planned sets only to workout plans they own.
477
+ (0, import_pg_core7.pgPolicy)("Enable insert for auth users on workout_set", {
478
+ for: "insert",
479
+ to: authenticatedRole,
480
+ withCheck: ownsWorkoutSet
481
+ }),
482
+ // Lets authenticated users update planned sets only within workout plans they own.
483
+ (0, import_pg_core7.pgPolicy)("Enable update for auth users on workout_set", {
484
+ for: "update",
485
+ to: authenticatedRole,
486
+ using: ownsWorkoutSet,
487
+ withCheck: ownsWorkoutSet
488
+ }),
489
+ // Lets authenticated users delete planned sets only from workout plans they own.
490
+ (0, import_pg_core7.pgPolicy)("Enable delete for auth users on workout_set", {
491
+ for: "delete",
492
+ to: authenticatedRole,
493
+ using: ownsWorkoutSet
494
+ })
495
+ ];
496
+ }
497
+ __name(workoutSetPolicies, "workoutSetPolicies");
498
+
499
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_set/table.ts
500
+ var workoutSet = workoutSchema.table("workout_set", {
501
+ id: (0, import_pg_core8.uuid)("id").defaultRandom().notNull(),
502
+ exerciseToSplitId: (0, import_pg_core8.bigint)("exercise_to_split_id", {
503
+ mode: "number"
504
+ }).notNull(),
505
+ orderIndex: (0, import_pg_core8.integer)("order_index").notNull(),
506
+ reps: (0, import_pg_core8.integer)("reps").notNull()
507
+ }, (t) => [
508
+ (0, import_pg_core8.primaryKey)({
509
+ name: "workout_set_pkey",
510
+ columns: [
511
+ t.id
512
+ ]
513
+ }),
514
+ (0, import_pg_core8.unique)("workout_set_exercise_order_unique").on(t.exerciseToSplitId, t.orderIndex),
515
+ (0, import_pg_core8.foreignKey)({
516
+ name: "workout_set_exercise_to_split_id_fkey",
517
+ columns: [
518
+ t.exerciseToSplitId
519
+ ],
520
+ foreignColumns: [
521
+ exerciseToWorkoutSplit.id
522
+ ]
523
+ }).onUpdate("cascade").onDelete("cascade"),
524
+ (0, import_pg_core8.index)("workout_set_exercise_to_split_id_idx").on(t.exerciseToSplitId),
525
+ ...workoutSetPolicies(t)
526
+ ]);
527
+ var workoutSetRelations = (0, import_drizzle_orm6.relations)(workoutSet, ({ one }) => ({
528
+ exerciseToWorkoutSplit: one(exerciseToWorkoutSplit, {
529
+ fields: [
530
+ workoutSet.exerciseToSplitId
531
+ ],
532
+ references: [
533
+ exerciseToWorkoutSplit.id
534
+ ]
535
+ })
536
+ }));
537
+
538
+ // ../../src/infrastructure/db/schema/drizzle/workout/exercisetoworkoutsplit/policies.ts
539
+ var import_drizzle_orm7 = require("drizzle-orm");
540
+ var import_pg_core9 = require("drizzle-orm/pg-core");
541
+ var uid4 = import_drizzle_orm7.sql`"identity"."current_user_id"()`;
542
+ function exerciseToWorkoutSplitPolicies(t) {
543
+ const owns = import_drizzle_orm7.sql`${uid4} = (select wp."user_id" from "workout"."workout_plan" wp join "workout"."workout_split" ws on ws."workout_id" = wp."id" where ws."id" = ${t.workoutSplitId})`;
544
+ const ownsForDelete = import_drizzle_orm7.sql`exists (select 1 from "workout"."workout_split" ws join "workout"."workout_plan" wp on wp."id" = ws."workout_id" where ws."id" = ${t.workoutSplitId} and wp."user_id" = ${uid4})`;
545
+ return [
546
+ // Lets authenticated users read exercise assignments in splits they own.
547
+ (0, import_pg_core9.pgPolicy)("Enable read access for auth users on exercise_to_workout_split", {
548
+ for: "select",
549
+ to: authenticatedRole,
550
+ using: owns
551
+ }),
552
+ // Lets authenticated users add exercise assignments only to splits they own.
553
+ (0, import_pg_core9.pgPolicy)("Enable insert for auth users on exercise_to_workout_split", {
554
+ for: "insert",
555
+ to: authenticatedRole,
556
+ withCheck: owns
557
+ }),
558
+ // Lets authenticated users update exercise assignments only in splits they own.
559
+ (0, import_pg_core9.pgPolicy)("Enable update for auth users on exercise_to_workout_split", {
560
+ for: "update",
561
+ to: authenticatedRole,
562
+ using: owns,
563
+ withCheck: owns
564
+ }),
565
+ // Lets authenticated users delete exercise assignments only from splits they own.
566
+ (0, import_pg_core9.pgPolicy)("Enable delete for auth users on exercise_to_workout_split", {
567
+ for: "delete",
568
+ to: authenticatedRole,
569
+ using: ownsForDelete
570
+ })
571
+ ];
572
+ }
573
+ __name(exerciseToWorkoutSplitPolicies, "exerciseToWorkoutSplitPolicies");
574
+
575
+ // ../../src/infrastructure/db/schema/drizzle/workout/exercisetoworkoutsplit/table.ts
576
+ var exerciseToWorkoutSplit = workoutSchema.table("exercise_to_workout_split", {
577
+ id: (0, import_pg_core10.bigint)("id", {
578
+ mode: "number"
579
+ }).generatedByDefaultAsIdentity({
580
+ name: "exercise_to_workout_split_id_seq"
581
+ }).notNull(),
582
+ workoutSplitId: (0, import_pg_core10.bigint)("workout_split_id", {
583
+ mode: "number"
584
+ }).notNull(),
585
+ exerciseId: (0, import_pg_core10.bigint)("exercise_id", {
586
+ mode: "number"
587
+ }).notNull(),
588
+ createdAt: (0, import_pg_core10.timestamp)("created_at", {
589
+ withTimezone: true
590
+ }).default(import_drizzle_orm8.sql`(now() AT TIME ZONE 'utc')`).notNull(),
591
+ orderIndex: (0, import_pg_core10.bigint)("order_index", {
592
+ mode: "number"
593
+ }).notNull(),
594
+ isActive: (0, import_pg_core10.boolean)("is_active").default(true).notNull()
595
+ }, (t) => [
596
+ (0, import_pg_core10.primaryKey)({
597
+ name: "exercise_to_workout_split_pkey",
598
+ columns: [
599
+ t.id
600
+ ]
601
+ }),
602
+ (0, import_pg_core10.unique)("uq_exercise_to_workout_split_workout_split_exercise").on(t.workoutSplitId, t.exerciseId),
603
+ (0, import_pg_core10.foreignKey)({
604
+ name: "exercise_to_workout_split_exercise_id_fkey",
605
+ columns: [
606
+ t.exerciseId
607
+ ],
608
+ foreignColumns: [
609
+ exercise.id
610
+ ]
611
+ }).onUpdate("cascade").onDelete("cascade"),
612
+ (0, import_pg_core10.foreignKey)({
613
+ name: "exercise_to_workout_split_workout_split_id_fkey",
614
+ columns: [
615
+ t.workoutSplitId
616
+ ],
617
+ foreignColumns: [
618
+ workoutSplit.id
619
+ ]
620
+ }).onUpdate("cascade").onDelete("cascade"),
621
+ (0, import_pg_core10.index)("exercise_to_workout_split_active_idx").on(t.workoutSplitId, t.orderIndex).where(import_drizzle_orm8.sql`${t.isActive} = true`),
622
+ (0, import_pg_core10.index)("exercise_to_workout_split_workout_split_id_order_index_idx").on(t.workoutSplitId, t.orderIndex),
623
+ ...exerciseToWorkoutSplitPolicies(t)
624
+ ]);
625
+ var exerciseToWorkoutSplitRelations = (0, import_drizzle_orm8.relations)(exerciseToWorkoutSplit, ({ many, one }) => ({
626
+ exercise: one(exercise, {
627
+ fields: [
628
+ exerciseToWorkoutSplit.exerciseId
629
+ ],
630
+ references: [
631
+ exercise.id
632
+ ]
633
+ }),
634
+ workoutSplit: one(workoutSplit, {
635
+ fields: [
636
+ exerciseToWorkoutSplit.workoutSplitId
637
+ ],
638
+ references: [
639
+ workoutSplit.id
640
+ ]
641
+ }),
642
+ exerciseTrackings: many(exerciseTracking),
643
+ workoutSets: many(workoutSet)
644
+ }));
645
+
646
+ // ../../src/infrastructure/db/schema/drizzle/workout/exercises/policies.ts
647
+ var import_drizzle_orm9 = require("drizzle-orm");
648
+ var import_pg_core11 = require("drizzle-orm/pg-core");
649
+ var exercisePolicies = /* @__PURE__ */ __name(() => [
650
+ // Makes the shared exercise catalog readable to every authenticated user.
651
+ (0, import_pg_core11.pgPolicy)("Allow all authenticated users to read exercise", {
652
+ for: "select",
653
+ to: authenticatedRole,
654
+ using: import_drizzle_orm9.sql`true`
655
+ })
656
+ ], "exercisePolicies");
657
+
658
+ // ../../src/infrastructure/db/schema/drizzle/workout/exercises/table.ts
659
+ var exercise = workoutSchema.table("exercise", {
660
+ id: (0, import_pg_core12.bigint)("id", {
661
+ mode: "number"
662
+ }).generatedByDefaultAsIdentity({
663
+ name: "exercise_id_seq"
664
+ }).notNull(),
665
+ name: (0, import_pg_core12.text)("name").notNull(),
666
+ description: (0, import_pg_core12.text)("description").notNull(),
667
+ targetMuscle: (0, import_pg_core12.text)("target_muscle").notNull(),
668
+ specificTargetMuscle: (0, import_pg_core12.text)("specific_target_muscle").notNull()
669
+ }, (t) => [
670
+ (0, import_pg_core12.primaryKey)({
671
+ name: "exercise_pkey",
672
+ columns: [
673
+ t.id
674
+ ]
675
+ }),
676
+ (0, import_pg_core12.uniqueIndex)("exercise_name_unique").on(t.name),
677
+ ...exercisePolicies()
678
+ ]);
679
+ var exerciseRelations = (0, import_drizzle_orm10.relations)(exercise, ({ many }) => ({
680
+ workoutSplitAssignments: many(exerciseToWorkoutSplit)
681
+ }));
682
+
683
+ // ../../src/infrastructure/db/schema/drizzle/tracking/tracking_set/table.ts
684
+ var import_drizzle_orm12 = require("drizzle-orm");
685
+ var import_pg_core14 = require("drizzle-orm/pg-core");
686
+
687
+ // ../../src/infrastructure/db/schema/drizzle/tracking/tracking_set/policies.ts
688
+ var import_drizzle_orm11 = require("drizzle-orm");
689
+ var import_pg_core13 = require("drizzle-orm/pg-core");
690
+ var currentUserId2 = import_drizzle_orm11.sql`"identity"."current_user_id"()`;
691
+ function trackingSetPolicies(table) {
692
+ const ownsExerciseTracking = import_drizzle_orm11.sql`exists (
693
+ select 1
694
+ from "tracking"."exercise_tracking" et
695
+ join "tracking"."workout_summary" ws on ws."id" = et."workout_summary_id"
696
+ where et."id" = ${table.exerciseTrackingId}
697
+ and ws."user_id" = ${currentUserId2}
698
+ )`;
699
+ return [
700
+ // Lets authenticated users read tracked sets only from workout summaries they own.
701
+ (0, import_pg_core13.pgPolicy)("Enable read access for auth users on tracking_set", {
702
+ for: "select",
703
+ to: authenticatedRole,
704
+ using: ownsExerciseTracking
705
+ }),
706
+ // Lets authenticated users add tracked sets only to their own exercise tracking rows.
707
+ (0, import_pg_core13.pgPolicy)("Enable insert for auth users on tracking_set", {
708
+ for: "insert",
709
+ to: authenticatedRole,
710
+ withCheck: ownsExerciseTracking
711
+ }),
712
+ // Lets authenticated users update tracked sets without moving them outside their own workout.
713
+ (0, import_pg_core13.pgPolicy)("Enable update for auth users on tracking_set", {
714
+ for: "update",
715
+ to: authenticatedRole,
716
+ using: ownsExerciseTracking,
717
+ withCheck: ownsExerciseTracking
718
+ }),
719
+ // Lets authenticated users delete tracked sets only from workout summaries they own.
720
+ (0, import_pg_core13.pgPolicy)("Enable delete for auth users on tracking_set", {
721
+ for: "delete",
722
+ to: authenticatedRole,
723
+ using: ownsExerciseTracking
724
+ })
725
+ ];
726
+ }
727
+ __name(trackingSetPolicies, "trackingSetPolicies");
728
+
729
+ // ../../src/infrastructure/db/schema/drizzle/tracking/tracking_set/table.ts
730
+ var trackingSet = trackingSchema.table("tracking_set", {
731
+ id: (0, import_pg_core14.uuid)("id").defaultRandom().notNull(),
732
+ exerciseTrackingId: (0, import_pg_core14.bigint)("exercise_tracking_id", {
733
+ mode: "number"
734
+ }).notNull(),
735
+ setIndex: (0, import_pg_core14.integer)("set_index").notNull(),
736
+ reps: (0, import_pg_core14.integer)("reps").notNull(),
737
+ weight: (0, import_pg_core14.real)("weight").notNull()
738
+ }, (t) => [
739
+ (0, import_pg_core14.primaryKey)({
740
+ name: "tracking_set_pkey",
741
+ columns: [
742
+ t.id
743
+ ]
744
+ }),
745
+ (0, import_pg_core14.unique)("tracking_set_exercise_index_unique").on(t.exerciseTrackingId, t.setIndex),
746
+ (0, import_pg_core14.foreignKey)({
747
+ name: "tracking_set_exercise_tracking_id_fkey",
748
+ columns: [
749
+ t.exerciseTrackingId
750
+ ],
751
+ foreignColumns: [
752
+ exerciseTracking.id
753
+ ]
754
+ }).onUpdate("cascade").onDelete("cascade"),
755
+ (0, import_pg_core14.index)("tracking_set_exercise_tracking_id_idx").on(t.exerciseTrackingId),
756
+ ...trackingSetPolicies(t)
757
+ ]);
758
+ var trackingSetRelations = (0, import_drizzle_orm12.relations)(trackingSet, ({ one }) => ({
759
+ exerciseTracking: one(exerciseTracking, {
760
+ fields: [
761
+ trackingSet.exerciseTrackingId
762
+ ],
763
+ references: [
764
+ exerciseTracking.id
765
+ ]
766
+ })
767
+ }));
768
+
769
+ // ../../src/infrastructure/db/schema/drizzle/tracking/exercise_tracking/policies.ts
770
+ var import_drizzle_orm13 = require("drizzle-orm");
771
+ var import_pg_core15 = require("drizzle-orm/pg-core");
772
+ var uid5 = import_drizzle_orm13.sql`"identity"."current_user_id"()`;
773
+ function exerciseTrackingPolicies(t) {
774
+ const owns = import_drizzle_orm13.sql`exists (select 1 from "tracking"."workout_summary" ws where ws."id" = ${t.workoutSummaryId} and ws."user_id" = ${uid5})`;
775
+ return [
776
+ // Lets authenticated users read exercise tracking rows through summaries they own.
777
+ (0, import_pg_core15.pgPolicy)("exercise_tracking_select_by_summary_owner", {
778
+ for: "select",
779
+ to: authenticatedRole,
780
+ using: owns
781
+ }),
782
+ // Lets authenticated users insert exercise tracking rows through summaries they own.
783
+ (0, import_pg_core15.pgPolicy)("exercise_tracking_insert_by_summary_owner", {
784
+ for: "insert",
785
+ to: authenticatedRole,
786
+ withCheck: owns
787
+ }),
788
+ // Lets authenticated users update exercise tracking rows through summaries they own.
789
+ (0, import_pg_core15.pgPolicy)("exercise_tracking_update_by_summary_owner", {
790
+ for: "update",
791
+ to: authenticatedRole,
792
+ using: owns,
793
+ withCheck: owns
794
+ }),
795
+ // Lets authenticated users delete exercise tracking rows through summaries they own.
796
+ (0, import_pg_core15.pgPolicy)("exercise_tracking_delete_by_summary_owner", {
797
+ for: "delete",
798
+ to: authenticatedRole,
799
+ using: owns
800
+ })
801
+ ];
802
+ }
803
+ __name(exerciseTrackingPolicies, "exerciseTrackingPolicies");
804
+
805
+ // ../../src/infrastructure/db/schema/drizzle/tracking/exercise_tracking/table.ts
806
+ var import_pg_core17 = require("drizzle-orm/pg-core");
807
+ var exerciseTracking = trackingSchema.table("exercise_tracking", {
808
+ id: (0, import_pg_core16.bigint)("id", {
809
+ mode: "number"
810
+ }).generatedByDefaultAsIdentity({
811
+ name: "exercise_tracking_id_seq"
812
+ }).notNull(),
813
+ workoutSummaryId: (0, import_pg_core16.uuid)("workout_summary_id").notNull(),
814
+ exerciseToSplitId: (0, import_pg_core16.bigint)("exercise_to_split_id", {
815
+ mode: "number"
816
+ }),
817
+ exerciseId: (0, import_pg_core16.bigint)("exercise_id", {
818
+ mode: "number"
819
+ }),
820
+ notes: (0, import_pg_core16.text)("notes")
821
+ }, (t) => [
822
+ (0, import_pg_core16.primaryKey)({
823
+ name: "exercise_tracking_pkey",
824
+ columns: [
825
+ t.id
826
+ ]
827
+ }),
828
+ (0, import_pg_core16.foreignKey)({
829
+ name: "exercise_tracking_exercise_to_split_id_fkey",
830
+ columns: [
831
+ t.exerciseToSplitId
832
+ ],
833
+ foreignColumns: [
834
+ exerciseToWorkoutSplit.id
835
+ ]
836
+ }).onUpdate("cascade").onDelete("cascade"),
837
+ (0, import_pg_core16.foreignKey)({
838
+ name: "exercise_tracking_exercise_id_fkey",
839
+ columns: [
840
+ t.exerciseId
841
+ ],
842
+ foreignColumns: [
843
+ exercise.id
844
+ ]
845
+ }).onUpdate("cascade").onDelete("cascade"),
846
+ (0, import_pg_core16.foreignKey)({
847
+ name: "exercise_tracking_workout_summary_id_fkey",
848
+ columns: [
849
+ t.workoutSummaryId
850
+ ],
851
+ foreignColumns: [
852
+ workoutSummary.id
853
+ ]
854
+ }).onUpdate("cascade").onDelete("cascade"),
855
+ (0, import_pg_core17.check)("exercise_tracking_xor_check", import_drizzle_orm14.sql`num_nonnulls(${t.exerciseToSplitId}, ${t.exerciseId}) = 1`),
856
+ (0, import_pg_core16.index)("exercise_tracking_workout_summary_id_idx").on(t.workoutSummaryId),
857
+ ...exerciseTrackingPolicies(t)
858
+ ]);
859
+ var exerciseTrackingRelations = (0, import_drizzle_orm14.relations)(exerciseTracking, ({ many, one }) => ({
860
+ exerciseToWorkoutSplit: one(exerciseToWorkoutSplit, {
861
+ fields: [
862
+ exerciseTracking.exerciseToSplitId
863
+ ],
864
+ references: [
865
+ exerciseToWorkoutSplit.id
866
+ ]
867
+ }),
868
+ workoutSummary: one(workoutSummary, {
869
+ fields: [
870
+ exerciseTracking.workoutSummaryId
871
+ ],
872
+ references: [
873
+ workoutSummary.id
874
+ ]
875
+ }),
876
+ trackingSets: many(trackingSet),
877
+ exercise: one(exercise, {
878
+ fields: [
879
+ exerciseTracking.exerciseId
880
+ ],
881
+ references: [
882
+ exercise.id
883
+ ]
884
+ })
885
+ }));
886
+
887
+ // ../../src/infrastructure/db/schema/drizzle/tracking/workout_summary/policies.ts
888
+ var import_drizzle_orm15 = require("drizzle-orm");
889
+ var import_pg_core18 = require("drizzle-orm/pg-core");
890
+ var uid6 = import_drizzle_orm15.sql`"identity"."current_user_id"()`;
891
+ function workoutSummaryPolicies(t) {
892
+ return [
893
+ // Lets authenticated users read only their own completed workout summaries.
894
+ (0, import_pg_core18.pgPolicy)("users can read their workout summaries", {
895
+ for: "select",
896
+ to: authenticatedRole,
897
+ using: import_drizzle_orm15.sql`${t.userId} = ${uid6}`
898
+ }),
899
+ // Lets authenticated users insert completed workout summaries only for themselves.
900
+ (0, import_pg_core18.pgPolicy)("users can insert their workout summaries", {
901
+ for: "insert",
902
+ to: authenticatedRole,
903
+ withCheck: import_drizzle_orm15.sql`${t.userId} = ${uid6}`
904
+ }),
905
+ // Lets authenticated users update only their own completed workout summaries.
906
+ (0, import_pg_core18.pgPolicy)("users can update their workout summaries", {
907
+ for: "update",
908
+ to: authenticatedRole,
909
+ using: import_drizzle_orm15.sql`${t.userId} = ${uid6}`,
910
+ withCheck: import_drizzle_orm15.sql`${t.userId} = ${uid6}`
911
+ }),
912
+ // Lets authenticated users delete only their own completed workout summaries.
913
+ (0, import_pg_core18.pgPolicy)("users can delete their workout summaries", {
914
+ for: "delete",
915
+ to: authenticatedRole,
916
+ using: import_drizzle_orm15.sql`${t.userId} = ${uid6}`
917
+ })
918
+ ];
919
+ }
920
+ __name(workoutSummaryPolicies, "workoutSummaryPolicies");
921
+
922
+ // ../../src/infrastructure/db/schema/drizzle/tracking/workout_summary/table.ts
923
+ var workoutSummary = trackingSchema.table("workout_summary", {
924
+ id: (0, import_pg_core19.uuid)("id").defaultRandom().notNull(),
925
+ userId: (0, import_pg_core19.uuid)("user_id").notNull(),
926
+ workoutSplitId: (0, import_pg_core19.bigint)("workout_split_id", {
927
+ mode: "number"
928
+ }).notNull(),
929
+ workoutStartUtc: (0, import_pg_core19.timestamp)("workout_start_utc", {
930
+ withTimezone: true
931
+ }).notNull(),
932
+ workoutEndUtc: (0, import_pg_core19.timestamp)("workout_end_utc", {
933
+ withTimezone: true
934
+ }).notNull(),
935
+ createdAt: (0, import_pg_core19.timestamp)("created_at", {
936
+ withTimezone: true
937
+ }).defaultNow().notNull()
938
+ }, (t) => [
939
+ (0, import_pg_core19.primaryKey)({
940
+ name: "workout_summary_pkey",
941
+ columns: [
942
+ t.id
943
+ ]
944
+ }),
945
+ (0, import_pg_core19.foreignKey)({
946
+ name: "workout_summary_user_id_fkey",
947
+ columns: [
948
+ t.userId
949
+ ],
950
+ foreignColumns: [
951
+ user.id
952
+ ]
953
+ }).onDelete("cascade"),
954
+ (0, import_pg_core19.foreignKey)({
955
+ name: "workout_summary_workout_split_id_fkey",
956
+ columns: [
957
+ t.workoutSplitId
958
+ ],
959
+ foreignColumns: [
960
+ workoutSplit.id
961
+ ]
962
+ }).onUpdate("cascade").onDelete("cascade"),
963
+ (0, import_pg_core19.index)("workout_summary_start_date_idx").on(import_drizzle_orm16.sql`((${t.workoutStartUtc} at time zone 'UTC')::date)`),
964
+ (0, import_pg_core19.index)("workout_summary_user_start_utc_idx").on(t.userId, t.workoutStartUtc.desc().nullsFirst()),
965
+ ...workoutSummaryPolicies(t)
966
+ ]);
967
+ var workoutSummaryRelations = (0, import_drizzle_orm16.relations)(workoutSummary, ({ many, one }) => ({
968
+ user: one(user, {
969
+ fields: [
970
+ workoutSummary.userId
971
+ ],
972
+ references: [
973
+ user.id
974
+ ]
975
+ }),
976
+ workoutSplit: one(workoutSplit, {
977
+ fields: [
978
+ workoutSummary.workoutSplitId
979
+ ],
980
+ references: [
981
+ workoutSplit.id
982
+ ]
983
+ }),
984
+ exerciseTrackings: many(exerciseTracking)
985
+ }));
986
+
987
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_plan/table.ts
988
+ var import_drizzle_orm18 = require("drizzle-orm");
989
+ var import_pg_core21 = require("drizzle-orm/pg-core");
990
+
991
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_plan/policies.ts
992
+ var import_drizzle_orm17 = require("drizzle-orm");
993
+ var import_pg_core20 = require("drizzle-orm/pg-core");
994
+ var uid7 = import_drizzle_orm17.sql`"identity"."current_user_id"()`;
995
+ function workoutPlanPolicies(t) {
996
+ return [
997
+ // Lets authenticated users read only workout plans they own.
998
+ (0, import_pg_core20.pgPolicy)("Enable read access for auth users on workout_plan", {
999
+ for: "select",
1000
+ to: authenticatedRole,
1001
+ using: import_drizzle_orm17.sql`${uid7} = ${t.userId}`
1002
+ }),
1003
+ // Lets authenticated users create workout plans only for themselves.
1004
+ (0, import_pg_core20.pgPolicy)("Enable insert for auth users on workout_plan", {
1005
+ for: "insert",
1006
+ to: authenticatedRole,
1007
+ withCheck: import_drizzle_orm17.sql`${uid7} = ${t.userId}`
1008
+ }),
1009
+ // Lets authenticated users update only workout plans they own.
1010
+ (0, import_pg_core20.pgPolicy)("Enable update for auth users on workout_plan", {
1011
+ for: "update",
1012
+ to: authenticatedRole,
1013
+ using: import_drizzle_orm17.sql`${uid7} = ${t.userId}`,
1014
+ withCheck: import_drizzle_orm17.sql`${uid7} = ${t.userId}`
1015
+ }),
1016
+ // Lets authenticated users delete only workout plans they own.
1017
+ (0, import_pg_core20.pgPolicy)("Enable delete for auth users on workout_plan", {
1018
+ for: "delete",
1019
+ to: authenticatedRole,
1020
+ using: import_drizzle_orm17.sql`${uid7} = ${t.userId}`
1021
+ })
1022
+ ];
1023
+ }
1024
+ __name(workoutPlanPolicies, "workoutPlanPolicies");
1025
+
1026
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_plan/table.ts
1027
+ var workoutPlan = workoutSchema.table("workout_plan", {
1028
+ id: (0, import_pg_core21.bigint)("id", {
1029
+ mode: "number"
1030
+ }).generatedByDefaultAsIdentity({
1031
+ name: "workout_plan_id_seq"
1032
+ }).notNull(),
1033
+ userId: (0, import_pg_core21.uuid)("user_id").notNull(),
1034
+ isActive: (0, import_pg_core21.boolean)("is_active").default(true).notNull(),
1035
+ updatedAt: (0, import_pg_core21.timestamp)("updated_at", {
1036
+ withTimezone: true
1037
+ }).default(import_drizzle_orm18.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1038
+ createdAt: (0, import_pg_core21.timestamp)("created_at", {
1039
+ withTimezone: true
1040
+ }).defaultNow().notNull()
1041
+ }, (t) => [
1042
+ (0, import_pg_core21.primaryKey)({
1043
+ name: "workout_plan_pkey",
1044
+ columns: [
1045
+ t.id
1046
+ ]
1047
+ }),
1048
+ (0, import_pg_core21.foreignKey)({
1049
+ name: "workout_plan_user_id_fkey",
1050
+ columns: [
1051
+ t.userId
1052
+ ],
1053
+ foreignColumns: [
1054
+ user.id
1055
+ ]
1056
+ }).onUpdate("cascade").onDelete("cascade"),
1057
+ (0, import_pg_core21.uniqueIndex)("uq_workout_plan_active_user").on(t.userId).where(import_drizzle_orm18.sql`${t.isActive}`),
1058
+ ...workoutPlanPolicies(t)
1059
+ ]);
1060
+ var workoutPlanRelations = (0, import_drizzle_orm18.relations)(workoutPlan, ({ many, one }) => ({
1061
+ owner: one(user, {
1062
+ fields: [
1063
+ workoutPlan.userId
1064
+ ],
1065
+ references: [
1066
+ user.id
1067
+ ],
1068
+ relationName: "workoutPlanOwner"
1069
+ }),
1070
+ splits: many(workoutSplit)
1071
+ }));
1072
+
1073
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_split/policies.ts
1074
+ var import_drizzle_orm19 = require("drizzle-orm");
1075
+ var import_pg_core22 = require("drizzle-orm/pg-core");
1076
+ var uid8 = import_drizzle_orm19.sql`"identity"."current_user_id"()`;
1077
+ function workoutSplitPolicies(t) {
1078
+ const owns = import_drizzle_orm19.sql`${uid8} = (select wp."user_id" from "workout"."workout_plan" wp where wp."id" = ${t.workoutId})`;
1079
+ const ownsForDelete = import_drizzle_orm19.sql`exists (select 1 from "workout"."workout_plan" wp where wp."id" = ${t.workoutId} and wp."user_id" = ${uid8})`;
1080
+ return [
1081
+ // Lets authenticated users read splits belonging to their own plans.
1082
+ (0, import_pg_core22.pgPolicy)("Enable read access for auth users on workout_split", {
1083
+ for: "select",
1084
+ to: authenticatedRole,
1085
+ using: owns
1086
+ }),
1087
+ // Lets authenticated users add splits only to their own plans.
1088
+ (0, import_pg_core22.pgPolicy)("Enable insert for auth users on workout_split", {
1089
+ for: "insert",
1090
+ to: authenticatedRole,
1091
+ withCheck: owns
1092
+ }),
1093
+ // Lets authenticated users update splits only within their own plans.
1094
+ (0, import_pg_core22.pgPolicy)("Enable update for auth users on workout_split", {
1095
+ for: "update",
1096
+ to: authenticatedRole,
1097
+ using: owns,
1098
+ withCheck: owns
1099
+ }),
1100
+ // Lets authenticated users delete splits only from their own plans.
1101
+ (0, import_pg_core22.pgPolicy)("Enable delete for auth users on workout_split", {
1102
+ for: "delete",
1103
+ to: authenticatedRole,
1104
+ using: ownsForDelete
1105
+ })
1106
+ ];
1107
+ }
1108
+ __name(workoutSplitPolicies, "workoutSplitPolicies");
1109
+
1110
+ // ../../src/infrastructure/db/schema/drizzle/workout/workout_split/table.ts
1111
+ var workoutSplit = workoutSchema.table("workout_split", {
1112
+ id: (0, import_pg_core23.bigint)("id", {
1113
+ mode: "number"
1114
+ }).generatedByDefaultAsIdentity({
1115
+ name: "workout_split_id_seq"
1116
+ }).notNull(),
1117
+ workoutId: (0, import_pg_core23.bigint)("workout_id", {
1118
+ mode: "number"
1119
+ }).notNull(),
1120
+ name: (0, import_pg_core23.text)("name").notNull(),
1121
+ createdAt: (0, import_pg_core23.timestamp)("created_at", {
1122
+ withTimezone: true
1123
+ }).default(import_drizzle_orm20.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1124
+ isActive: (0, import_pg_core23.boolean)("is_active").default(true).notNull()
1125
+ }, (t) => [
1126
+ (0, import_pg_core23.primaryKey)({
1127
+ name: "workout_split_pkey",
1128
+ columns: [
1129
+ t.id
1130
+ ]
1131
+ }),
1132
+ (0, import_pg_core23.unique)("uq_workout_split_plan_name").on(t.workoutId, t.name),
1133
+ (0, import_pg_core23.foreignKey)({
1134
+ name: "workout_split_workout_id_fkey",
1135
+ columns: [
1136
+ t.workoutId
1137
+ ],
1138
+ foreignColumns: [
1139
+ workoutPlan.id
1140
+ ]
1141
+ }).onUpdate("cascade").onDelete("cascade"),
1142
+ (0, import_pg_core23.index)("workout_split_workout_id_idx").on(t.workoutId),
1143
+ ...workoutSplitPolicies(t)
1144
+ ]);
1145
+ var workoutSplitRelations = (0, import_drizzle_orm20.relations)(workoutSplit, ({ many, one }) => ({
1146
+ workoutPlan: one(workoutPlan, {
1147
+ fields: [
1148
+ workoutSplit.workoutId
1149
+ ],
1150
+ references: [
1151
+ workoutPlan.id
1152
+ ]
1153
+ }),
1154
+ exerciseAssignments: many(exerciseToWorkoutSplit),
1155
+ workoutSummaries: many(workoutSummary),
1156
+ splitInformation: many(userSplitInformation)
1157
+ }));
1158
+
1159
+ // ../../src/infrastructure/db/schema/drizzle/reminders/user_split_information/table.ts
1160
+ var userSplitInformation = remindersSchema.table("user_split_information", {
1161
+ id: (0, import_pg_core24.bigint)("id", {
1162
+ mode: "number"
1163
+ }).generatedByDefaultAsIdentity({
1164
+ name: "user_split_information_id_seq"
1165
+ }).notNull(),
1166
+ userId: (0, import_pg_core24.uuid)("user_id").notNull(),
1167
+ workoutSplitId: (0, import_pg_core24.bigint)("workout_split_id", {
1168
+ mode: "number"
1169
+ }).notNull(),
1170
+ estimatedTimeUtc: (0, import_pg_core24.timestamp)("estimated_time_utc", {
1171
+ withTimezone: true
1172
+ }).notNull(),
1173
+ confidence: (0, import_pg_core24.numeric)("confidence", {
1174
+ precision: 3,
1175
+ scale: 2
1176
+ }).default("1.00").notNull(),
1177
+ lastComputedAt: (0, import_pg_core24.timestamp)("last_computed_at", {
1178
+ withTimezone: true
1179
+ }).default(import_drizzle_orm21.sql`timezone('UTC', now())`).notNull(),
1180
+ preferredWeekday: (0, import_pg_core24.integer)("preferred_weekday")
1181
+ }, (t) => [
1182
+ (0, import_pg_core24.primaryKey)({
1183
+ name: "user_split_information_pkey",
1184
+ columns: [
1185
+ t.id
1186
+ ]
1187
+ }),
1188
+ (0, import_pg_core24.unique)("user_split_information_user_id_workout_split_id_key").on(t.userId, t.workoutSplitId),
1189
+ (0, import_pg_core24.foreignKey)({
1190
+ name: "user_split_information_user_id_fkey",
1191
+ columns: [
1192
+ t.userId
1193
+ ],
1194
+ foreignColumns: [
1195
+ user.id
1196
+ ]
1197
+ }).onDelete("cascade"),
1198
+ (0, import_pg_core24.foreignKey)({
1199
+ name: "user_split_information_workout_split_id_fkey",
1200
+ columns: [
1201
+ t.workoutSplitId
1202
+ ],
1203
+ foreignColumns: [
1204
+ workoutSplit.id
1205
+ ]
1206
+ }).onDelete("cascade"),
1207
+ (0, import_pg_core24.index)("user_split_information_confidence_idx").on(t.preferredWeekday, t.confidence).where(import_drizzle_orm21.sql`${t.confidence} >= 0.60`),
1208
+ (0, import_pg_core24.index)("user_split_information_user_weekday_idx").on(t.userId, t.preferredWeekday).where(import_drizzle_orm21.sql`${t.preferredWeekday} is not null`)
1209
+ ]).enableRLS();
1210
+ var userSplitInformationRelations = (0, import_drizzle_orm21.relations)(userSplitInformation, ({ one }) => ({
1211
+ user: one(user, {
1212
+ fields: [
1213
+ userSplitInformation.userId
1214
+ ],
1215
+ references: [
1216
+ user.id
1217
+ ]
1218
+ }),
1219
+ workoutSplit: one(workoutSplit, {
1220
+ fields: [
1221
+ userSplitInformation.workoutSplitId
1222
+ ],
1223
+ references: [
1224
+ workoutSplit.id
1225
+ ]
1226
+ })
1227
+ }));
1228
+
1229
+ // ../../src/infrastructure/db/schema/drizzle/tracking/aerobic_tracking/table.ts
1230
+ var import_drizzle_orm23 = require("drizzle-orm");
1231
+ var import_pg_core26 = require("drizzle-orm/pg-core");
1232
+
1233
+ // ../../src/infrastructure/db/schema/drizzle/tracking/aerobic_tracking/policies.ts
1234
+ var import_drizzle_orm22 = require("drizzle-orm");
1235
+ var import_pg_core25 = require("drizzle-orm/pg-core");
1236
+ var uid9 = import_drizzle_orm22.sql`"identity"."current_user_id"()`;
1237
+ function aerobicTrackingPolicies(t) {
1238
+ return [
1239
+ // Lets authenticated users read only their own aerobic tracking rows.
1240
+ (0, import_pg_core25.pgPolicy)("Enable read access for auth users on aerobic_tracking", {
1241
+ for: "select",
1242
+ to: authenticatedRole,
1243
+ using: import_drizzle_orm22.sql`${uid9} = ${t.userId}`
1244
+ }),
1245
+ // Lets authenticated users insert aerobic tracking rows only for themselves.
1246
+ (0, import_pg_core25.pgPolicy)("Enable insert for auth users on aerobic_tracking", {
1247
+ for: "insert",
1248
+ to: authenticatedRole,
1249
+ withCheck: import_drizzle_orm22.sql`${uid9} = ${t.userId}`
1250
+ }),
1251
+ // Lets authenticated users update only their own aerobic tracking rows.
1252
+ (0, import_pg_core25.pgPolicy)("Enable update for auth users on aerobic_tracking", {
1253
+ for: "update",
1254
+ to: authenticatedRole,
1255
+ using: import_drizzle_orm22.sql`${uid9} = ${t.userId}`,
1256
+ withCheck: import_drizzle_orm22.sql`${uid9} = ${t.userId}`
1257
+ }),
1258
+ // Lets authenticated users delete only their own aerobic tracking rows.
1259
+ (0, import_pg_core25.pgPolicy)("Enable delete for auth users on aerobic_tracking", {
1260
+ for: "delete",
1261
+ to: authenticatedRole,
1262
+ using: import_drizzle_orm22.sql`${uid9} = ${t.userId}`
1263
+ })
1264
+ ];
1265
+ }
1266
+ __name(aerobicTrackingPolicies, "aerobicTrackingPolicies");
1267
+
1268
+ // ../../src/infrastructure/db/schema/drizzle/tracking/aerobic_tracking/table.ts
1269
+ var aerobicTracking = trackingSchema.table("aerobic_tracking", {
1270
+ id: (0, import_pg_core26.bigint)("id", {
1271
+ mode: "number"
1272
+ }).generatedByDefaultAsIdentity({
1273
+ name: "aerobic_tracking_id_seq"
1274
+ }).notNull(),
1275
+ userId: (0, import_pg_core26.uuid)("user_id").notNull(),
1276
+ type: (0, import_pg_core26.text)("type").notNull(),
1277
+ durationSec: (0, import_pg_core26.bigint)("duration_sec", {
1278
+ mode: "number"
1279
+ }).default(0).notNull(),
1280
+ workoutTimeUtc: (0, import_pg_core26.timestamp)("workout_time_utc", {
1281
+ withTimezone: true
1282
+ }).default(import_drizzle_orm23.sql`(now() AT TIME ZONE 'utc')`).notNull()
1283
+ }, (t) => [
1284
+ (0, import_pg_core26.primaryKey)({
1285
+ name: "aerobic_tracking_pkey",
1286
+ columns: [
1287
+ t.id
1288
+ ]
1289
+ }),
1290
+ (0, import_pg_core26.foreignKey)({
1291
+ name: "aerobic_tracking_user_id_fkey",
1292
+ columns: [
1293
+ t.userId
1294
+ ],
1295
+ foreignColumns: [
1296
+ user.id
1297
+ ]
1298
+ }).onUpdate("cascade").onDelete("cascade"),
1299
+ (0, import_pg_core26.index)("aerobic_tracking_user_id_workout_time_utc_idx").on(t.userId, t.workoutTimeUtc.desc().nullsFirst()),
1300
+ ...aerobicTrackingPolicies(t)
1301
+ ]);
1302
+ var aerobicTrackingRelations = (0, import_drizzle_orm23.relations)(aerobicTracking, ({ one }) => ({
1303
+ user: one(user, {
1304
+ fields: [
1305
+ aerobicTracking.userId
1306
+ ],
1307
+ references: [
1308
+ user.id
1309
+ ]
1310
+ })
1311
+ }));
1312
+
1313
+ // ../../src/infrastructure/db/schema/drizzle/identity/oauth_account/table.ts
1314
+ var import_drizzle_orm25 = require("drizzle-orm");
1315
+ var import_pg_core28 = require("drizzle-orm/pg-core");
1316
+
1317
+ // ../../src/infrastructure/db/schema/drizzle/identity/oauth_account/policies.ts
1318
+ var import_drizzle_orm24 = require("drizzle-orm");
1319
+ var import_pg_core27 = require("drizzle-orm/pg-core");
1320
+ var currentUserId3 = import_drizzle_orm24.sql`"identity"."current_user_id"()`;
1321
+ function oauthAccountPolicies(table) {
1322
+ return [
1323
+ // Lets authenticated users read only OAuth accounts linked to themselves.
1324
+ (0, import_pg_core27.pgPolicy)("Enable read access for auth users on oauth_account", {
1325
+ for: "select",
1326
+ to: authenticatedRole,
1327
+ using: import_drizzle_orm24.sql`${currentUserId3} = ${table.userId}`
1328
+ }),
1329
+ // Lets authenticated users link OAuth accounts only to themselves.
1330
+ (0, import_pg_core27.pgPolicy)("Enable insert for auth users on oauth_account", {
1331
+ for: "insert",
1332
+ to: authenticatedRole,
1333
+ withCheck: import_drizzle_orm24.sql`${currentUserId3} = ${table.userId}`
1334
+ }),
1335
+ // Lets authenticated users update only OAuth accounts linked to themselves.
1336
+ (0, import_pg_core27.pgPolicy)("Enable update for auth users on oauth_account", {
1337
+ for: "update",
1338
+ to: authenticatedRole,
1339
+ using: import_drizzle_orm24.sql`${currentUserId3} = ${table.userId}`,
1340
+ withCheck: import_drizzle_orm24.sql`${currentUserId3} = ${table.userId}`
1341
+ }),
1342
+ // Lets authenticated users delete only OAuth accounts linked to themselves.
1343
+ (0, import_pg_core27.pgPolicy)("Enable delete for auth users on oauth_account", {
1344
+ for: "delete",
1345
+ to: authenticatedRole,
1346
+ using: import_drizzle_orm24.sql`${currentUserId3} = ${table.userId}`
1347
+ })
1348
+ ];
1349
+ }
1350
+ __name(oauthAccountPolicies, "oauthAccountPolicies");
1351
+
1352
+ // ../../src/infrastructure/db/schema/drizzle/identity/oauth_account/table.ts
1353
+ var oauthAccount = identitySchema.table("oauth_account", {
1354
+ id: (0, import_pg_core28.uuid)("id").defaultRandom().notNull(),
1355
+ userId: (0, import_pg_core28.uuid)("user_id").notNull(),
1356
+ provider: (0, import_pg_core28.text)("provider").notNull(),
1357
+ providerUserId: (0, import_pg_core28.text)("provider_user_id").notNull(),
1358
+ providerEmail: (0, import_pg_core28.text)("provider_email").notNull(),
1359
+ linkedAt: (0, import_pg_core28.timestamp)("linked_at", {
1360
+ withTimezone: true
1361
+ }).default(import_drizzle_orm25.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1362
+ missingFields: (0, import_pg_core28.text)("missing_fields")
1363
+ }, (t) => [
1364
+ (0, import_pg_core28.primaryKey)({
1365
+ name: "oauth_account_pkey",
1366
+ columns: [
1367
+ t.id
1368
+ ]
1369
+ }),
1370
+ (0, import_pg_core28.unique)("oauth_account_provider_user_unique").on(t.provider, t.providerUserId),
1371
+ (0, import_pg_core28.foreignKey)({
1372
+ name: "oauth_account_user_id_fkey",
1373
+ columns: [
1374
+ t.userId
1375
+ ],
1376
+ foreignColumns: [
1377
+ user.id
1378
+ ]
1379
+ }).onUpdate("cascade").onDelete("cascade"),
1380
+ ...oauthAccountPolicies(t)
1381
+ ]);
1382
+ var oauthAccountRelations = (0, import_drizzle_orm25.relations)(oauthAccount, ({ one }) => ({
1383
+ user: one(user, {
1384
+ fields: [
1385
+ oauthAccount.userId
1386
+ ],
1387
+ references: [
1388
+ user.id
1389
+ ]
1390
+ })
1391
+ }));
1392
+
1393
+ // ../../src/infrastructure/db/schema/drizzle/identity/user/policies.ts
1394
+ var import_drizzle_orm26 = require("drizzle-orm");
1395
+ var import_pg_core29 = require("drizzle-orm/pg-core");
1396
+ var currentUserId4 = import_drizzle_orm26.sql`"identity"."current_user_id"()`;
1397
+ function userPolicies(table) {
1398
+ return [
1399
+ // Lets an authenticated user read their own profile.
1400
+ (0, import_pg_core29.pgPolicy)("Enable read access for auth users on own profile", {
1401
+ for: "select",
1402
+ to: authenticatedRole,
1403
+ using: import_drizzle_orm26.sql`${currentUserId4} = ${table.id}`
1404
+ }),
1405
+ // Lets a message receiver read the profile of a sender in their inbox.
1406
+ (0, import_pg_core29.pgPolicy)("Allow user to view senders in their messages", {
1407
+ for: "select",
1408
+ to: authenticatedRole,
1409
+ using: import_drizzle_orm26.sql`exists (select 1 from "messages"."message" m where m."sender_id" = ${table.id} and m."receiver_id" = ${currentUserId4})`
1410
+ }),
1411
+ // Lets an authenticated user create only their own profile row.
1412
+ (0, import_pg_core29.pgPolicy)("Enable insert for auth users on own profile", {
1413
+ for: "insert",
1414
+ to: authenticatedRole,
1415
+ withCheck: import_drizzle_orm26.sql`${currentUserId4} = ${table.id}`
1416
+ }),
1417
+ // Preserves the legacy public self-registration policy for compatibility.
1418
+ (0, import_pg_core29.pgPolicy)("Enable insert for public users on own profile", {
1419
+ for: "insert",
1420
+ to: "public",
1421
+ withCheck: import_drizzle_orm26.sql`${currentUserId4} = ${table.id}`
1422
+ }),
1423
+ // Lets an authenticated user update only their own profile.
1424
+ (0, import_pg_core29.pgPolicy)("Enable update for auth users on own profile", {
1425
+ for: "update",
1426
+ to: authenticatedRole,
1427
+ using: import_drizzle_orm26.sql`${currentUserId4} = ${table.id}`,
1428
+ withCheck: import_drizzle_orm26.sql`${currentUserId4} = ${table.id}`
1429
+ }),
1430
+ // Lets an authenticated user delete only their own profile.
1431
+ (0, import_pg_core29.pgPolicy)("Enable delete for auth users on own profile", {
1432
+ for: "delete",
1433
+ to: authenticatedRole,
1434
+ using: import_drizzle_orm26.sql`${currentUserId4} = ${table.id}`
1435
+ })
1436
+ ];
1437
+ }
1438
+ __name(userPolicies, "userPolicies");
1439
+
1440
+ // ../../src/infrastructure/db/schema/drizzle/identity/user/table.ts
1441
+ var user = identitySchema.table("user", {
1442
+ username: (0, import_pg_core30.text)("username").notNull(),
1443
+ email: (0, import_pg_core30.text)("email").notNull(),
1444
+ name: (0, import_pg_core30.text)("name").notNull(),
1445
+ gender: (0, import_pg_core30.text)("gender").default("Unknown").notNull(),
1446
+ createdAt: (0, import_pg_core30.timestamp)("created_at", {
1447
+ withTimezone: true
1448
+ }).default(import_drizzle_orm27.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1449
+ updatedAt: (0, import_pg_core30.timestamp)("updated_at", {
1450
+ withTimezone: true
1451
+ }).default(import_drizzle_orm27.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1452
+ profilePicPath: (0, import_pg_core30.text)("profile_pic_path"),
1453
+ id: (0, import_pg_core30.uuid)("id").defaultRandom().notNull(),
1454
+ pushToken: (0, import_pg_core30.text)("push_token"),
1455
+ passwordHash: (0, import_pg_core30.text)("password_hash"),
1456
+ role: (0, import_pg_core30.text)("role").default("User").notNull(),
1457
+ tokenVersion: (0, import_pg_core30.bigint)("token_version", {
1458
+ mode: "number"
1459
+ }).default(0).notNull(),
1460
+ isVerified: (0, import_pg_core30.boolean)("is_verified").default(false).notNull(),
1461
+ authProvider: (0, import_pg_core30.text)("auth_provider").default("app").notNull(),
1462
+ lastLogin: (0, import_pg_core30.timestamp)("last_login", {
1463
+ withTimezone: true
1464
+ })
1465
+ }, (t) => [
1466
+ (0, import_pg_core30.primaryKey)({
1467
+ name: "user_pkey",
1468
+ columns: [
1469
+ t.id
1470
+ ]
1471
+ }),
1472
+ (0, import_pg_core30.uniqueIndex)("user_email_ci_unique").on(import_drizzle_orm27.sql`lower(trim(both from ${t.email}))`),
1473
+ (0, import_pg_core30.uniqueIndex)("user_username_ci_unique").on(import_drizzle_orm27.sql`lower(trim(both from ${t.username}))`),
1474
+ ...userPolicies(t)
1475
+ ]);
1476
+ var userRelations = (0, import_drizzle_orm27.relations)(user, ({ many, one }) => ({
1477
+ oauthAccounts: many(oauthAccount),
1478
+ ownedWorkoutPlans: many(workoutPlan, {
1479
+ relationName: "workoutPlanOwner"
1480
+ }),
1481
+ trainedWorkoutPlans: many(workoutPlan, {
1482
+ relationName: "workoutPlanTrainer"
1483
+ }),
1484
+ workoutSummaries: many(workoutSummary),
1485
+ aerobicTrackings: many(aerobicTracking),
1486
+ reminderSettings: one(userReminderSetting),
1487
+ splitInformation: many(userSplitInformation),
1488
+ sentMessages: many(message, {
1489
+ relationName: "messageSender"
1490
+ }),
1491
+ receivedMessages: many(message, {
1492
+ relationName: "messageReceiver"
1493
+ })
1494
+ }));
1495
+
1496
+ // ../../src/infrastructure/db/schema/drizzle/workout/views/exercise-to-workoutsplit-expanded.view.ts
1497
+ var import_pg_core31 = require("drizzle-orm/pg-core");
1498
+ var import_drizzle_orm28 = require("drizzle-orm");
1499
+ var import_pg_core32 = require("drizzle-orm/pg-core");
1500
+ var exerciseToWorkoutSplitExpandedView = workoutSchema.view("v_exercise_to_workout_split_expanded", {
1501
+ id: (0, import_pg_core31.bigint)("id", {
1502
+ mode: "number"
1503
+ }),
1504
+ workoutSplitId: (0, import_pg_core31.bigint)("workout_split_id", {
1505
+ mode: "number"
1506
+ }),
1507
+ workoutId: (0, import_pg_core31.bigint)("workout_id", {
1508
+ mode: "number"
1509
+ }),
1510
+ exerciseId: (0, import_pg_core31.bigint)("exercise_id", {
1511
+ mode: "number"
1512
+ }),
1513
+ exercise: (0, import_pg_core31.text)("exercise"),
1514
+ workoutSplit: (0, import_pg_core31.text)("workout_split"),
1515
+ reps: (0, import_pg_core32.integer)("reps"),
1516
+ orderIndex: (0, import_pg_core31.bigint)("order_index", {
1517
+ mode: "number"
1518
+ }),
1519
+ setOrderIndex: (0, import_pg_core32.integer)("set_order_index"),
1520
+ createdAt: (0, import_pg_core31.timestamp)("created_at", {
1521
+ withTimezone: true
1522
+ }),
1523
+ isActive: (0, import_pg_core31.boolean)("is_active")
1524
+ }).with({
1525
+ securityInvoker: true
1526
+ }).as(import_drizzle_orm28.sql`
1527
+ SELECT
1528
+ ews.id,
1529
+ ews.workout_split_id,
1530
+ ws.workout_id,
1531
+ ews.exercise_id,
1532
+ ex.name AS exercise,
1533
+ ws.name AS workout_split,
1534
+ workout_set.reps AS reps,
1535
+ workout_set.order_index AS set_order_index,
1536
+ ews.order_index,
1537
+ ews.created_at,
1538
+ ews.is_active
1539
+ FROM
1540
+ workout.exercise_to_workout_split ews
1541
+ JOIN workout.workout_split ws ON ws.id = ews.workout_split_id
1542
+ JOIN workout.exercise ex ON ex.id = ews.exercise_id
1543
+ LEFT JOIN workout.workout_set workout_set ON workout_set.exercise_to_split_id = ews.id
1544
+ GROUP BY
1545
+ ews.id,
1546
+ ews.workout_split_id,
1547
+ ws.workout_id,
1548
+ ews.exercise_id,
1549
+ ex.name,
1550
+ ws.name,
1551
+ workout_set.reps,
1552
+ workout_set.order_index,
1553
+ ews.order_index,
1554
+ ews.created_at,
1555
+ ews.is_active
1556
+ `);
1557
+
1558
+ // ../../src/infrastructure/db/schema/drizzle/analytics/views/exercise-tracking-expanded.view.ts
1559
+ var import_drizzle_orm29 = require("drizzle-orm");
1560
+ var import_pg_core33 = require("drizzle-orm/pg-core");
1561
+ var import_pg_core34 = require("drizzle-orm/pg-core");
1562
+ var exerciseTrackingExpandedView = analyticsSchema.view("v_exercise_tracking_expanded", {
1563
+ id: (0, import_pg_core33.bigint)("id", {
1564
+ mode: "number"
1565
+ }),
1566
+ exerciseToSplitId: (0, import_pg_core33.bigint)("exercise_to_split_id", {
1567
+ mode: "number"
1568
+ }),
1569
+ weight: (0, import_pg_core33.real)("weight"),
1570
+ reps: (0, import_pg_core33.bigint)("reps", {
1571
+ mode: "number"
1572
+ }),
1573
+ setIndex: (0, import_pg_core34.integer)("set_index"),
1574
+ exerciseId: (0, import_pg_core33.bigint)("exercise_id", {
1575
+ mode: "number"
1576
+ }),
1577
+ workoutSplitId: (0, import_pg_core33.bigint)("workout_split_id", {
1578
+ mode: "number"
1579
+ }),
1580
+ splitName: (0, import_pg_core33.text)("split_name"),
1581
+ exercise: (0, import_pg_core33.text)("exercise"),
1582
+ notes: (0, import_pg_core33.text)("notes"),
1583
+ workoutSummaryId: (0, import_pg_core33.uuid)("workout_summary_id"),
1584
+ workoutStartUtc: (0, import_pg_core33.timestamp)("workout_start_utc", {
1585
+ withTimezone: true
1586
+ }),
1587
+ workoutEndUtc: (0, import_pg_core33.timestamp)("workout_end_utc", {
1588
+ withTimezone: true
1589
+ })
1590
+ }).with({
1591
+ securityInvoker: true
1592
+ }).as(import_drizzle_orm29.sql`
1593
+ SELECT
1594
+ et.id,
1595
+ et.exercise_to_split_id,
1596
+ tracking_set.weight AS weight,
1597
+ tracking_set.reps AS reps,
1598
+ tracking_set.set_index AS set_index,
1599
+ COALESCE(ews.exercise_id, et.exercise_id) AS exercise_id,
1600
+ wsumm.workout_split_id,
1601
+ ws.name AS split_name,
1602
+ ex.name AS exercise,
1603
+ et.notes,
1604
+ et.workout_summary_id,
1605
+ wsumm.workout_start_utc,
1606
+ wsumm.workout_end_utc
1607
+ FROM
1608
+ tracking.exercise_tracking et
1609
+ LEFT JOIN tracking.workout_summary wsumm ON wsumm.id = et.workout_summary_id
1610
+ LEFT JOIN workout.exercise_to_workout_split ews ON ews.id = et.exercise_to_split_id
1611
+ LEFT JOIN workout.workout_split ws ON ws.id = wsumm.workout_split_id
1612
+ LEFT JOIN workout.exercise ex ON ex.id = COALESCE(ews.exercise_id, et.exercise_id)
1613
+ LEFT JOIN tracking.tracking_set tracking_set ON tracking_set.exercise_tracking_id = et.id
1614
+ `);
1615
+
1616
+ // ../../src/infrastructure/db/schema/drizzle/analytics/views/prs.view.ts
1617
+ var import_drizzle_orm30 = require("drizzle-orm");
1618
+ var import_pg_core35 = require("drizzle-orm/pg-core");
1619
+ var prsView = analyticsSchema.view("v_prs", {
1620
+ id: (0, import_pg_core35.bigint)("id", {
1621
+ mode: "number"
1622
+ }),
1623
+ exerciseToSplitId: (0, import_pg_core35.bigint)("exercise_to_split_id", {
1624
+ mode: "number"
1625
+ }),
1626
+ exerciseId: (0, import_pg_core35.bigint)("exercise_id", {
1627
+ mode: "number"
1628
+ }),
1629
+ exercise: (0, import_pg_core35.text)("exercise"),
1630
+ weight: (0, import_pg_core35.real)("weight"),
1631
+ reps: (0, import_pg_core35.bigint)("reps", {
1632
+ mode: "number"
1633
+ }),
1634
+ workoutSummaryId: (0, import_pg_core35.uuid)("workout_summary_id"),
1635
+ workoutStartUtc: (0, import_pg_core35.timestamp)("workout_start_utc", {
1636
+ withTimezone: true
1637
+ }),
1638
+ workoutEndUtc: (0, import_pg_core35.timestamp)("workout_end_utc", {
1639
+ withTimezone: true
1640
+ })
1641
+ }).with({
1642
+ securityInvoker: true
1643
+ }).as(import_drizzle_orm30.sql`
1644
+ SELECT DISTINCT
1645
+ ON (et.exercise_id) et.id,
1646
+ et.exercise_to_split_id,
1647
+ et.exercise_id,
1648
+ et.exercise,
1649
+ et.weight,
1650
+ et.reps,
1651
+ et.workout_summary_id,
1652
+ et.workout_start_utc,
1653
+ et.workout_end_utc
1654
+ FROM
1655
+ analytics.v_exercise_tracking_expanded et
1656
+ ORDER BY
1657
+ et.exercise_id,
1658
+ et.weight DESC,
1659
+ et.reps DESC,
1660
+ et.workout_start_utc DESC,
1661
+ et.id DESC
1662
+ `);
1663
+
1664
+ // src/database/database.schemas.ts
1665
+ var userDbSchema = (0, import_drizzle_zod.createSelectSchema)(user);
1666
+ var userInsertDbSchema = (0, import_drizzle_zod.createInsertSchema)(user);
1667
+ var userUpdateDbSchema = (0, import_drizzle_zod.createUpdateSchema)(user);
1668
+ var oauthAccountDbSchema = (0, import_drizzle_zod.createSelectSchema)(oauthAccount);
1669
+ var exerciseDbSchema = (0, import_drizzle_zod.createSelectSchema)(exercise);
1670
+ var workoutPlanDbSchema = (0, import_drizzle_zod.createSelectSchema)(workoutPlan);
1671
+ var workoutSplitDbSchema = (0, import_drizzle_zod.createSelectSchema)(workoutSplit);
1672
+ var exerciseToWorkoutSplitDbSchema = (0, import_drizzle_zod.createSelectSchema)(exerciseToWorkoutSplit);
1673
+ var exerciseToWorkoutSplitExpandedViewDbSchema = (0, import_drizzle_zod.createSelectSchema)(exerciseToWorkoutSplitExpandedView);
1674
+ var workoutSetDbSchema = (0, import_drizzle_zod.createSelectSchema)(workoutSet);
1675
+ var workoutSummaryDbSchema = (0, import_drizzle_zod.createSelectSchema)(workoutSummary);
1676
+ var exerciseTrackingDbSchema = (0, import_drizzle_zod.createSelectSchema)(exerciseTracking);
1677
+ var trackingSetDbSchema = (0, import_drizzle_zod.createSelectSchema)(trackingSet);
1678
+ var aerobicTrackingDbSchema = (0, import_drizzle_zod.createSelectSchema)(aerobicTracking);
1679
+ var messageDbSchema = (0, import_drizzle_zod.createSelectSchema)(message);
1680
+ var userReminderSettingDbSchema = (0, import_drizzle_zod.createSelectSchema)(userReminderSetting);
1681
+ var userSplitInformationDbSchema = (0, import_drizzle_zod.createSelectSchema)(userSplitInformation);
1682
+ var exerciseTrackingExpandedViewDbSchema = (0, import_drizzle_zod.createSelectSchema)(exerciseTrackingExpandedView);
1683
+ var prsViewDbSchema = (0, import_drizzle_zod.createSelectSchema)(prsView);
1684
+
1685
+ // src/modules/aerobics/aerobics.contracts.ts
1686
+ var import_v43 = require("zod/v4");
1687
+
1688
+ // src/modules/aerobics/aerobics.dtos.ts
1689
+ var import_v42 = require("zod/v4");
1690
+ var addAerobicInputQueryDtoSchema = import_v42.z.object({
1691
+ durationMins: import_v42.z.number(),
1692
+ durationSec: aerobicTrackingDbSchema.shape.durationSec,
1693
+ type: aerobicTrackingDbSchema.shape.type
1694
+ });
1695
+ var aerobicsDailyRecordQueryDtoSchema = import_v42.z.object({
1696
+ type: aerobicTrackingDbSchema.shape.type,
1697
+ durationSec: aerobicTrackingDbSchema.shape.durationSec,
1698
+ durationMins: aerobicTrackingDbSchema.shape.durationSec
1699
+ });
1700
+ var aerobicsWeeklyRecordQueryDtoSchema = aerobicsDailyRecordQueryDtoSchema.extend({
1701
+ workoutTimeUtc: serializedDateSchema
1702
+ });
1703
+ var weeklyDataQueryDtoSchema = import_v42.z.object({
1704
+ records: import_v42.z.array(aerobicsWeeklyRecordQueryDtoSchema),
1705
+ totalDurationSec: import_v42.z.number(),
1706
+ totalDurationMins: import_v42.z.number()
1707
+ });
1708
+ var userAerobicsQueryDtoSchema = import_v42.z.object({
1709
+ daily: import_v42.z.record(import_v42.z.string(), import_v42.z.array(aerobicsDailyRecordQueryDtoSchema)),
1710
+ weekly: import_v42.z.record(import_v42.z.string(), weeklyDataQueryDtoSchema)
1711
+ });
1712
+ var userAerobicsRowQueryDtoSchema = import_v42.z.object({
1713
+ data: userAerobicsQueryDtoSchema
1714
+ });
1715
+
1716
+ // src/modules/aerobics/aerobics.contracts.ts
1717
+ var addAerobicsRequestSchema = import_v43.z.object({
1718
+ body: import_v43.z.object({
1719
+ tz: import_v43.z.string(),
1720
+ record: addAerobicInputQueryDtoSchema
1721
+ })
1722
+ });
1723
+ var addUserAerobicsContract = {
1724
+ request: addAerobicsRequestSchema
1725
+ };
1726
+ var getAerobicsRequestSchema = import_v43.z.object({
1727
+ query: import_v43.z.object({
1728
+ tz: import_v43.z.string().optional()
1729
+ })
1730
+ });
1731
+ var userAerobicsResponseSchema = userAerobicsQueryDtoSchema;
1732
+ var getUserAerobicsContract = {
1733
+ request: getAerobicsRequestSchema,
1734
+ response: userAerobicsResponseSchema
1735
+ };
1736
+
1737
+ // src/modules/analytics/analytics.contracts.ts
1738
+ var import_v45 = require("zod/v4");
1739
+
1740
+ // src/modules/analytics/analytics.dtos.ts
1741
+ var import_v44 = require("zod/v4");
1742
+ var workoutRmRecordQueryDtoSchema = import_v44.z.object({
1743
+ exercise: exerciseDbSchema.shape.name,
1744
+ prWeight: trackingSetDbSchema.shape.weight.nullable(),
1745
+ prReps: trackingSetDbSchema.shape.reps.nullable(),
1746
+ max1Rm: import_v44.z.number()
1747
+ });
1748
+ var adherenceExerciseStatsQueryDtoSchema = import_v44.z.object({
1749
+ planned: import_v44.z.number(),
1750
+ actual: import_v44.z.number(),
1751
+ adherencePct: import_v44.z.number().nullable()
1752
+ });
1753
+ var workoutRmsQueryDtoSchema = import_v44.z.record(import_v44.z.string(), workoutRmRecordQueryDtoSchema);
1754
+ var workoutRmsRowQueryDtoSchema = import_v44.z.object({
1755
+ result: workoutRmsQueryDtoSchema
1756
+ });
1757
+ var goalAdherenceQueryDtoSchema = import_v44.z.record(import_v44.z.string(), import_v44.z.record(import_v44.z.string(), adherenceExerciseStatsQueryDtoSchema));
1758
+ var goalAdherenceRowQueryDtoSchema = import_v44.z.object({
1759
+ result: goalAdherenceQueryDtoSchema
1760
+ });
1761
+
1762
+ // src/modules/analytics/analytics.contracts.ts
1763
+ var getAnalyticsResponseSchema = import_v45.z.object({
1764
+ oneRepMaxes: import_v45.z.record(import_v45.z.string(), workoutRmRecordQueryDtoSchema),
1765
+ goals: import_v45.z.record(import_v45.z.string(), import_v45.z.record(import_v45.z.string(), adherenceExerciseStatsQueryDtoSchema))
1766
+ });
1767
+ var getAnalyticsContract = {
1768
+ response: getAnalyticsResponseSchema
1769
+ };
1770
+
1771
+ // src/modules/auth/password/password.contracts.ts
1772
+ var import_v46 = require("zod/v4");
1773
+ var sendChangePassEmailRequestSchema = import_v46.z.object({
1774
+ body: import_v46.z.object({
1775
+ identifier: import_v46.z.string()
1776
+ })
1777
+ });
1778
+ var sendChangePassEmailContract = {
1779
+ request: sendChangePassEmailRequestSchema
1780
+ };
1781
+ var resetPasswordRequestSchema = import_v46.z.object({
1782
+ body: import_v46.z.object({
1783
+ newPassword: import_v46.z.string().min(8, "Password must be at least 8 characters long")
1784
+ }),
1785
+ query: import_v46.z.object({
1786
+ token: import_v46.z.string().optional()
1787
+ })
1788
+ });
1789
+ var resetPasswordResponseSchema = import_v46.z.object({
1790
+ ok: import_v46.z.boolean()
1791
+ });
1792
+ var resetPasswordContract = {
1793
+ request: resetPasswordRequestSchema,
1794
+ response: resetPasswordResponseSchema
1795
+ };
1796
+
1797
+ // src/modules/auth/password/password.dtos.ts
1798
+ var import_v47 = require("zod/v4");
1799
+ var forgotPasswordPayloadDtoSchema = import_v47.z.object({
1800
+ sub: userDbSchema.shape.id,
1801
+ jti: import_v47.z.string(),
1802
+ exp: import_v47.z.number(),
1803
+ iss: import_v47.z.string(),
1804
+ typ: import_v47.z.string()
1805
+ });
1806
+
1807
+ // src/modules/auth/session/session.contracts.ts
1808
+ var import_v48 = require("zod/v4");
1809
+ var loginRequestSchema = import_v48.z.object({
1810
+ body: import_v48.z.object({
1811
+ identifier: import_v48.z.string().min(3).refine((value) => import_v48.z.string().email().safeParse(value).success || /^[a-zA-Z0-9_]{3,20}$/.test(value), {
1812
+ message: "Must be a valid email or username"
1813
+ }),
1814
+ password: import_v48.z.string().min(1, "Username and password are required")
1815
+ })
1816
+ });
1817
+ var loginResponseSchema = import_v48.z.object({
1818
+ message: import_v48.z.string(),
1819
+ user: userDbSchema.shape.id,
1820
+ accessToken: import_v48.z.string(),
1821
+ refreshToken: import_v48.z.string()
1822
+ });
1823
+ var loginContract = {
1824
+ request: loginRequestSchema,
1825
+ response: loginResponseSchema
1826
+ };
1827
+ var refreshTokenResponseSchema = import_v48.z.object({
1828
+ message: import_v48.z.string(),
1829
+ accessToken: import_v48.z.string(),
1830
+ refreshToken: import_v48.z.string(),
1831
+ userId: userDbSchema.shape.id
1832
+ });
1833
+ var refreshTokenContract = {
1834
+ response: refreshTokenResponseSchema
1835
+ };
1836
+ var logoutResponseSchema = import_v48.z.object({
1837
+ message: import_v48.z.string()
1838
+ });
1839
+ var logoutContract = {
1840
+ response: logoutResponseSchema
1841
+ };
1842
+
1843
+ // src/modules/auth/session/session.dtos.ts
1844
+ var import_v410 = require("zod/v4");
1845
+
1846
+ // src/modules/user/update/update.dtos.ts
1847
+ var import_v49 = require("zod/v4");
1848
+ var authenticatedUserForUpdateQueryDtoSchema = import_v49.z.object({
1849
+ username: userDbSchema.shape.username.trim().min(3, "Username must be at least 3 characters").max(15, "Username must be at most 15 characters").regex(/^[a-zA-Z0-9_]+$/, "Username may contain letters, numbers, and underscore only"),
1850
+ fullName: userDbSchema.shape.name.trim().min(1, "Full name is required").max(20, "Full name is too long").regex(/^[a-zA-Z\s]+$/, "Full name may contain letters and spaces only"),
1851
+ email: userDbSchema.shape.email.trim().toLowerCase().email("Invalid email format")
1852
+ }).partial();
1853
+ var userDataQueryDtoSchema = import_v49.z.object({
1854
+ id: userDbSchema.shape.id,
1855
+ username: userDbSchema.shape.username,
1856
+ email: userDbSchema.shape.email,
1857
+ name: userDbSchema.shape.name,
1858
+ gender: userDbSchema.shape.gender,
1859
+ createdAt: serializedDateSchema,
1860
+ updatedAt: serializedDateSchema,
1861
+ profilePicPath: userDbSchema.shape.profilePicPath,
1862
+ pushToken: userDbSchema.shape.pushToken,
1863
+ role: userDbSchema.shape.role,
1864
+ isFirstLogin: import_v49.z.boolean(),
1865
+ tokenVersion: userDbSchema.shape.tokenVersion,
1866
+ isVerified: userDbSchema.shape.isVerified,
1867
+ authProvider: userDbSchema.shape.authProvider,
1868
+ lastLogin: serializedDateSchema.nullable()
1869
+ });
1870
+ var userDataRowQueryDtoSchema = import_v49.z.object({
1871
+ userData: userDataQueryDtoSchema
1872
+ });
1873
+ var userConflictQueryDtoSchema = import_v49.z.object({
1874
+ conflict: import_v49.z.boolean()
1875
+ });
1876
+ var userMessageIdentityQueryDtoSchema = import_v49.z.object({
1877
+ id: userDbSchema.shape.id,
1878
+ username: userDbSchema.shape.username,
1879
+ name: userDbSchema.shape.name,
1880
+ profilePicPath: userDbSchema.shape.profilePicPath
1881
+ });
1882
+ var userProfilePicQueryDtoSchema = import_v49.z.object({
1883
+ profilePicPath: userDbSchema.shape.profilePicPath
1884
+ });
1885
+ var changeEmailTokenPayloadDtoSchema = import_v49.z.object({
1886
+ jti: import_v49.z.string(),
1887
+ sub: import_v49.z.string(),
1888
+ newEmail: import_v49.z.string(),
1889
+ exp: import_v49.z.number(),
1890
+ iss: import_v49.z.string(),
1891
+ typ: import_v49.z.string()
1892
+ });
1893
+
1894
+ // src/modules/auth/session/session.dtos.ts
1895
+ var accessTokenPayloadDtoSchema = import_v410.z.object({
1896
+ id: userDbSchema.shape.id,
1897
+ role: userDbSchema.shape.role,
1898
+ tokenVer: userDbSchema.shape.tokenVersion,
1899
+ cnf: import_v410.z.object({
1900
+ jkt: import_v410.z.string()
1901
+ }).optional(),
1902
+ iat: import_v410.z.number().optional(),
1903
+ exp: import_v410.z.number().optional()
1904
+ });
1905
+ var userAfterBumpQueryDtoSchema = import_v410.z.object({
1906
+ tokenVersion: userDbSchema.shape.tokenVersion,
1907
+ userData: userDataQueryDtoSchema
1908
+ });
1909
+ var tokenVersionQueryDtoSchema = import_v410.z.object({
1910
+ tokenVersion: userDbSchema.shape.tokenVersion
1911
+ });
1912
+ var lastLoginQueryDtoSchema = import_v410.z.object({
1913
+ lastLogin: import_v410.z.date().nullable()
1914
+ });
1915
+
1916
+ // src/modules/auth/verification/verification.contracts.ts
1917
+ var import_v411 = require("zod/v4");
1918
+ var verifyAccountRequestSchema = import_v411.z.object({
1919
+ query: import_v411.z.object({
1920
+ token: import_v411.z.string().optional()
1921
+ })
1922
+ });
1923
+ var verifyUserAccountContract = {
1924
+ request: verifyAccountRequestSchema
1925
+ };
1926
+ var sendVerificationMailRequestSchema = import_v411.z.object({
1927
+ body: import_v411.z.object({
1928
+ email: userDbSchema.shape.email.trim().email("Invalid email")
1929
+ })
1930
+ });
1931
+ var sendVerificationMailContract = {
1932
+ request: sendVerificationMailRequestSchema
1933
+ };
1934
+ var changeEmailAndVerifyRequestSchema = import_v411.z.object({
1935
+ body: import_v411.z.object({
1936
+ username: userDbSchema.shape.username,
1937
+ password: import_v411.z.string(),
1938
+ newEmail: userDbSchema.shape.email.trim().email("Invalid email")
1939
+ })
1940
+ });
1941
+ var changeEmailAndVerifyContract = {
1942
+ request: changeEmailAndVerifyRequestSchema
1943
+ };
1944
+ var checkUserVerifyRequestSchema = import_v411.z.object({
1945
+ query: import_v411.z.object({
1946
+ username: userDbSchema.shape.username
1947
+ })
1948
+ });
1949
+ var checkUserVerifyContract = {
1950
+ request: checkUserVerifyRequestSchema
1951
+ };
1952
+
1953
+ // src/modules/auth/verification/verification.dtos.ts
1954
+ var import_v412 = require("zod/v4");
1955
+ var emailVerifyPayloadDtoSchema = import_v412.z.object({
1956
+ sub: userDbSchema.shape.id,
1957
+ jti: import_v412.z.string(),
1958
+ exp: import_v412.z.number(),
1959
+ iss: import_v412.z.string(),
1960
+ typ: import_v412.z.string()
1961
+ });
1962
+
1963
+ // src/modules/auth/auth.dtos.ts
1964
+ var import_v413 = require("zod/v4");
1965
+ var userByIdentifierQueryDtoSchema = import_v413.z.object({
1966
+ id: userDbSchema.shape.id,
1967
+ name: userDbSchema.shape.name,
1968
+ username: userDbSchema.shape.username,
1969
+ email: userDbSchema.shape.email.optional(),
1970
+ password: userDbSchema.shape.passwordHash,
1971
+ role: userDbSchema.shape.role,
1972
+ isVerified: userDbSchema.shape.isVerified,
1973
+ lastLogin: serializedDateSchema.nullable().optional()
1974
+ });
1975
+ var userByIdentifierRawQueryDtoSchema = userByIdentifierQueryDtoSchema.omit({
1976
+ isVerified: true,
1977
+ lastLogin: true
1978
+ }).extend({
1979
+ is_verified: import_v413.z.boolean(),
1980
+ last_login: serializedDateSchema.nullable()
1981
+ });
1982
+ var userByIdentifierRowQueryDtoSchema = import_v413.z.object({
1983
+ userData: userByIdentifierRawQueryDtoSchema.nullable()
1984
+ });
1985
+ var userByUsernameRawQueryDtoSchema = userByIdentifierQueryDtoSchema.omit({
1986
+ isVerified: true
1987
+ }).extend({
1988
+ is_verified: import_v413.z.boolean()
1989
+ });
1990
+ var userByUsernameRowQueryDtoSchema = import_v413.z.object({
1991
+ userData: userByUsernameRawQueryDtoSchema.nullable()
1992
+ });
1993
+
1994
+ // src/modules/bootstrap/bootstrap.contracts.ts
1995
+ var import_v419 = require("zod/v4");
1996
+
1997
+ // src/modules/messages/messages.contracts.ts
1998
+ var import_v415 = require("zod/v4");
1999
+
2000
+ // src/modules/messages/messages.dtos.ts
2001
+ var import_v414 = require("zod/v4");
2002
+ var allUserMessageQueryDtoSchema = import_v414.z.object({
2003
+ id: messageDbSchema.shape.id,
2004
+ subject: messageDbSchema.shape.subject,
2005
+ msg: messageDbSchema.shape.msg,
2006
+ sentAt: serializedDateSchema,
2007
+ isRead: messageDbSchema.shape.isRead,
2008
+ senderFullName: userDbSchema.shape.name,
2009
+ senderProfilePicPath: userDbSchema.shape.profilePicPath
2010
+ });
2011
+ var messageAsReadQueryDtoSchema = import_v414.z.object({
2012
+ id: messageDbSchema.shape.id,
2013
+ isRead: messageDbSchema.shape.isRead
2014
+ });
2015
+ var deletedMessageQueryDtoSchema = import_v414.z.object({
2016
+ id: messageDbSchema.shape.id
2017
+ });
2018
+ var messageAfterSendQueryDtoSchema = import_v414.z.object({
2019
+ id: messageDbSchema.shape.id,
2020
+ senderId: messageDbSchema.shape.senderId,
2021
+ receiverId: messageDbSchema.shape.receiverId,
2022
+ subject: messageDbSchema.shape.subject,
2023
+ msg: messageDbSchema.shape.msg,
2024
+ sentAt: serializedDateSchema,
2025
+ isRead: messageDbSchema.shape.isRead,
2026
+ senderUsername: userDbSchema.shape.username,
2027
+ senderFullName: userDbSchema.shape.name,
2028
+ senderProfilePicPath: userDbSchema.shape.profilePicPath,
2029
+ senderGender: userDbSchema.shape.gender
2030
+ });
2031
+
2032
+ // src/modules/messages/messages.contracts.ts
2033
+ var getAllMessagesRequestSchema = import_v415.z.object({
2034
+ query: import_v415.z.object({
2035
+ tz: import_v415.z.string()
2036
+ })
2037
+ });
2038
+ var getAllUserMessagesResponseSchema = import_v415.z.object({
2039
+ messages: import_v415.z.array(allUserMessageQueryDtoSchema)
2040
+ });
2041
+ var getAllUserMessagesContract = {
2042
+ request: getAllMessagesRequestSchema,
2043
+ response: getAllUserMessagesResponseSchema
2044
+ };
2045
+ var markMessageAsReadRequestSchema = import_v415.z.object({
2046
+ params: import_v415.z.object({
2047
+ id: messageDbSchema.shape.id
2048
+ })
2049
+ });
2050
+ var markMessageAsReadResponseSchema = messageAsReadQueryDtoSchema;
2051
+ var markMessageAsReadContract = {
2052
+ request: markMessageAsReadRequestSchema,
2053
+ response: markMessageAsReadResponseSchema
2054
+ };
2055
+ var deleteMessageRequestSchema = import_v415.z.object({
2056
+ params: import_v415.z.object({
2057
+ id: messageDbSchema.shape.id
2058
+ })
2059
+ });
2060
+ var deleteMessageResponseSchema = deletedMessageQueryDtoSchema;
2061
+ var deleteMessageContract = {
2062
+ request: deleteMessageRequestSchema,
2063
+ response: deleteMessageResponseSchema
2064
+ };
2065
+
2066
+ // src/modules/workout/plan/plan.contracts.ts
2067
+ var import_v417 = require("zod/v4");
2068
+
2069
+ // src/modules/workout/plan/plan.dtos.ts
2070
+ var import_v416 = require("zod/v4");
2071
+ var workoutExerciseInputQueryDtoSchema = import_v416.z.object({
2072
+ id: exerciseDbSchema.shape.id,
2073
+ sets: import_v416.z.array(workoutSetDbSchema.shape.reps),
2074
+ orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex
2075
+ });
2076
+ var addWorkoutSplitPayloadQueryDtoSchema = import_v416.z.record(import_v416.z.string(), import_v416.z.array(workoutExerciseInputQueryDtoSchema).min(1, "Each split must include at least one exercise"));
2077
+ var exerciseInPlanQueryDtoSchema = import_v416.z.object({
2078
+ id: exerciseToWorkoutSplitDbSchema.shape.id,
2079
+ sets: import_v416.z.array(workoutSetDbSchema.shape.reps),
2080
+ isActive: exerciseToWorkoutSplitDbSchema.shape.isActive,
2081
+ targetMuscle: exerciseDbSchema.shape.targetMuscle,
2082
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle,
2083
+ exercise: exerciseDbSchema.shape.name,
2084
+ workoutSplit: workoutSplitDbSchema.shape.name
2085
+ });
2086
+ var workoutSplitQueryDtoSchema = import_v416.z.object({
2087
+ id: workoutSplitDbSchema.shape.id,
2088
+ workoutId: workoutSplitDbSchema.shape.workoutId,
2089
+ name: workoutSplitDbSchema.shape.name,
2090
+ createdAt: serializedDateSchema,
2091
+ muscleGroup: import_v416.z.string().nullable(),
2092
+ isActive: workoutSplitDbSchema.shape.isActive,
2093
+ exerciseToWorkoutSplit: import_v416.z.array(exerciseInPlanQueryDtoSchema)
2094
+ });
2095
+ var wholeUserWorkoutPlanQueryDtoSchema = import_v416.z.object({
2096
+ id: workoutPlanDbSchema.shape.id,
2097
+ numberOfSplits: import_v416.z.number(),
2098
+ createdAt: serializedDateSchema,
2099
+ userId: userDbSchema.shape.id,
2100
+ isActive: workoutPlanDbSchema.shape.isActive,
2101
+ updatedAt: serializedDateSchema,
2102
+ workoutSplits: import_v416.z.array(workoutSplitQueryDtoSchema).nullable()
2103
+ });
2104
+ var workoutSplitsMapItemQueryDtoSchema = import_v416.z.object({
2105
+ id: exerciseDbSchema.shape.id,
2106
+ name: exerciseDbSchema.shape.name,
2107
+ sets: import_v416.z.array(workoutSetDbSchema.shape.reps),
2108
+ orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2109
+ targetMuscle: exerciseDbSchema.shape.targetMuscle,
2110
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2111
+ });
2112
+ var workoutExerciseMetadataQueryDtoSchema = workoutSplitsMapItemQueryDtoSchema.pick({
2113
+ targetMuscle: true,
2114
+ specificTargetMuscle: true
2115
+ });
2116
+ var workoutSplitsMapQueryDtoSchema = import_v416.z.record(import_v416.z.string(), import_v416.z.array(workoutSplitsMapItemQueryDtoSchema));
2117
+ var workoutSplitsRowQueryDtoSchema = import_v416.z.object({
2118
+ splits: workoutSplitsMapQueryDtoSchema
2119
+ });
2120
+ var workoutPlanIdQueryDtoSchema = import_v416.z.object({
2121
+ id: workoutPlanDbSchema.shape.id
2122
+ });
2123
+ var workoutSplitIdQueryDtoSchema = import_v416.z.object({
2124
+ id: workoutSplitDbSchema.shape.id
2125
+ });
2126
+ var exerciseAssignmentIdQueryDtoSchema = import_v416.z.object({
2127
+ id: exerciseToWorkoutSplitDbSchema.shape.id
2128
+ });
2129
+
2130
+ // src/modules/workout/plan/plan.contracts.ts
2131
+ var getWholeWorkoutPlanRequestSchema = import_v417.z.object({
2132
+ query: import_v417.z.object({
2133
+ tz: import_v417.z.string().optional()
2134
+ })
2135
+ });
2136
+ var getWholeUserWorkoutPlanResponseSchema = import_v417.z.object({
2137
+ workoutPlan: wholeUserWorkoutPlanQueryDtoSchema.nullable(),
2138
+ workoutPlanForEditWorkout: workoutSplitsMapQueryDtoSchema.nullable()
2139
+ });
2140
+ var getWholeUserWorkoutPlanContract = {
2141
+ request: getWholeWorkoutPlanRequestSchema,
2142
+ response: getWholeUserWorkoutPlanResponseSchema
2143
+ };
2144
+ var addWorkoutRequestSchema = import_v417.z.object({
2145
+ body: import_v417.z.object({
2146
+ workoutData: addWorkoutSplitPayloadQueryDtoSchema,
2147
+ workoutName: import_v417.z.string().optional(),
2148
+ tz: import_v417.z.string()
2149
+ })
2150
+ });
2151
+ var addWorkoutResponseSchema = import_v417.z.object({
2152
+ message: import_v417.z.string(),
2153
+ workoutPlan: wholeUserWorkoutPlanQueryDtoSchema,
2154
+ workoutPlanForEditWorkout: workoutSplitsMapQueryDtoSchema
2155
+ });
2156
+ var addWorkoutContract = {
2157
+ request: addWorkoutRequestSchema,
2158
+ response: addWorkoutResponseSchema
2159
+ };
2160
+
2161
+ // src/modules/workout/tracking/tracking.dtos.ts
2162
+ var import_v418 = require("zod/v4");
2163
+ var finishedWorkoutEntryQueryDtoSchema = import_v418.z.object({
2164
+ exerciseToSplitId: exerciseToWorkoutSplitDbSchema.shape.id,
2165
+ weight: import_v418.z.array(trackingSetDbSchema.shape.weight),
2166
+ reps: import_v418.z.array(trackingSetDbSchema.shape.reps),
2167
+ notes: exerciseTrackingDbSchema.shape.notes.optional()
2168
+ });
2169
+ var exerciseMetadataQueryDtoSchema = import_v418.z.object({
2170
+ targetMuscle: exerciseDbSchema.shape.targetMuscle,
2171
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2172
+ });
2173
+ var exerciseTrackingPrMaxQueryDtoSchema = import_v418.z.object({
2174
+ exercise: exerciseDbSchema.shape.name,
2175
+ weight: trackingSetDbSchema.shape.weight,
2176
+ reps: trackingSetDbSchema.shape.reps,
2177
+ workoutTimeUtc: serializedDateSchema
2178
+ });
2179
+ var exerciseTrackingAnalysisQueryDtoSchema = import_v418.z.object({
2180
+ uniqueDays: import_v418.z.number(),
2181
+ mostFrequentSplit: import_v418.z.string().nullable(),
2182
+ mostFrequentSplitDays: import_v418.z.number().nullable(),
2183
+ lastWorkoutDate: import_v418.z.string().nullable(),
2184
+ splitDaysByName: import_v418.z.record(import_v418.z.string(), import_v418.z.number()),
2185
+ prs: import_v418.z.object({
2186
+ prMax: exerciseTrackingPrMaxQueryDtoSchema.nullable()
2187
+ })
2188
+ });
2189
+ var trackingMapItemQueryDtoSchema = import_v418.z.object({
2190
+ id: exerciseTrackingDbSchema.shape.id,
2191
+ exerciseToSplitId: exerciseToWorkoutSplitDbSchema.shape.id,
2192
+ weight: import_v418.z.array(trackingSetDbSchema.shape.weight),
2193
+ reps: import_v418.z.array(trackingSetDbSchema.shape.reps),
2194
+ notes: exerciseTrackingDbSchema.shape.notes,
2195
+ exerciseId: exerciseDbSchema.shape.id,
2196
+ workoutSplitId: workoutSplitDbSchema.shape.id,
2197
+ splitName: workoutSplitDbSchema.shape.name,
2198
+ exercise: exerciseDbSchema.shape.name,
2199
+ workoutDate: serializedDateSchema,
2200
+ orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2201
+ exerciseToWorkoutSplit: import_v418.z.object({
2202
+ sets: import_v418.z.array(workoutSetDbSchema.shape.reps),
2203
+ exercises: exerciseMetadataQueryDtoSchema
2204
+ })
2205
+ });
2206
+ var trackingByDateItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2207
+ workoutDate: true
2208
+ });
2209
+ var trackingBySplitNameItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2210
+ splitName: true
2211
+ });
2212
+ var exerciseTrackingAndStatsQueryDtoSchema = import_v418.z.object({
2213
+ exerciseTrackingAnalysis: exerciseTrackingAnalysisQueryDtoSchema,
2214
+ exerciseTrackingMaps: import_v418.z.object({
2215
+ byDate: import_v418.z.record(import_v418.z.string(), import_v418.z.array(trackingByDateItemQueryDtoSchema)),
2216
+ byExerciseToSplitId: import_v418.z.record(import_v418.z.string(), import_v418.z.array(trackingMapItemQueryDtoSchema)),
2217
+ bySplitName: import_v418.z.record(import_v418.z.string(), import_v418.z.array(trackingBySplitNameItemQueryDtoSchema))
2218
+ })
2219
+ });
2220
+ var exerciseTrackingAndStatsRowQueryDtoSchema = import_v418.z.object({
2221
+ data: exerciseTrackingAndStatsQueryDtoSchema
2222
+ });
2223
+ var workoutSplitLookupQueryDtoSchema = import_v418.z.object({
2224
+ workoutSplitId: workoutSplitDbSchema.shape.id
2225
+ });
2226
+ var workoutSummaryIdQueryDtoSchema = import_v418.z.object({
2227
+ id: import_v418.z.string().uuid()
2228
+ });
2229
+ var exerciseTrackingIdQueryDtoSchema = import_v418.z.object({
2230
+ id: exerciseTrackingDbSchema.shape.id
2231
+ });
2232
+
2233
+ // src/modules/bootstrap/bootstrap.contracts.ts
2234
+ var bootstrapRequestSchema = import_v419.z.object({
2235
+ query: import_v419.z.object({
2236
+ tz: import_v419.z.string().optional()
2237
+ })
2238
+ });
2239
+ var bootstrapResponseSchema = import_v419.z.object({
2240
+ user: userDataQueryDtoSchema,
2241
+ workout: getWholeUserWorkoutPlanResponseSchema,
2242
+ tracking: exerciseTrackingAndStatsQueryDtoSchema,
2243
+ messages: getAllUserMessagesResponseSchema,
2244
+ aerobics: userAerobicsResponseSchema
2245
+ });
2246
+ var bootstrapContract = {
2247
+ request: bootstrapRequestSchema,
2248
+ response: bootstrapResponseSchema
2249
+ };
2250
+
2251
+ // src/modules/exercises/exercises.dtos.ts
2252
+ var import_v420 = require("zod/v4");
2253
+ var getAllExercisesExerciseQueryDtoSchema = import_v420.z.object({
2254
+ id: exerciseDbSchema.shape.id,
2255
+ name: exerciseDbSchema.shape.name,
2256
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2257
+ });
2258
+ var exercisesMapByMuscleQueryDtoSchema = import_v420.z.record(import_v420.z.string(), import_v420.z.array(getAllExercisesExerciseQueryDtoSchema));
2259
+ var exerciseMapByMuscleRowQueryDtoSchema = import_v420.z.object({
2260
+ result: import_v420.z.object({
2261
+ map: exercisesMapByMuscleQueryDtoSchema.nullable()
2262
+ }).nullable()
2263
+ });
2264
+
2265
+ // src/modules/exercises/exercises.contracts.ts
2266
+ var getAllExercisesResponseSchema = exercisesMapByMuscleQueryDtoSchema;
2267
+ var getAllExercisesContract = {
2268
+ response: getAllExercisesResponseSchema
2269
+ };
2270
+
2271
+ // src/modules/oauth/apple/apple.contracts.ts
2272
+ var import_v421 = require("zod/v4");
2273
+ var appleNameInputSchema = import_v421.z.object({
2274
+ givenName: import_v421.z.string().nullable(),
2275
+ familyName: import_v421.z.string().nullable()
2276
+ });
2277
+ var appleOAuthRequestSchema = import_v421.z.object({
2278
+ body: import_v421.z.object({
2279
+ idToken: import_v421.z.string({
2280
+ error: "Missing or invalid Apple identityToken"
2281
+ }),
2282
+ rawNonce: import_v421.z.string(),
2283
+ name: appleNameInputSchema.optional(),
2284
+ email: userDbSchema.shape.email.email().nullable()
2285
+ })
2286
+ });
2287
+ var appleOAuthContract = {
2288
+ request: appleOAuthRequestSchema
2289
+ };
2290
+
2291
+ // src/modules/oauth/apple/apple.dtos.ts
2292
+ var import_v422 = require("zod/v4");
2293
+ var appleTokenVerificationResultDtoSchema = import_v422.z.object({
2294
+ appleSub: import_v422.z.string(),
2295
+ email: userDbSchema.shape.email.nullable(),
2296
+ emailVerified: import_v422.z.boolean(),
2297
+ fullName: userDbSchema.shape.name
2298
+ });
2299
+
2300
+ // src/modules/oauth/google/google.contracts.ts
2301
+ var import_v423 = require("zod/v4");
2302
+ var googleOAuthRequestSchema = import_v423.z.object({
2303
+ body: import_v423.z.object({
2304
+ idToken: import_v423.z.string().optional()
2305
+ })
2306
+ });
2307
+ var googleOAuthContract = {
2308
+ request: googleOAuthRequestSchema
2309
+ };
2310
+
2311
+ // src/modules/oauth/google/google.dtos.ts
2312
+ var import_v424 = require("zod/v4");
2313
+ var googleTokenVerificationResultDtoSchema = import_v424.z.object({
2314
+ googleSub: import_v424.z.string(),
2315
+ email: userDbSchema.shape.email.nullable(),
2316
+ emailVerified: import_v424.z.boolean(),
2317
+ fullName: userDbSchema.shape.name
2318
+ });
2319
+
2320
+ // src/modules/oauth/oauth.contracts.ts
2321
+ var import_v425 = require("zod/v4");
2322
+ var oAuthLoginResponseSchema = import_v425.z.object({
2323
+ message: import_v425.z.string(),
2324
+ user: userDbSchema.shape.id,
2325
+ accessToken: import_v425.z.string(),
2326
+ refreshToken: import_v425.z.string(),
2327
+ missingFields: import_v425.z.array(import_v425.z.string()).nullable()
2328
+ });
2329
+ var proceedLoginResponseSchema = loginResponseSchema;
2330
+ var oAuthLoginContract = {
2331
+ response: oAuthLoginResponseSchema
2332
+ };
2333
+
2334
+ // src/modules/oauth/oauth.dtos.ts
2335
+ var import_v426 = require("zod/v4");
2336
+ var oAuthLookupQueryDtoSchema = import_v426.z.object({
2337
+ userId: userDbSchema.shape.id.nullable(),
2338
+ missingFields: import_v426.z.string().nullable()
2339
+ });
2340
+ var oAuthLookupRawQueryDtoSchema = import_v426.z.object({
2341
+ user_id: userDbSchema.shape.id,
2342
+ missing_fields: import_v426.z.string().nullable()
2343
+ });
2344
+ var oAuthLookupRowQueryDtoSchema = import_v426.z.object({
2345
+ oauth_data: oAuthLookupRawQueryDtoSchema.nullable()
2346
+ });
2347
+ var oAuthLinkQueryDtoSchema = import_v426.z.object({
2348
+ userId: userDbSchema.shape.id.nullable()
2349
+ });
2350
+ var oAuthLinkRowQueryDtoSchema = import_v426.z.object({
2351
+ user_id: userDbSchema.shape.id.nullable()
2352
+ });
2353
+ var oAuthCreatedUserRowQueryDtoSchema = import_v426.z.object({
2354
+ user_id: userDbSchema.shape.id
2355
+ });
2356
+
2357
+ // src/modules/push/push.dtos.ts
2358
+ var import_v427 = require("zod/v4");
2359
+ var userWithNotificationsEnabledQueryDtoSchema = import_v427.z.object({
2360
+ pushToken: userDbSchema.shape.pushToken,
2361
+ name: userDbSchema.shape.name
2362
+ });
2363
+ var userToHourlyReminderQueryDtoSchema = import_v427.z.object({
2364
+ userId: userDbSchema.shape.id,
2365
+ name: userDbSchema.shape.name,
2366
+ pushToken: userDbSchema.shape.pushToken,
2367
+ reminderOffsetMinutes: import_v427.z.number(),
2368
+ splitId: workoutSplitDbSchema.shape.id,
2369
+ splitName: workoutSplitDbSchema.shape.name.nullable(),
2370
+ estimatedTimeUtc: import_v427.z.string()
2371
+ });
2372
+
2373
+ // src/modules/user/create/create.contracts.ts
2374
+ var import_v429 = require("zod/v4");
2375
+
2376
+ // src/modules/user/create/create.dtos.ts
2377
+ var import_v428 = require("zod/v4");
2378
+ var createdUserQueryDtoSchema = import_v428.z.object({
2379
+ id: userDbSchema.shape.id,
2380
+ username: userDbSchema.shape.username,
2381
+ name: userDbSchema.shape.name,
2382
+ email: userDbSchema.shape.email,
2383
+ gender: userDbSchema.shape.gender,
2384
+ role: userDbSchema.shape.role,
2385
+ createdAt: serializedDateSchema
2386
+ });
2387
+ var createdUserRawQueryDtoSchema = createdUserQueryDtoSchema.omit({
2388
+ createdAt: true
2389
+ }).extend({
2390
+ created_at: serializedDateSchema
2391
+ });
2392
+ var createdUserRowQueryDtoSchema = import_v428.z.object({
2393
+ userData: createdUserRawQueryDtoSchema
2394
+ });
2395
+ var userExistsQueryDtoSchema = import_v428.z.object({
2396
+ id: userDbSchema.shape.id.nullable()
2397
+ });
2398
+
2399
+ // src/modules/user/create/create.contracts.ts
2400
+ var usernameSchema = userDbSchema.shape.username.trim().min(3, "Username must be at least 3 characters").max(15, "Username must be at most 15 characters").regex(/^[a-zA-Z0-9_]+$/, "Username may contain letters, numbers, and underscore only");
2401
+ var fullNameSchema = userDbSchema.shape.name.trim().max(20, "Full name is too long").regex(/^[a-zA-Z\s]+$/, "Full name may contain letters and spaces only");
2402
+ var createUserRequestSchema = import_v429.z.object({
2403
+ body: import_v429.z.object({
2404
+ username: usernameSchema,
2405
+ fullName: import_v429.z.preprocess((value) => value == null || typeof value === "string" && value.trim() === "" ? "User" : value, fullNameSchema),
2406
+ email: userDbSchema.shape.email.trim().toLowerCase().email("Invalid email format"),
2407
+ password: import_v429.z.string().min(8, "Password must be at least 8 characters long"),
2408
+ gender: import_v429.z.preprocess((value) => value === "" || value == null ? "Unknown" : value, import_v429.z.enum([
2409
+ "Male",
2410
+ "Female",
2411
+ "Other",
2412
+ "Unknown"
2413
+ ]))
2414
+ })
2415
+ });
2416
+ var createUserUserSchema = createdUserQueryDtoSchema;
2417
+ var createUserResponseSchema = import_v429.z.object({
2418
+ message: import_v429.z.string(),
2419
+ user: createdUserQueryDtoSchema
2420
+ });
2421
+ var createUserContract = {
2422
+ request: createUserRequestSchema,
2423
+ response: createUserResponseSchema
2424
+ };
2425
+
2426
+ // src/modules/user/push-tokens/push-tokens.contracts.ts
2427
+ var import_v430 = require("zod/v4");
2428
+ var saveUserPushTokenRequestSchema = import_v430.z.object({
2429
+ body: import_v430.z.object({
2430
+ token: userDbSchema.shape.pushToken.unwrap()
2431
+ })
2432
+ });
2433
+ var saveUserPushTokenContract = {
2434
+ request: saveUserPushTokenRequestSchema
2435
+ };
2436
+
2437
+ // src/modules/user/update/update.contracts.ts
2438
+ var import_v431 = require("zod/v4");
2439
+ var updateUserRequestSchema = import_v431.z.object({
2440
+ body: authenticatedUserForUpdateQueryDtoSchema
2441
+ });
2442
+ var updateAuthenticatedUserResponseSchema = import_v431.z.object({
2443
+ message: import_v431.z.string(),
2444
+ emailChanged: import_v431.z.boolean(),
2445
+ user: userDataQueryDtoSchema
2446
+ });
2447
+ var updateAuthenticatedUserContract = {
2448
+ request: updateUserRequestSchema,
2449
+ response: updateAuthenticatedUserResponseSchema
2450
+ };
2451
+ var userDataResponseSchema = import_v431.z.object({
2452
+ userData: userDataQueryDtoSchema
2453
+ });
2454
+ var userDataContract = {
2455
+ response: userDataResponseSchema
2456
+ };
2457
+ var getAuthenticatedUserByIdResponseSchema = userDataQueryDtoSchema;
2458
+ var getAuthenticatedUserByIdContract = {
2459
+ response: getAuthenticatedUserByIdResponseSchema
2460
+ };
2461
+ var deleteProfilePicRequestSchema = import_v431.z.object({
2462
+ body: import_v431.z.object({
2463
+ profilePicPath: import_v431.z.string()
2464
+ })
2465
+ });
2466
+ var deleteUserProfilePicContract = {
2467
+ request: deleteProfilePicRequestSchema
2468
+ };
2469
+ var setProfilePicAndUpdateDBResponseSchema = import_v431.z.object({
2470
+ profilePicPath: import_v431.z.string(),
2471
+ url: import_v431.z.string(),
2472
+ message: import_v431.z.string()
2473
+ });
2474
+ var setProfilePicAndUpdateDBContract = {
2475
+ response: setProfilePicAndUpdateDBResponseSchema
2476
+ };
2477
+
2478
+ // src/modules/video-analysis/video-analysis.contracts.ts
2479
+ var import_v432 = require("zod/v4");
2480
+ var getPresignedUrlFromS3RequestSchema = import_v432.z.object({
2481
+ body: import_v432.z.object({
2482
+ exercise: exerciseDbSchema.shape.name,
2483
+ fileType: import_v432.z.string(),
2484
+ jobId: import_v432.z.string()
2485
+ })
2486
+ });
2487
+ var getPresignedUrlFromS3ResponseSchema = import_v432.z.object({
2488
+ uploadUrl: import_v432.z.string(),
2489
+ fileKey: import_v432.z.string(),
2490
+ requestId: import_v432.z.string()
2491
+ });
2492
+ var getPresignedUrlFromS3Contract = {
2493
+ request: getPresignedUrlFromS3RequestSchema,
2494
+ response: getPresignedUrlFromS3ResponseSchema
2495
+ };
2496
+
2497
+ // src/modules/video-analysis/video-analysis.dtos.ts
2498
+ var import_v433 = require("zod/v4");
2499
+ var enqueueAnalyzeVideoParamsDtoSchema = import_v433.z.object({
2500
+ fileKey: import_v433.z.string(),
2501
+ exercise: import_v433.z.string(),
2502
+ userId: userDbSchema.shape.id,
2503
+ requestId: import_v433.z.string(),
2504
+ sentryTrace: import_v433.z.string().optional(),
2505
+ baggage: import_v433.z.string().optional()
2506
+ });
2507
+ var analyzeVideoPayloadDtoSchema = enqueueAnalyzeVideoParamsDtoSchema.extend({
2508
+ expiresAt: import_v433.z.number()
2509
+ });
2510
+ var squatRepetitionDtoSchema = import_v433.z.object({
2511
+ depth: import_v433.z.object({
2512
+ value: import_v433.z.number(),
2513
+ status: import_v433.z.string(),
2514
+ confidence: import_v433.z.number()
2515
+ }),
2516
+ backLean: import_v433.z.object({
2517
+ value: import_v433.z.number(),
2518
+ excessive: import_v433.z.boolean(),
2519
+ confidence: import_v433.z.number()
2520
+ }),
2521
+ audit: import_v433.z.object({
2522
+ framesAnalyzed: import_v433.z.number(),
2523
+ validFrames: import_v433.z.number(),
2524
+ cameraAngle: import_v433.z.string(),
2525
+ rawBottomAngle: import_v433.z.number(),
2526
+ samplingRate: import_v433.z.string()
2527
+ })
2528
+ });
2529
+ var analyzeVideoResultPayloadDtoSchema = /* @__PURE__ */ __name((resultSchema) => import_v433.z.intersection(import_v433.z.object({
2530
+ jobId: import_v433.z.string(),
2531
+ userId: userDbSchema.shape.id,
2532
+ exercise: import_v433.z.string(),
2533
+ requestId: import_v433.z.string().optional()
2534
+ }), import_v433.z.discriminatedUnion("status", [
2535
+ import_v433.z.object({
2536
+ status: import_v433.z.literal("completed"),
2537
+ result: import_v433.z.array(resultSchema),
2538
+ error: import_v433.z.null()
2539
+ }),
2540
+ import_v433.z.object({
2541
+ status: import_v433.z.literal("failed"),
2542
+ result: import_v433.z.null(),
2543
+ error: import_v433.z.string()
2544
+ })
2545
+ ])), "analyzeVideoResultPayloadDtoSchema");
2546
+
2547
+ // src/modules/web-sockets/web-sockets.contracts.ts
2548
+ var import_v434 = require("zod/v4");
2549
+ var generateTicketRequestSchema = import_v434.z.object({
2550
+ body: import_v434.z.object({
2551
+ username: userDbSchema.shape.username
2552
+ })
2553
+ });
2554
+ var generateTicketResponseSchema = import_v434.z.object({
2555
+ ticket: import_v434.z.string()
2556
+ });
2557
+ var generateTicketContract = {
2558
+ request: generateTicketRequestSchema,
2559
+ response: generateTicketResponseSchema
2560
+ };
2561
+
2562
+ // src/modules/workout/tracking/tracking.contracts.ts
2563
+ var import_v435 = require("zod/v4");
2564
+ var getExerciseTrackingRequestSchema = import_v435.z.object({
2565
+ query: import_v435.z.object({
2566
+ tz: import_v435.z.string().optional()
2567
+ })
2568
+ });
2569
+ var getExerciseTrackingResponseSchema = exerciseTrackingAndStatsQueryDtoSchema;
2570
+ var getExerciseTrackingContract = {
2571
+ request: getExerciseTrackingRequestSchema,
2572
+ response: getExerciseTrackingResponseSchema
2573
+ };
2574
+ var finishWorkoutRequestSchema = import_v435.z.object({
2575
+ body: import_v435.z.object({
2576
+ workout: import_v435.z.array(finishedWorkoutEntryQueryDtoSchema),
2577
+ tz: import_v435.z.string().optional(),
2578
+ workoutStartUtc: import_v435.z.string().datetime("workoutStartUtc must be a valid ISO datetime"),
2579
+ workoutEndUtc: import_v435.z.string().datetime("workoutEndUtc must be a valid ISO datetime").optional().nullable()
2580
+ })
2581
+ });
2582
+ var finishUserWorkoutResponseSchema = exerciseTrackingAndStatsQueryDtoSchema;
2583
+ var finishUserWorkoutContract = {
2584
+ request: finishWorkoutRequestSchema,
2585
+ response: finishUserWorkoutResponseSchema
2586
+ };
2587
+ // Annotate the CommonJS export names for ESM import in node:
2588
+ 0 && (module.exports = {
2589
+ accessTokenPayloadDtoSchema,
2590
+ addAerobicInputQueryDtoSchema,
2591
+ addAerobicsRequestSchema,
2592
+ addUserAerobicsContract,
2593
+ addWorkoutContract,
2594
+ addWorkoutRequestSchema,
2595
+ addWorkoutResponseSchema,
2596
+ addWorkoutSplitPayloadQueryDtoSchema,
2597
+ adherenceExerciseStatsQueryDtoSchema,
2598
+ aerobicTrackingDbSchema,
2599
+ aerobicsDailyRecordQueryDtoSchema,
2600
+ aerobicsWeeklyRecordQueryDtoSchema,
2601
+ allUserMessageQueryDtoSchema,
2602
+ analyzeVideoPayloadDtoSchema,
2603
+ analyzeVideoResultPayloadDtoSchema,
2604
+ appleOAuthContract,
2605
+ appleOAuthRequestSchema,
2606
+ appleTokenVerificationResultDtoSchema,
2607
+ authenticatedUserForUpdateQueryDtoSchema,
2608
+ bootstrapContract,
2609
+ bootstrapRequestSchema,
2610
+ bootstrapResponseSchema,
2611
+ changeEmailAndVerifyContract,
2612
+ changeEmailAndVerifyRequestSchema,
2613
+ changeEmailTokenPayloadDtoSchema,
2614
+ checkUserVerifyContract,
2615
+ checkUserVerifyRequestSchema,
2616
+ createUserContract,
2617
+ createUserRequestSchema,
2618
+ createUserResponseSchema,
2619
+ createUserUserSchema,
2620
+ createdUserQueryDtoSchema,
2621
+ createdUserRawQueryDtoSchema,
2622
+ createdUserRowQueryDtoSchema,
2623
+ deleteMessageContract,
2624
+ deleteMessageRequestSchema,
2625
+ deleteMessageResponseSchema,
2626
+ deleteProfilePicRequestSchema,
2627
+ deleteUserProfilePicContract,
2628
+ deletedMessageQueryDtoSchema,
2629
+ emailVerifyPayloadDtoSchema,
2630
+ enqueueAnalyzeVideoParamsDtoSchema,
2631
+ exerciseAssignmentIdQueryDtoSchema,
2632
+ exerciseDbSchema,
2633
+ exerciseInPlanQueryDtoSchema,
2634
+ exerciseMapByMuscleRowQueryDtoSchema,
2635
+ exerciseMetadataQueryDtoSchema,
2636
+ exerciseToWorkoutSplitDbSchema,
2637
+ exerciseToWorkoutSplitExpandedViewDbSchema,
2638
+ exerciseTrackingAnalysisQueryDtoSchema,
2639
+ exerciseTrackingAndStatsQueryDtoSchema,
2640
+ exerciseTrackingAndStatsRowQueryDtoSchema,
2641
+ exerciseTrackingDbSchema,
2642
+ exerciseTrackingExpandedViewDbSchema,
2643
+ exerciseTrackingIdQueryDtoSchema,
2644
+ exerciseTrackingPrMaxQueryDtoSchema,
2645
+ exercisesMapByMuscleQueryDtoSchema,
2646
+ finishUserWorkoutContract,
2647
+ finishUserWorkoutResponseSchema,
2648
+ finishWorkoutRequestSchema,
2649
+ finishedWorkoutEntryQueryDtoSchema,
2650
+ forgotPasswordPayloadDtoSchema,
2651
+ generateTicketContract,
2652
+ generateTicketRequestSchema,
2653
+ generateTicketResponseSchema,
2654
+ getAerobicsRequestSchema,
2655
+ getAllExercisesContract,
2656
+ getAllExercisesExerciseQueryDtoSchema,
2657
+ getAllExercisesResponseSchema,
2658
+ getAllMessagesRequestSchema,
2659
+ getAllUserMessagesContract,
2660
+ getAllUserMessagesResponseSchema,
2661
+ getAnalyticsContract,
2662
+ getAnalyticsResponseSchema,
2663
+ getAuthenticatedUserByIdContract,
2664
+ getAuthenticatedUserByIdResponseSchema,
2665
+ getExerciseTrackingContract,
2666
+ getExerciseTrackingRequestSchema,
2667
+ getExerciseTrackingResponseSchema,
2668
+ getPresignedUrlFromS3Contract,
2669
+ getPresignedUrlFromS3RequestSchema,
2670
+ getPresignedUrlFromS3ResponseSchema,
2671
+ getUserAerobicsContract,
2672
+ getWholeUserWorkoutPlanContract,
2673
+ getWholeUserWorkoutPlanResponseSchema,
2674
+ getWholeWorkoutPlanRequestSchema,
2675
+ goalAdherenceQueryDtoSchema,
2676
+ goalAdherenceRowQueryDtoSchema,
2677
+ googleOAuthContract,
2678
+ googleOAuthRequestSchema,
2679
+ googleTokenVerificationResultDtoSchema,
2680
+ lastLoginQueryDtoSchema,
2681
+ loginContract,
2682
+ loginRequestSchema,
2683
+ loginResponseSchema,
2684
+ logoutContract,
2685
+ logoutResponseSchema,
2686
+ markMessageAsReadContract,
2687
+ markMessageAsReadRequestSchema,
2688
+ markMessageAsReadResponseSchema,
2689
+ messageAfterSendQueryDtoSchema,
2690
+ messageAsReadQueryDtoSchema,
2691
+ messageDbSchema,
2692
+ oAuthCreatedUserRowQueryDtoSchema,
2693
+ oAuthLinkQueryDtoSchema,
2694
+ oAuthLinkRowQueryDtoSchema,
2695
+ oAuthLoginContract,
2696
+ oAuthLoginResponseSchema,
2697
+ oAuthLookupQueryDtoSchema,
2698
+ oAuthLookupRawQueryDtoSchema,
2699
+ oAuthLookupRowQueryDtoSchema,
2700
+ oauthAccountDbSchema,
2701
+ proceedLoginResponseSchema,
2702
+ prsViewDbSchema,
2703
+ refreshTokenContract,
2704
+ refreshTokenResponseSchema,
2705
+ resetPasswordContract,
2706
+ resetPasswordRequestSchema,
2707
+ resetPasswordResponseSchema,
2708
+ saveUserPushTokenContract,
2709
+ saveUserPushTokenRequestSchema,
2710
+ sendChangePassEmailContract,
2711
+ sendChangePassEmailRequestSchema,
2712
+ sendVerificationMailContract,
2713
+ sendVerificationMailRequestSchema,
2714
+ serializedDateSchema,
2715
+ setProfilePicAndUpdateDBContract,
2716
+ setProfilePicAndUpdateDBResponseSchema,
2717
+ squatRepetitionDtoSchema,
2718
+ timezoneSchema,
2719
+ tokenVersionQueryDtoSchema,
2720
+ trackingByDateItemQueryDtoSchema,
2721
+ trackingBySplitNameItemQueryDtoSchema,
2722
+ trackingMapItemQueryDtoSchema,
2723
+ trackingSetDbSchema,
2724
+ updateAuthenticatedUserContract,
2725
+ updateAuthenticatedUserResponseSchema,
2726
+ updateUserRequestSchema,
2727
+ userAerobicsQueryDtoSchema,
2728
+ userAerobicsResponseSchema,
2729
+ userAerobicsRowQueryDtoSchema,
2730
+ userAfterBumpQueryDtoSchema,
2731
+ userByIdentifierQueryDtoSchema,
2732
+ userByIdentifierRawQueryDtoSchema,
2733
+ userByIdentifierRowQueryDtoSchema,
2734
+ userByUsernameRawQueryDtoSchema,
2735
+ userByUsernameRowQueryDtoSchema,
2736
+ userConflictQueryDtoSchema,
2737
+ userDataContract,
2738
+ userDataQueryDtoSchema,
2739
+ userDataResponseSchema,
2740
+ userDataRowQueryDtoSchema,
2741
+ userDbSchema,
2742
+ userExistsQueryDtoSchema,
2743
+ userInsertDbSchema,
2744
+ userMessageIdentityQueryDtoSchema,
2745
+ userProfilePicQueryDtoSchema,
2746
+ userReminderSettingDbSchema,
2747
+ userSplitInformationDbSchema,
2748
+ userToHourlyReminderQueryDtoSchema,
2749
+ userUpdateDbSchema,
2750
+ userWithNotificationsEnabledQueryDtoSchema,
2751
+ verifyAccountRequestSchema,
2752
+ verifyUserAccountContract,
2753
+ weeklyDataQueryDtoSchema,
2754
+ wholeUserWorkoutPlanQueryDtoSchema,
2755
+ workoutExerciseInputQueryDtoSchema,
2756
+ workoutExerciseMetadataQueryDtoSchema,
2757
+ workoutPlanDbSchema,
2758
+ workoutPlanIdQueryDtoSchema,
2759
+ workoutRmRecordQueryDtoSchema,
2760
+ workoutRmsQueryDtoSchema,
2761
+ workoutRmsRowQueryDtoSchema,
2762
+ workoutSetDbSchema,
2763
+ workoutSplitDbSchema,
2764
+ workoutSplitIdQueryDtoSchema,
2765
+ workoutSplitLookupQueryDtoSchema,
2766
+ workoutSplitQueryDtoSchema,
2767
+ workoutSplitsMapItemQueryDtoSchema,
2768
+ workoutSplitsMapQueryDtoSchema,
2769
+ workoutSplitsRowQueryDtoSchema,
2770
+ workoutSummaryDbSchema,
2771
+ workoutSummaryIdQueryDtoSchema
2772
+ });