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