@strong-together/shared 2.7.0 → 2.9.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 CHANGED
@@ -39,9 +39,6 @@ __export(index_exports, {
39
39
  appleOAuthRequestSchema: () => appleOAuthRequestSchema,
40
40
  appleTokenVerificationResultDtoSchema: () => appleTokenVerificationResultDtoSchema,
41
41
  authenticatedUserForUpdateQueryDtoSchema: () => authenticatedUserForUpdateQueryDtoSchema,
42
- bootstrapContract: () => bootstrapContract,
43
- bootstrapRequestSchema: () => bootstrapRequestSchema,
44
- bootstrapResponseSchema: () => bootstrapResponseSchema,
45
42
  changeEmailAndVerifyContract: () => changeEmailAndVerifyContract,
46
43
  changeEmailAndVerifyRequestSchema: () => changeEmailAndVerifyRequestSchema,
47
44
  changeEmailTokenPayloadDtoSchema: () => changeEmailTokenPayloadDtoSchema,
@@ -300,7 +297,7 @@ var message = messagesSchema.table("message", {
300
297
  msg: (0, import_pg_core4.text)("msg").default("Hello World").notNull(),
301
298
  sentAt: (0, import_pg_core4.timestamp)("sent_at", {
302
299
  withTimezone: true
303
- }).default(import_drizzle_orm2.sql`(now() AT TIME ZONE 'utc')`).notNull(),
300
+ }).defaultNow().notNull(),
304
301
  isRead: (0, import_pg_core4.boolean)("is_read").default(false).notNull()
305
302
  }, (t) => [
306
303
  (0, import_pg_core4.primaryKey)({
@@ -397,7 +394,7 @@ var userReminderSetting = remindersSchema.table("user_reminder_setting", {
397
394
  reminderOffsetMinutes: (0, import_pg_core6.integer)("reminder_offset_minutes").default(60).notNull(),
398
395
  updatedAt: (0, import_pg_core6.timestamp)("updated_at", {
399
396
  withTimezone: true
400
- }).default(import_drizzle_orm4.sql`timezone('UTC', now())`).notNull(),
397
+ }).defaultNow().notNull(),
401
398
  timezone: (0, import_pg_core6.text)("timezone").default("'UTC'::text")
402
399
  }, (t) => [
403
400
  (0, import_pg_core6.primaryKey)({
@@ -590,7 +587,7 @@ var exerciseToWorkoutSplit = workoutSchema.table("exercise_to_workout_split", {
590
587
  }).notNull(),
591
588
  createdAt: (0, import_pg_core10.timestamp)("created_at", {
592
589
  withTimezone: true
593
- }).default(import_drizzle_orm8.sql`(now() AT TIME ZONE 'utc')`).notNull(),
590
+ }).defaultNow().notNull(),
594
591
  orderIndex: (0, import_pg_core10.bigint)("order_index", {
595
592
  mode: "number"
596
593
  }).notNull(),
@@ -1037,7 +1034,7 @@ var workoutPlan = workoutSchema.table("workout_plan", {
1037
1034
  isActive: (0, import_pg_core21.boolean)("is_active").default(true).notNull(),
1038
1035
  updatedAt: (0, import_pg_core21.timestamp)("updated_at", {
1039
1036
  withTimezone: true
1040
- }).default(import_drizzle_orm18.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1037
+ }).defaultNow().notNull(),
1041
1038
  createdAt: (0, import_pg_core21.timestamp)("created_at", {
1042
1039
  withTimezone: true
1043
1040
  }).defaultNow().notNull()
@@ -1124,7 +1121,7 @@ var workoutSplit = workoutSchema.table("workout_split", {
1124
1121
  orderIndex: (0, import_pg_core23.integer)("order_index").notNull(),
1125
1122
  createdAt: (0, import_pg_core23.timestamp)("created_at", {
1126
1123
  withTimezone: true
1127
- }).default(import_drizzle_orm20.sql`(NOW() AT TIME ZONE 'utc')`).notNull(),
1124
+ }).defaultNow().notNull(),
1128
1125
  isActive: (0, import_pg_core23.boolean)("is_active").default(true).notNull()
1129
1126
  }, (t) => [
1130
1127
  (0, import_pg_core23.primaryKey)({
@@ -1180,7 +1177,7 @@ var userSplitInformation = remindersSchema.table("user_split_information", {
1180
1177
  }).default("1.00").notNull(),
1181
1178
  lastComputedAt: (0, import_pg_core24.timestamp)("last_computed_at", {
1182
1179
  withTimezone: true
1183
- }).default(import_drizzle_orm21.sql`timezone('UTC', now())`).notNull(),
1180
+ }).defaultNow().notNull(),
1184
1181
  preferredWeekday: (0, import_pg_core24.integer)("preferred_weekday")
1185
1182
  }, (t) => [
1186
1183
  (0, import_pg_core24.primaryKey)({
@@ -1283,7 +1280,7 @@ var aerobicTracking = trackingSchema.table("aerobic_tracking", {
1283
1280
  }).default(0).notNull(),
1284
1281
  workoutTimeUtc: (0, import_pg_core26.timestamp)("workout_time_utc", {
1285
1282
  withTimezone: true
1286
- }).default(import_drizzle_orm23.sql`(now() AT TIME ZONE 'utc')`).notNull()
1283
+ }).defaultNow().notNull()
1287
1284
  }, (t) => [
1288
1285
  (0, import_pg_core26.primaryKey)({
1289
1286
  name: "aerobic_tracking_pkey",
@@ -1362,7 +1359,7 @@ var oauthAccount = identitySchema.table("oauth_account", {
1362
1359
  providerEmail: (0, import_pg_core28.text)("provider_email").notNull(),
1363
1360
  linkedAt: (0, import_pg_core28.timestamp)("linked_at", {
1364
1361
  withTimezone: true
1365
- }).default(import_drizzle_orm25.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1362
+ }).defaultNow().notNull(),
1366
1363
  missingFields: (0, import_pg_core28.text)("missing_fields")
1367
1364
  }, (t) => [
1368
1365
  (0, import_pg_core28.primaryKey)({
@@ -1449,10 +1446,10 @@ var user = identitySchema.table("user", {
1449
1446
  gender: (0, import_pg_core30.text)("gender").default("Unknown").notNull(),
1450
1447
  createdAt: (0, import_pg_core30.timestamp)("created_at", {
1451
1448
  withTimezone: true
1452
- }).default(import_drizzle_orm27.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1449
+ }).defaultNow().notNull(),
1453
1450
  updatedAt: (0, import_pg_core30.timestamp)("updated_at", {
1454
1451
  withTimezone: true
1455
- }).default(import_drizzle_orm27.sql`(now() AT TIME ZONE 'utc')`).notNull(),
1452
+ }).defaultNow().notNull(),
1456
1453
  profilePicPath: (0, import_pg_core30.text)("profile_pic_path"),
1457
1454
  id: (0, import_pg_core30.uuid)("id").defaultRandom().notNull(),
1458
1455
  pushToken: (0, import_pg_core30.text)("push_token"),
@@ -1716,7 +1713,7 @@ var aerobicsDailyRecordQueryDtoSchema = import_v42.z.object({
1716
1713
  durationMins: aerobicTrackingDbSchema.shape.durationSec
1717
1714
  });
1718
1715
  var aerobicsWeeklyRecordQueryDtoSchema = aerobicsDailyRecordQueryDtoSchema.extend({
1719
- workoutTimeUtc: serializedDateSchema
1716
+ workoutTimeLocal: serializedDateSchema
1720
1717
  });
1721
1718
  var weeklyDataQueryDtoSchema = import_v42.z.object({
1722
1719
  records: import_v42.z.array(aerobicsWeeklyRecordQueryDtoSchema),
@@ -2013,15 +2010,32 @@ var userByUsernameRowQueryDtoSchema = import_v413.z.object({
2013
2010
  userData: userByUsernameRawQueryDtoSchema.nullable()
2014
2011
  });
2015
2012
 
2016
- // src/modules/bootstrap/bootstrap.contracts.ts
2017
- var import_v419 = require("zod/v4");
2013
+ // src/modules/exercises/exercises.dtos.ts
2014
+ var import_v414 = require("zod/v4");
2015
+ var getAllExercisesExerciseQueryDtoSchema = import_v414.z.object({
2016
+ id: exerciseDbSchema.shape.id,
2017
+ name: exerciseDbSchema.shape.name,
2018
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2019
+ });
2020
+ var exercisesMapByMuscleQueryDtoSchema = import_v414.z.record(import_v414.z.string(), import_v414.z.array(getAllExercisesExerciseQueryDtoSchema));
2021
+ var exerciseMapByMuscleRowQueryDtoSchema = import_v414.z.object({
2022
+ result: import_v414.z.object({
2023
+ map: exercisesMapByMuscleQueryDtoSchema.nullable()
2024
+ }).nullable()
2025
+ });
2026
+
2027
+ // src/modules/exercises/exercises.contracts.ts
2028
+ var getAllExercisesResponseSchema = exercisesMapByMuscleQueryDtoSchema;
2029
+ var getAllExercisesContract = {
2030
+ response: getAllExercisesResponseSchema
2031
+ };
2018
2032
 
2019
2033
  // src/modules/messages/messages.contracts.ts
2020
- var import_v415 = require("zod/v4");
2034
+ var import_v416 = require("zod/v4");
2021
2035
 
2022
2036
  // src/modules/messages/messages.dtos.ts
2023
- var import_v414 = require("zod/v4");
2024
- var allUserMessageQueryDtoSchema = import_v414.z.object({
2037
+ var import_v415 = require("zod/v4");
2038
+ var allUserMessageQueryDtoSchema = import_v415.z.object({
2025
2039
  id: messageDbSchema.shape.id,
2026
2040
  subject: messageDbSchema.shape.subject,
2027
2041
  msg: messageDbSchema.shape.msg,
@@ -2030,14 +2044,14 @@ var allUserMessageQueryDtoSchema = import_v414.z.object({
2030
2044
  senderFullName: userDbSchema.shape.name,
2031
2045
  senderProfilePicPath: userDbSchema.shape.profilePicPath
2032
2046
  });
2033
- var messageAsReadQueryDtoSchema = import_v414.z.object({
2047
+ var messageAsReadQueryDtoSchema = import_v415.z.object({
2034
2048
  id: messageDbSchema.shape.id,
2035
2049
  isRead: messageDbSchema.shape.isRead
2036
2050
  });
2037
- var deletedMessageQueryDtoSchema = import_v414.z.object({
2051
+ var deletedMessageQueryDtoSchema = import_v415.z.object({
2038
2052
  id: messageDbSchema.shape.id
2039
2053
  });
2040
- var messageAfterSendQueryDtoSchema = import_v414.z.object({
2054
+ var messageAfterSendQueryDtoSchema = import_v415.z.object({
2041
2055
  id: messageDbSchema.shape.id,
2042
2056
  senderId: messageDbSchema.shape.senderId,
2043
2057
  receiverId: messageDbSchema.shape.receiverId,
@@ -2052,20 +2066,20 @@ var messageAfterSendQueryDtoSchema = import_v414.z.object({
2052
2066
  });
2053
2067
 
2054
2068
  // src/modules/messages/messages.contracts.ts
2055
- var getAllMessagesRequestSchema = import_v415.z.object({
2056
- query: import_v415.z.object({
2057
- tz: import_v415.z.string()
2069
+ var getAllMessagesRequestSchema = import_v416.z.object({
2070
+ query: import_v416.z.object({
2071
+ tz: import_v416.z.string()
2058
2072
  })
2059
2073
  });
2060
- var getAllUserMessagesResponseSchema = import_v415.z.object({
2061
- messages: import_v415.z.array(allUserMessageQueryDtoSchema)
2074
+ var getAllUserMessagesResponseSchema = import_v416.z.object({
2075
+ messages: import_v416.z.array(allUserMessageQueryDtoSchema)
2062
2076
  });
2063
2077
  var getAllUserMessagesContract = {
2064
2078
  request: getAllMessagesRequestSchema,
2065
2079
  response: getAllUserMessagesResponseSchema
2066
2080
  };
2067
- var markMessageAsReadRequestSchema = import_v415.z.object({
2068
- params: import_v415.z.object({
2081
+ var markMessageAsReadRequestSchema = import_v416.z.object({
2082
+ params: import_v416.z.object({
2069
2083
  id: messageDbSchema.shape.id
2070
2084
  })
2071
2085
  });
@@ -2074,8 +2088,8 @@ var markMessageAsReadContract = {
2074
2088
  request: markMessageAsReadRequestSchema,
2075
2089
  response: markMessageAsReadResponseSchema
2076
2090
  };
2077
- var deleteMessageRequestSchema = import_v415.z.object({
2078
- params: import_v415.z.object({
2091
+ var deleteMessageRequestSchema = import_v416.z.object({
2092
+ params: import_v416.z.object({
2079
2093
  id: messageDbSchema.shape.id
2080
2094
  })
2081
2095
  });
@@ -2085,282 +2099,18 @@ var deleteMessageContract = {
2085
2099
  response: deleteMessageResponseSchema
2086
2100
  };
2087
2101
 
2088
- // src/modules/workout/plan/plan.contracts.ts
2102
+ // src/modules/oauth/apple/apple.contracts.ts
2089
2103
  var import_v417 = require("zod/v4");
2090
-
2091
- // src/modules/workout/plan/plan.dtos.ts
2092
- var import_v416 = require("zod/v4");
2093
- var workoutExerciseInputQueryDtoSchema = import_v416.z.object({
2094
- exerciseId: exerciseDbSchema.shape.id,
2095
- sets: import_v416.z.array(workoutSetDbSchema.shape.reps),
2096
- orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex
2097
- });
2098
- var workoutSplitInputBaseQueryDtoSchema = import_v416.z.object({
2099
- name: workoutSplitDbSchema.shape.name.min(1, "Split name is required"),
2100
- orderIndex: import_v416.z.number().int().nonnegative(),
2101
- exercises: import_v416.z.array(workoutExerciseInputQueryDtoSchema).min(1, "Each split must include at least one exercise")
2102
- });
2103
- var saveWorkoutSplitInputQueryDtoSchema = workoutSplitInputBaseQueryDtoSchema.extend({
2104
- id: workoutSplitDbSchema.shape.id.optional()
2105
- });
2106
- var saveWorkoutSplitPayloadQueryDtoSchema = import_v416.z.array(saveWorkoutSplitInputQueryDtoSchema).min(1, "Workout must include at least one split");
2107
- var exerciseInPlanQueryDtoSchema = import_v416.z.object({
2108
- exerciseToSplitId: exerciseToWorkoutSplitDbSchema.shape.id,
2109
- exerciseId: exerciseDbSchema.shape.id,
2110
- name: exerciseDbSchema.shape.name,
2111
- sets: import_v416.z.array(workoutSetDbSchema.shape.reps),
2112
- orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2113
- isActive: exerciseToWorkoutSplitDbSchema.shape.isActive,
2114
- targetMuscle: exerciseDbSchema.shape.targetMuscle,
2115
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2116
- });
2117
- var workoutSplitQueryDtoSchema = import_v416.z.object({
2118
- id: workoutSplitDbSchema.shape.id,
2119
- workoutId: workoutSplitDbSchema.shape.workoutId,
2120
- name: workoutSplitDbSchema.shape.name,
2121
- orderIndex: workoutSplitDbSchema.shape.orderIndex,
2122
- createdAt: serializedDateSchema,
2123
- muscleGroup: import_v416.z.string().nullable(),
2124
- isActive: workoutSplitDbSchema.shape.isActive,
2125
- exercises: import_v416.z.array(exerciseInPlanQueryDtoSchema)
2126
- });
2127
- var wholeUserWorkoutPlanQueryDtoSchema = import_v416.z.object({
2128
- id: workoutPlanDbSchema.shape.id,
2129
- numberOfSplits: import_v416.z.number(),
2130
- createdAt: serializedDateSchema,
2131
- userId: userDbSchema.shape.id,
2132
- isActive: workoutPlanDbSchema.shape.isActive,
2133
- updatedAt: serializedDateSchema,
2134
- workoutSplits: import_v416.z.array(workoutSplitQueryDtoSchema).nullable()
2135
- });
2136
- var workoutPlanIdQueryDtoSchema = import_v416.z.object({
2137
- id: workoutPlanDbSchema.shape.id
2138
- });
2139
- var workoutSplitIdQueryDtoSchema = import_v416.z.object({
2140
- id: workoutSplitDbSchema.shape.id
2141
- });
2142
- var exerciseAssignmentIdQueryDtoSchema = import_v416.z.object({
2143
- id: exerciseToWorkoutSplitDbSchema.shape.id
2144
- });
2145
-
2146
- // src/modules/workout/plan/plan.contracts.ts
2147
- var getWholeWorkoutPlanRequestSchema = import_v417.z.object({
2148
- query: import_v417.z.object({
2149
- tz: import_v417.z.string().optional()
2150
- })
2151
- });
2152
- var getWholeUserWorkoutPlanResponseSchema = import_v417.z.object({
2153
- workoutPlan: wholeUserWorkoutPlanQueryDtoSchema.nullable()
2154
- });
2155
- var getWholeUserWorkoutPlanContract = {
2156
- request: getWholeWorkoutPlanRequestSchema,
2157
- response: getWholeUserWorkoutPlanResponseSchema
2158
- };
2159
- var workoutMutationResponseSchema = import_v417.z.object({
2160
- message: import_v417.z.string(),
2161
- workoutPlan: wholeUserWorkoutPlanQueryDtoSchema
2104
+ var appleNameInputSchema = import_v417.z.object({
2105
+ givenName: import_v417.z.string().nullable(),
2106
+ familyName: import_v417.z.string().nullable()
2162
2107
  });
2163
- var addWorkoutRequestSchema = import_v417.z.object({
2108
+ var appleOAuthRequestSchema = import_v417.z.object({
2164
2109
  body: import_v417.z.object({
2165
- workoutData: saveWorkoutSplitPayloadQueryDtoSchema,
2166
- workoutName: import_v417.z.string().optional(),
2167
- tz: import_v417.z.string()
2168
- })
2169
- });
2170
- var addWorkoutResponseSchema = workoutMutationResponseSchema;
2171
- var addWorkoutContract = {
2172
- request: addWorkoutRequestSchema,
2173
- response: addWorkoutResponseSchema
2174
- };
2175
-
2176
- // src/modules/workout/tracking/tracking.dtos.ts
2177
- var import_v418 = require("zod/v4");
2178
- var trackedSetQueryDtoSchema = import_v418.z.object({
2179
- reps: trackingSetDbSchema.shape.reps,
2180
- weight: trackingSetDbSchema.shape.weight,
2181
- setIndex: trackingSetDbSchema.shape.setIndex
2182
- });
2183
- var finishedWorkoutEntryBaseQueryDtoSchema = import_v418.z.object({
2184
- trackedSets: import_v418.z.array(trackedSetQueryDtoSchema),
2185
- notes: exerciseTrackingDbSchema.shape.notes.optional()
2186
- });
2187
- var finishedWorkoutEntryQueryDtoSchema = finishedWorkoutEntryBaseQueryDtoSchema.extend({
2188
- isExerciseAssignedToSplit: import_v418.z.boolean(),
2189
- exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2190
- exerciseId: exerciseTrackingDbSchema.shape.exerciseId
2191
- });
2192
- var exerciseMetadataQueryDtoSchema = import_v418.z.object({
2193
- targetMuscle: exerciseDbSchema.shape.targetMuscle,
2194
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2195
- });
2196
- var exerciseTrackingPrMaxQueryDtoSchema = import_v418.z.object({
2197
- exercise: exerciseDbSchema.shape.name,
2198
- weight: trackingSetDbSchema.shape.weight,
2199
- reps: trackingSetDbSchema.shape.reps,
2200
- workoutTimeUtc: serializedDateSchema
2201
- });
2202
- var exerciseTrackingAnalysisQueryDtoSchema = import_v418.z.object({
2203
- uniqueDays: import_v418.z.number(),
2204
- mostFrequentSplit: import_v418.z.string().nullable(),
2205
- mostFrequentSplitDays: import_v418.z.number().nullable(),
2206
- lastWorkoutDate: import_v418.z.string().nullable(),
2207
- splitDaysByName: import_v418.z.record(import_v418.z.string(), import_v418.z.number()),
2208
- prs: import_v418.z.object({
2209
- prMax: exerciseTrackingPrMaxQueryDtoSchema.nullable()
2210
- })
2211
- });
2212
- var trackingMapItemQueryDtoSchema = import_v418.z.object({
2213
- id: exerciseTrackingDbSchema.shape.id,
2214
- exerciseToSplitId: exerciseToWorkoutSplitDbSchema.shape.id,
2215
- weight: import_v418.z.array(trackingSetDbSchema.shape.weight),
2216
- reps: import_v418.z.array(trackingSetDbSchema.shape.reps),
2217
- notes: exerciseTrackingDbSchema.shape.notes,
2218
- exerciseId: exerciseDbSchema.shape.id,
2219
- workoutSplitId: workoutSplitDbSchema.shape.id,
2220
- splitName: workoutSplitDbSchema.shape.name,
2221
- exercise: exerciseDbSchema.shape.name,
2222
- workoutDate: serializedDateSchema,
2223
- orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2224
- exerciseToWorkoutSplit: import_v418.z.object({
2225
- sets: import_v418.z.array(workoutSetDbSchema.shape.reps),
2226
- exercises: exerciseMetadataQueryDtoSchema
2227
- })
2228
- });
2229
- var trackingByDateItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2230
- workoutDate: true
2231
- });
2232
- var trackingBySplitNameItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2233
- splitName: true
2234
- });
2235
- var groupedTrackingItemQueryDtoSchema = import_v418.z.object({
2236
- exerciseTracking: import_v418.z.object({
2237
- exerciseTrackingId: exerciseTrackingDbSchema.shape.id,
2238
- sets: import_v418.z.array(import_v418.z.object({
2239
- setIndex: trackingSetDbSchema.shape.setIndex,
2240
- weight: trackingSetDbSchema.shape.weight,
2241
- reps: trackingSetDbSchema.shape.reps
2242
- })),
2243
- notes: exerciseTrackingDbSchema.shape.notes,
2244
- exerciseAssignment: import_v418.z.object({
2245
- exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2246
- orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex.nullable(),
2247
- exerciseId: exerciseDbSchema.shape.id,
2248
- workoutSplitId: workoutSplitDbSchema.shape.id,
2249
- workoutSplitName: workoutSplitDbSchema.shape.name,
2250
- exerciseName: exerciseDbSchema.shape.name,
2251
- targetMuscle: exerciseDbSchema.shape.targetMuscle,
2252
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2253
- })
2254
- })
2255
- });
2256
- var exerciseTrackingStatsQueryDtoSchema = import_v418.z.object({
2257
- workoutCount: import_v418.z.coerce.number(),
2258
- hasExerciseTracking: import_v418.z.boolean(),
2259
- nextWorkoutSplit: import_v418.z.object({
2260
- id: workoutSplitDbSchema.shape.id,
2261
- name: workoutSplitDbSchema.shape.name,
2262
- orderIndex: workoutSplitDbSchema.shape.orderIndex,
2263
- muscleGroup: import_v418.z.string().nullable()
2264
- }).nullable(),
2265
- workoutTargets: import_v418.z.object({
2266
- workoutCountThisWeek: import_v418.z.coerce.number(),
2267
- workoutCountScheduledPerWeek: import_v418.z.coerce.number(),
2268
- weekStreak: import_v418.z.coerce.number()
2269
- }),
2270
- lastWorkoutStats: import_v418.z.object({
2271
- workoutDate: import_v418.z.string().nullable(),
2272
- workoutSplitName: workoutSplitDbSchema.shape.name.nullable(),
2273
- exerciseTrackedCount: import_v418.z.coerce.number().nullable(),
2274
- setTrackedCount: import_v418.z.coerce.number().nullable()
2275
- }),
2276
- prs: import_v418.z.array(import_v418.z.object({
2277
- exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2278
- exerciseId: exerciseDbSchema.shape.id,
2279
- exerciseName: exerciseDbSchema.shape.name,
2280
- prWeight: trackingSetDbSchema.shape.weight,
2281
- prReps: trackingSetDbSchema.shape.reps,
2282
- prSetIndex: trackingSetDbSchema.shape.setIndex,
2283
- estimatedOneRepMax: import_v418.z.number().nullable()
2284
- }))
2285
- });
2286
- var exerciseTrackingMapsQueryDtoSchema = import_v418.z.object({
2287
- byDate: import_v418.z.record(import_v418.z.string(), import_v418.z.array(groupedTrackingItemQueryDtoSchema)),
2288
- byExerciseToSplitId: import_v418.z.record(import_v418.z.string(), import_v418.z.array(groupedTrackingItemQueryDtoSchema)),
2289
- bySplitName: import_v418.z.record(import_v418.z.string(), import_v418.z.array(groupedTrackingItemQueryDtoSchema))
2290
- });
2291
- var exerciseTrackingAndStatsQueryDtoSchema = import_v418.z.object({
2292
- trackingStats: exerciseTrackingStatsQueryDtoSchema,
2293
- trackingMaps: exerciseTrackingMapsQueryDtoSchema
2294
- });
2295
- var exerciseTrackingAndStatsRowQueryDtoSchema = import_v418.z.object({
2296
- data: exerciseTrackingAndStatsQueryDtoSchema
2297
- });
2298
- var exerciseTrackingStatsRowQueryDtoSchema = import_v418.z.object({
2299
- data: exerciseTrackingStatsQueryDtoSchema
2300
- });
2301
- var exerciseTrackingMapsRowQueryDtoSchema = import_v418.z.object({
2302
- data: exerciseTrackingMapsQueryDtoSchema
2303
- });
2304
- var workoutSplitLookupQueryDtoSchema = import_v418.z.object({
2305
- workoutSplitId: workoutSplitDbSchema.shape.id
2306
- });
2307
- var workoutSummaryIdQueryDtoSchema = import_v418.z.object({
2308
- id: import_v418.z.string().uuid()
2309
- });
2310
- var exerciseTrackingIdQueryDtoSchema = import_v418.z.object({
2311
- id: exerciseTrackingDbSchema.shape.id
2312
- });
2313
-
2314
- // src/modules/bootstrap/bootstrap.contracts.ts
2315
- var bootstrapRequestSchema = import_v419.z.object({
2316
- query: import_v419.z.object({
2317
- tz: import_v419.z.string().optional()
2318
- })
2319
- });
2320
- var bootstrapResponseSchema = import_v419.z.object({
2321
- user: userDataQueryDtoSchema,
2322
- workout: getWholeUserWorkoutPlanResponseSchema,
2323
- tracking: exerciseTrackingAndStatsQueryDtoSchema,
2324
- messages: getAllUserMessagesResponseSchema,
2325
- aerobics: userAerobicsResponseSchema
2326
- });
2327
- var bootstrapContract = {
2328
- request: bootstrapRequestSchema,
2329
- response: bootstrapResponseSchema
2330
- };
2331
-
2332
- // src/modules/exercises/exercises.dtos.ts
2333
- var import_v420 = require("zod/v4");
2334
- var getAllExercisesExerciseQueryDtoSchema = import_v420.z.object({
2335
- id: exerciseDbSchema.shape.id,
2336
- name: exerciseDbSchema.shape.name,
2337
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2338
- });
2339
- var exercisesMapByMuscleQueryDtoSchema = import_v420.z.record(import_v420.z.string(), import_v420.z.array(getAllExercisesExerciseQueryDtoSchema));
2340
- var exerciseMapByMuscleRowQueryDtoSchema = import_v420.z.object({
2341
- result: import_v420.z.object({
2342
- map: exercisesMapByMuscleQueryDtoSchema.nullable()
2343
- }).nullable()
2344
- });
2345
-
2346
- // src/modules/exercises/exercises.contracts.ts
2347
- var getAllExercisesResponseSchema = exercisesMapByMuscleQueryDtoSchema;
2348
- var getAllExercisesContract = {
2349
- response: getAllExercisesResponseSchema
2350
- };
2351
-
2352
- // src/modules/oauth/apple/apple.contracts.ts
2353
- var import_v421 = require("zod/v4");
2354
- var appleNameInputSchema = import_v421.z.object({
2355
- givenName: import_v421.z.string().nullable(),
2356
- familyName: import_v421.z.string().nullable()
2357
- });
2358
- var appleOAuthRequestSchema = import_v421.z.object({
2359
- body: import_v421.z.object({
2360
- idToken: import_v421.z.string({
2110
+ idToken: import_v417.z.string({
2361
2111
  error: "Missing or invalid Apple identityToken"
2362
2112
  }),
2363
- rawNonce: import_v421.z.string(),
2113
+ rawNonce: import_v417.z.string(),
2364
2114
  name: appleNameInputSchema.optional(),
2365
2115
  email: userDbSchema.shape.email.email().nullable()
2366
2116
  })
@@ -2370,19 +2120,19 @@ var appleOAuthContract = {
2370
2120
  };
2371
2121
 
2372
2122
  // src/modules/oauth/apple/apple.dtos.ts
2373
- var import_v422 = require("zod/v4");
2374
- var appleTokenVerificationResultDtoSchema = import_v422.z.object({
2375
- appleSub: import_v422.z.string(),
2123
+ var import_v418 = require("zod/v4");
2124
+ var appleTokenVerificationResultDtoSchema = import_v418.z.object({
2125
+ appleSub: import_v418.z.string(),
2376
2126
  email: userDbSchema.shape.email.nullable(),
2377
- emailVerified: import_v422.z.boolean(),
2127
+ emailVerified: import_v418.z.boolean(),
2378
2128
  fullName: userDbSchema.shape.name
2379
2129
  });
2380
2130
 
2381
2131
  // src/modules/oauth/google/google.contracts.ts
2382
- var import_v423 = require("zod/v4");
2383
- var googleOAuthRequestSchema = import_v423.z.object({
2384
- body: import_v423.z.object({
2385
- idToken: import_v423.z.string().optional()
2132
+ var import_v419 = require("zod/v4");
2133
+ var googleOAuthRequestSchema = import_v419.z.object({
2134
+ body: import_v419.z.object({
2135
+ idToken: import_v419.z.string().optional()
2386
2136
  })
2387
2137
  });
2388
2138
  var googleOAuthContract = {
@@ -2390,22 +2140,22 @@ var googleOAuthContract = {
2390
2140
  };
2391
2141
 
2392
2142
  // src/modules/oauth/google/google.dtos.ts
2393
- var import_v424 = require("zod/v4");
2394
- var googleTokenVerificationResultDtoSchema = import_v424.z.object({
2395
- googleSub: import_v424.z.string(),
2143
+ var import_v420 = require("zod/v4");
2144
+ var googleTokenVerificationResultDtoSchema = import_v420.z.object({
2145
+ googleSub: import_v420.z.string(),
2396
2146
  email: userDbSchema.shape.email.nullable(),
2397
- emailVerified: import_v424.z.boolean(),
2147
+ emailVerified: import_v420.z.boolean(),
2398
2148
  fullName: userDbSchema.shape.name
2399
2149
  });
2400
2150
 
2401
2151
  // src/modules/oauth/oauth.contracts.ts
2402
- var import_v425 = require("zod/v4");
2403
- var oAuthLoginResponseSchema = import_v425.z.object({
2404
- message: import_v425.z.string(),
2152
+ var import_v421 = require("zod/v4");
2153
+ var oAuthLoginResponseSchema = import_v421.z.object({
2154
+ message: import_v421.z.string(),
2405
2155
  user: userDbSchema.shape.id,
2406
- accessToken: import_v425.z.string(),
2407
- refreshToken: import_v425.z.string(),
2408
- missingFields: import_v425.z.array(import_v425.z.string()).nullable()
2156
+ accessToken: import_v421.z.string(),
2157
+ refreshToken: import_v421.z.string(),
2158
+ missingFields: import_v421.z.array(import_v421.z.string()).nullable()
2409
2159
  });
2410
2160
  var proceedLoginResponseSchema = loginResponseSchema;
2411
2161
  var oAuthLoginContract = {
@@ -2413,50 +2163,50 @@ var oAuthLoginContract = {
2413
2163
  };
2414
2164
 
2415
2165
  // src/modules/oauth/oauth.dtos.ts
2416
- var import_v426 = require("zod/v4");
2417
- var oAuthLookupQueryDtoSchema = import_v426.z.object({
2166
+ var import_v422 = require("zod/v4");
2167
+ var oAuthLookupQueryDtoSchema = import_v422.z.object({
2418
2168
  userId: userDbSchema.shape.id.nullable(),
2419
- missingFields: import_v426.z.string().nullable()
2169
+ missingFields: import_v422.z.string().nullable()
2420
2170
  });
2421
- var oAuthLookupRawQueryDtoSchema = import_v426.z.object({
2171
+ var oAuthLookupRawQueryDtoSchema = import_v422.z.object({
2422
2172
  user_id: userDbSchema.shape.id,
2423
- missing_fields: import_v426.z.string().nullable()
2173
+ missing_fields: import_v422.z.string().nullable()
2424
2174
  });
2425
- var oAuthLookupRowQueryDtoSchema = import_v426.z.object({
2175
+ var oAuthLookupRowQueryDtoSchema = import_v422.z.object({
2426
2176
  oauth_data: oAuthLookupRawQueryDtoSchema.nullable()
2427
2177
  });
2428
- var oAuthLinkQueryDtoSchema = import_v426.z.object({
2178
+ var oAuthLinkQueryDtoSchema = import_v422.z.object({
2429
2179
  userId: userDbSchema.shape.id.nullable()
2430
2180
  });
2431
- var oAuthLinkRowQueryDtoSchema = import_v426.z.object({
2181
+ var oAuthLinkRowQueryDtoSchema = import_v422.z.object({
2432
2182
  user_id: userDbSchema.shape.id.nullable()
2433
2183
  });
2434
- var oAuthCreatedUserRowQueryDtoSchema = import_v426.z.object({
2184
+ var oAuthCreatedUserRowQueryDtoSchema = import_v422.z.object({
2435
2185
  user_id: userDbSchema.shape.id
2436
2186
  });
2437
2187
 
2438
2188
  // src/modules/push/push.dtos.ts
2439
- var import_v427 = require("zod/v4");
2440
- var userWithNotificationsEnabledQueryDtoSchema = import_v427.z.object({
2189
+ var import_v423 = require("zod/v4");
2190
+ var userWithNotificationsEnabledQueryDtoSchema = import_v423.z.object({
2441
2191
  pushToken: userDbSchema.shape.pushToken,
2442
2192
  name: userDbSchema.shape.name
2443
2193
  });
2444
- var userToHourlyReminderQueryDtoSchema = import_v427.z.object({
2194
+ var userToHourlyReminderQueryDtoSchema = import_v423.z.object({
2445
2195
  userId: userDbSchema.shape.id,
2446
2196
  name: userDbSchema.shape.name,
2447
2197
  pushToken: userDbSchema.shape.pushToken,
2448
- reminderOffsetMinutes: import_v427.z.number(),
2198
+ reminderOffsetMinutes: import_v423.z.number(),
2449
2199
  splitId: workoutSplitDbSchema.shape.id,
2450
2200
  splitName: workoutSplitDbSchema.shape.name.nullable(),
2451
- estimatedTimeUtc: import_v427.z.string()
2201
+ estimatedTimeUtc: import_v423.z.string()
2452
2202
  });
2453
2203
 
2454
2204
  // src/modules/user/create/create.contracts.ts
2455
- var import_v429 = require("zod/v4");
2205
+ var import_v425 = require("zod/v4");
2456
2206
 
2457
2207
  // src/modules/user/create/create.dtos.ts
2458
- var import_v428 = require("zod/v4");
2459
- var createdUserQueryDtoSchema = import_v428.z.object({
2208
+ var import_v424 = require("zod/v4");
2209
+ var createdUserQueryDtoSchema = import_v424.z.object({
2460
2210
  id: userDbSchema.shape.id,
2461
2211
  username: userDbSchema.shape.username,
2462
2212
  name: userDbSchema.shape.name,
@@ -2470,23 +2220,23 @@ var createdUserRawQueryDtoSchema = createdUserQueryDtoSchema.omit({
2470
2220
  }).extend({
2471
2221
  created_at: serializedDateSchema
2472
2222
  });
2473
- var createdUserRowQueryDtoSchema = import_v428.z.object({
2223
+ var createdUserRowQueryDtoSchema = import_v424.z.object({
2474
2224
  userData: createdUserRawQueryDtoSchema
2475
2225
  });
2476
- var userExistsQueryDtoSchema = import_v428.z.object({
2226
+ var userExistsQueryDtoSchema = import_v424.z.object({
2477
2227
  id: userDbSchema.shape.id.nullable()
2478
2228
  });
2479
2229
 
2480
2230
  // src/modules/user/create/create.contracts.ts
2481
2231
  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");
2482
2232
  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");
2483
- var createUserRequestSchema = import_v429.z.object({
2484
- body: import_v429.z.object({
2233
+ var createUserRequestSchema = import_v425.z.object({
2234
+ body: import_v425.z.object({
2485
2235
  username: usernameSchema,
2486
- fullName: import_v429.z.preprocess((value) => value == null || typeof value === "string" && value.trim() === "" ? "User" : value, fullNameSchema),
2236
+ fullName: import_v425.z.preprocess((value) => value == null || typeof value === "string" && value.trim() === "" ? "User" : value, fullNameSchema),
2487
2237
  email: userDbSchema.shape.email.trim().toLowerCase().email("Invalid email format"),
2488
- password: import_v429.z.string().min(8, "Password must be at least 8 characters long"),
2489
- gender: import_v429.z.preprocess((value) => value === "" || value == null ? "Unknown" : value, import_v429.z.enum([
2238
+ password: import_v425.z.string().min(8, "Password must be at least 8 characters long"),
2239
+ gender: import_v425.z.preprocess((value) => value === "" || value == null ? "Unknown" : value, import_v425.z.enum([
2490
2240
  "Male",
2491
2241
  "Female",
2492
2242
  "Other",
@@ -2495,8 +2245,8 @@ var createUserRequestSchema = import_v429.z.object({
2495
2245
  })
2496
2246
  });
2497
2247
  var createUserUserSchema = createdUserQueryDtoSchema;
2498
- var createUserResponseSchema = import_v429.z.object({
2499
- message: import_v429.z.string(),
2248
+ var createUserResponseSchema = import_v425.z.object({
2249
+ message: import_v425.z.string(),
2500
2250
  user: createdUserQueryDtoSchema
2501
2251
  });
2502
2252
  var createUserContract = {
@@ -2505,9 +2255,9 @@ var createUserContract = {
2505
2255
  };
2506
2256
 
2507
2257
  // src/modules/user/push-tokens/push-tokens.contracts.ts
2508
- var import_v430 = require("zod/v4");
2509
- var saveUserPushTokenRequestSchema = import_v430.z.object({
2510
- body: import_v430.z.object({
2258
+ var import_v426 = require("zod/v4");
2259
+ var saveUserPushTokenRequestSchema = import_v426.z.object({
2260
+ body: import_v426.z.object({
2511
2261
  token: userDbSchema.shape.pushToken.unwrap()
2512
2262
  })
2513
2263
  });
@@ -2516,20 +2266,20 @@ var saveUserPushTokenContract = {
2516
2266
  };
2517
2267
 
2518
2268
  // src/modules/user/update/update.contracts.ts
2519
- var import_v431 = require("zod/v4");
2520
- var updateUserRequestSchema = import_v431.z.object({
2269
+ var import_v427 = require("zod/v4");
2270
+ var updateUserRequestSchema = import_v427.z.object({
2521
2271
  body: authenticatedUserForUpdateQueryDtoSchema
2522
2272
  });
2523
- var updateAuthenticatedUserResponseSchema = import_v431.z.object({
2524
- message: import_v431.z.string(),
2525
- emailChanged: import_v431.z.boolean(),
2273
+ var updateAuthenticatedUserResponseSchema = import_v427.z.object({
2274
+ message: import_v427.z.string(),
2275
+ emailChanged: import_v427.z.boolean(),
2526
2276
  user: userDataQueryDtoSchema
2527
2277
  });
2528
2278
  var updateAuthenticatedUserContract = {
2529
2279
  request: updateUserRequestSchema,
2530
2280
  response: updateAuthenticatedUserResponseSchema
2531
2281
  };
2532
- var userDataResponseSchema = import_v431.z.object({
2282
+ var userDataResponseSchema = import_v427.z.object({
2533
2283
  userData: userDataQueryDtoSchema
2534
2284
  });
2535
2285
  var userDataContract = {
@@ -2539,36 +2289,36 @@ var getAuthenticatedUserByIdResponseSchema = userDataQueryDtoSchema;
2539
2289
  var getAuthenticatedUserByIdContract = {
2540
2290
  response: getAuthenticatedUserByIdResponseSchema
2541
2291
  };
2542
- var deleteProfilePicRequestSchema = import_v431.z.object({
2543
- body: import_v431.z.object({
2544
- profilePicPath: import_v431.z.string()
2292
+ var deleteProfilePicRequestSchema = import_v427.z.object({
2293
+ body: import_v427.z.object({
2294
+ profilePicPath: import_v427.z.string()
2545
2295
  })
2546
2296
  });
2547
2297
  var deleteUserProfilePicContract = {
2548
2298
  request: deleteProfilePicRequestSchema
2549
2299
  };
2550
- var setProfilePicAndUpdateDBResponseSchema = import_v431.z.object({
2551
- profilePicPath: import_v431.z.string(),
2552
- url: import_v431.z.string(),
2553
- message: import_v431.z.string()
2300
+ var setProfilePicAndUpdateDBResponseSchema = import_v427.z.object({
2301
+ profilePicPath: import_v427.z.string(),
2302
+ url: import_v427.z.string(),
2303
+ message: import_v427.z.string()
2554
2304
  });
2555
2305
  var setProfilePicAndUpdateDBContract = {
2556
2306
  response: setProfilePicAndUpdateDBResponseSchema
2557
2307
  };
2558
2308
 
2559
2309
  // src/modules/video-analysis/video-analysis.contracts.ts
2560
- var import_v432 = require("zod/v4");
2561
- var getPresignedUrlFromS3RequestSchema = import_v432.z.object({
2562
- body: import_v432.z.object({
2310
+ var import_v428 = require("zod/v4");
2311
+ var getPresignedUrlFromS3RequestSchema = import_v428.z.object({
2312
+ body: import_v428.z.object({
2563
2313
  exercise: exerciseDbSchema.shape.name,
2564
- fileType: import_v432.z.string(),
2565
- jobId: import_v432.z.string()
2314
+ fileType: import_v428.z.string(),
2315
+ jobId: import_v428.z.string()
2566
2316
  })
2567
2317
  });
2568
- var getPresignedUrlFromS3ResponseSchema = import_v432.z.object({
2569
- uploadUrl: import_v432.z.string(),
2570
- fileKey: import_v432.z.string(),
2571
- requestId: import_v432.z.string()
2318
+ var getPresignedUrlFromS3ResponseSchema = import_v428.z.object({
2319
+ uploadUrl: import_v428.z.string(),
2320
+ fileKey: import_v428.z.string(),
2321
+ requestId: import_v428.z.string()
2572
2322
  });
2573
2323
  var getPresignedUrlFromS3Contract = {
2574
2324
  request: getPresignedUrlFromS3RequestSchema,
@@ -2576,75 +2326,306 @@ var getPresignedUrlFromS3Contract = {
2576
2326
  };
2577
2327
 
2578
2328
  // src/modules/video-analysis/video-analysis.dtos.ts
2579
- var import_v433 = require("zod/v4");
2580
- var enqueueAnalyzeVideoParamsDtoSchema = import_v433.z.object({
2581
- fileKey: import_v433.z.string(),
2582
- exercise: import_v433.z.string(),
2329
+ var import_v429 = require("zod/v4");
2330
+ var enqueueAnalyzeVideoParamsDtoSchema = import_v429.z.object({
2331
+ fileKey: import_v429.z.string(),
2332
+ exercise: import_v429.z.string(),
2583
2333
  userId: userDbSchema.shape.id,
2584
- requestId: import_v433.z.string(),
2585
- sentryTrace: import_v433.z.string().optional(),
2586
- baggage: import_v433.z.string().optional()
2334
+ requestId: import_v429.z.string(),
2335
+ sentryTrace: import_v429.z.string().optional(),
2336
+ baggage: import_v429.z.string().optional()
2587
2337
  });
2588
2338
  var analyzeVideoPayloadDtoSchema = enqueueAnalyzeVideoParamsDtoSchema.extend({
2589
- expiresAt: import_v433.z.number()
2339
+ expiresAt: import_v429.z.number()
2590
2340
  });
2591
- var squatRepetitionDtoSchema = import_v433.z.object({
2592
- depth: import_v433.z.object({
2593
- value: import_v433.z.number(),
2594
- status: import_v433.z.string(),
2595
- confidence: import_v433.z.number()
2341
+ var squatRepetitionDtoSchema = import_v429.z.object({
2342
+ depth: import_v429.z.object({
2343
+ value: import_v429.z.number(),
2344
+ status: import_v429.z.string(),
2345
+ confidence: import_v429.z.number()
2596
2346
  }),
2597
- backLean: import_v433.z.object({
2598
- value: import_v433.z.number(),
2599
- excessive: import_v433.z.boolean(),
2600
- confidence: import_v433.z.number()
2347
+ backLean: import_v429.z.object({
2348
+ value: import_v429.z.number(),
2349
+ excessive: import_v429.z.boolean(),
2350
+ confidence: import_v429.z.number()
2601
2351
  }),
2602
- audit: import_v433.z.object({
2603
- framesAnalyzed: import_v433.z.number(),
2604
- validFrames: import_v433.z.number(),
2605
- cameraAngle: import_v433.z.string(),
2606
- rawBottomAngle: import_v433.z.number(),
2607
- samplingRate: import_v433.z.string()
2352
+ audit: import_v429.z.object({
2353
+ framesAnalyzed: import_v429.z.number(),
2354
+ validFrames: import_v429.z.number(),
2355
+ cameraAngle: import_v429.z.string(),
2356
+ rawBottomAngle: import_v429.z.number(),
2357
+ samplingRate: import_v429.z.string()
2608
2358
  })
2609
2359
  });
2610
- var analyzeVideoResultPayloadDtoSchema = /* @__PURE__ */ __name((resultSchema) => import_v433.z.intersection(import_v433.z.object({
2611
- jobId: import_v433.z.string(),
2360
+ var analyzeVideoResultPayloadDtoSchema = /* @__PURE__ */ __name((resultSchema) => import_v429.z.intersection(import_v429.z.object({
2361
+ jobId: import_v429.z.string(),
2612
2362
  userId: userDbSchema.shape.id,
2613
- exercise: import_v433.z.string(),
2614
- requestId: import_v433.z.string().optional()
2615
- }), import_v433.z.discriminatedUnion("status", [
2616
- import_v433.z.object({
2617
- status: import_v433.z.literal("completed"),
2618
- result: import_v433.z.array(resultSchema),
2619
- error: import_v433.z.null()
2363
+ exercise: import_v429.z.string(),
2364
+ requestId: import_v429.z.string().optional()
2365
+ }), import_v429.z.discriminatedUnion("status", [
2366
+ import_v429.z.object({
2367
+ status: import_v429.z.literal("completed"),
2368
+ result: import_v429.z.array(resultSchema),
2369
+ error: import_v429.z.null()
2620
2370
  }),
2621
- import_v433.z.object({
2622
- status: import_v433.z.literal("failed"),
2623
- result: import_v433.z.null(),
2624
- error: import_v433.z.string()
2371
+ import_v429.z.object({
2372
+ status: import_v429.z.literal("failed"),
2373
+ result: import_v429.z.null(),
2374
+ error: import_v429.z.string()
2625
2375
  })
2626
2376
  ])), "analyzeVideoResultPayloadDtoSchema");
2627
2377
 
2628
2378
  // src/modules/web-sockets/web-sockets.contracts.ts
2629
- var import_v434 = require("zod/v4");
2630
- var generateTicketRequestSchema = import_v434.z.object({
2631
- body: import_v434.z.object({
2379
+ var import_v430 = require("zod/v4");
2380
+ var generateTicketRequestSchema = import_v430.z.object({
2381
+ body: import_v430.z.object({
2632
2382
  username: userDbSchema.shape.username
2633
2383
  })
2634
2384
  });
2635
- var generateTicketResponseSchema = import_v434.z.object({
2636
- ticket: import_v434.z.string()
2385
+ var generateTicketResponseSchema = import_v430.z.object({
2386
+ ticket: import_v430.z.string()
2637
2387
  });
2638
2388
  var generateTicketContract = {
2639
2389
  request: generateTicketRequestSchema,
2640
2390
  response: generateTicketResponseSchema
2641
2391
  };
2642
2392
 
2393
+ // src/modules/workout/plan/plan.contracts.ts
2394
+ var import_v432 = require("zod/v4");
2395
+
2396
+ // src/modules/workout/plan/plan.dtos.ts
2397
+ var import_v431 = require("zod/v4");
2398
+ var workoutExerciseInputQueryDtoSchema = import_v431.z.object({
2399
+ exerciseId: exerciseDbSchema.shape.id,
2400
+ sets: import_v431.z.array(workoutSetDbSchema.shape.reps),
2401
+ orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex
2402
+ });
2403
+ var workoutSplitInputBaseQueryDtoSchema = import_v431.z.object({
2404
+ name: workoutSplitDbSchema.shape.name.min(1, "Split name is required"),
2405
+ orderIndex: import_v431.z.number().int().nonnegative(),
2406
+ exercises: import_v431.z.array(workoutExerciseInputQueryDtoSchema).min(1, "Each split must include at least one exercise")
2407
+ });
2408
+ var saveWorkoutSplitInputQueryDtoSchema = workoutSplitInputBaseQueryDtoSchema.extend({
2409
+ id: workoutSplitDbSchema.shape.id.optional()
2410
+ });
2411
+ var saveWorkoutSplitPayloadQueryDtoSchema = import_v431.z.array(saveWorkoutSplitInputQueryDtoSchema).min(1, "Workout must include at least one split");
2412
+ var exerciseInPlanQueryDtoSchema = import_v431.z.object({
2413
+ exerciseToSplitId: exerciseToWorkoutSplitDbSchema.shape.id,
2414
+ exerciseId: exerciseDbSchema.shape.id,
2415
+ name: exerciseDbSchema.shape.name,
2416
+ sets: import_v431.z.array(import_v431.z.object({
2417
+ orderIndex: workoutSetDbSchema.shape.orderIndex,
2418
+ reps: workoutSetDbSchema.shape.reps
2419
+ })),
2420
+ orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2421
+ isActive: exerciseToWorkoutSplitDbSchema.shape.isActive,
2422
+ targetMuscle: exerciseDbSchema.shape.targetMuscle,
2423
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2424
+ });
2425
+ var workoutSplitQueryDtoSchema = import_v431.z.object({
2426
+ id: workoutSplitDbSchema.shape.id,
2427
+ workoutId: workoutSplitDbSchema.shape.workoutId,
2428
+ name: workoutSplitDbSchema.shape.name,
2429
+ orderIndex: workoutSplitDbSchema.shape.orderIndex,
2430
+ createdAt: serializedDateSchema,
2431
+ muscleGroup: import_v431.z.string().nullable(),
2432
+ isActive: workoutSplitDbSchema.shape.isActive,
2433
+ exercises: import_v431.z.array(exerciseInPlanQueryDtoSchema)
2434
+ });
2435
+ var wholeUserWorkoutPlanQueryDtoSchema = import_v431.z.object({
2436
+ id: workoutPlanDbSchema.shape.id,
2437
+ numberOfSplits: import_v431.z.number(),
2438
+ createdAt: serializedDateSchema,
2439
+ userId: userDbSchema.shape.id,
2440
+ isActive: workoutPlanDbSchema.shape.isActive,
2441
+ updatedAt: serializedDateSchema,
2442
+ workoutSplits: import_v431.z.array(workoutSplitQueryDtoSchema).nullable()
2443
+ });
2444
+ var workoutPlanIdQueryDtoSchema = import_v431.z.object({
2445
+ id: workoutPlanDbSchema.shape.id
2446
+ });
2447
+ var workoutSplitIdQueryDtoSchema = import_v431.z.object({
2448
+ id: workoutSplitDbSchema.shape.id
2449
+ });
2450
+ var exerciseAssignmentIdQueryDtoSchema = import_v431.z.object({
2451
+ id: exerciseToWorkoutSplitDbSchema.shape.id
2452
+ });
2453
+
2454
+ // src/modules/workout/plan/plan.contracts.ts
2455
+ var getWholeWorkoutPlanRequestSchema = import_v432.z.object({
2456
+ query: import_v432.z.object({
2457
+ tz: import_v432.z.string().optional()
2458
+ })
2459
+ });
2460
+ var getWholeUserWorkoutPlanResponseSchema = import_v432.z.object({
2461
+ workoutPlan: wholeUserWorkoutPlanQueryDtoSchema.nullable()
2462
+ });
2463
+ var getWholeUserWorkoutPlanContract = {
2464
+ request: getWholeWorkoutPlanRequestSchema,
2465
+ response: getWholeUserWorkoutPlanResponseSchema
2466
+ };
2467
+ var workoutMutationResponseSchema = import_v432.z.object({
2468
+ message: import_v432.z.string(),
2469
+ workoutPlan: wholeUserWorkoutPlanQueryDtoSchema
2470
+ });
2471
+ var addWorkoutRequestSchema = import_v432.z.object({
2472
+ body: import_v432.z.object({
2473
+ workoutData: saveWorkoutSplitPayloadQueryDtoSchema,
2474
+ workoutName: import_v432.z.string().optional(),
2475
+ tz: import_v432.z.string()
2476
+ })
2477
+ });
2478
+ var addWorkoutResponseSchema = workoutMutationResponseSchema;
2479
+ var addWorkoutContract = {
2480
+ request: addWorkoutRequestSchema,
2481
+ response: addWorkoutResponseSchema
2482
+ };
2483
+
2643
2484
  // src/modules/workout/tracking/tracking.contracts.ts
2644
- var import_v435 = require("zod/v4");
2645
- var getExerciseTrackingRequestSchema = import_v435.z.object({
2646
- query: import_v435.z.object({
2647
- tz: import_v435.z.string().optional()
2485
+ var import_v434 = require("zod/v4");
2486
+
2487
+ // src/modules/workout/tracking/tracking.dtos.ts
2488
+ var import_v433 = require("zod/v4");
2489
+ var trackedSetQueryDtoSchema = import_v433.z.object({
2490
+ reps: trackingSetDbSchema.shape.reps,
2491
+ weight: trackingSetDbSchema.shape.weight,
2492
+ setIndex: trackingSetDbSchema.shape.setIndex
2493
+ });
2494
+ var finishedWorkoutEntryBaseQueryDtoSchema = import_v433.z.object({
2495
+ trackedSets: import_v433.z.array(trackedSetQueryDtoSchema),
2496
+ notes: exerciseTrackingDbSchema.shape.notes.optional()
2497
+ });
2498
+ var finishedWorkoutEntryQueryDtoSchema = finishedWorkoutEntryBaseQueryDtoSchema.extend({
2499
+ isExerciseAssignedToSplit: import_v433.z.boolean(),
2500
+ exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2501
+ exerciseId: exerciseTrackingDbSchema.shape.exerciseId
2502
+ });
2503
+ var exerciseMetadataQueryDtoSchema = import_v433.z.object({
2504
+ targetMuscle: exerciseDbSchema.shape.targetMuscle,
2505
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2506
+ });
2507
+ var exerciseTrackingPrMaxQueryDtoSchema = import_v433.z.object({
2508
+ exercise: exerciseDbSchema.shape.name,
2509
+ weight: trackingSetDbSchema.shape.weight,
2510
+ reps: trackingSetDbSchema.shape.reps,
2511
+ workoutTimeUtc: serializedDateSchema
2512
+ });
2513
+ var exerciseTrackingAnalysisQueryDtoSchema = import_v433.z.object({
2514
+ uniqueDays: import_v433.z.number(),
2515
+ mostFrequentSplit: import_v433.z.string().nullable(),
2516
+ mostFrequentSplitDays: import_v433.z.number().nullable(),
2517
+ lastWorkoutDate: import_v433.z.string().nullable(),
2518
+ splitDaysByName: import_v433.z.record(import_v433.z.string(), import_v433.z.number()),
2519
+ prs: import_v433.z.object({
2520
+ prMax: exerciseTrackingPrMaxQueryDtoSchema.nullable()
2521
+ })
2522
+ });
2523
+ var trackingMapItemQueryDtoSchema = import_v433.z.object({
2524
+ id: exerciseTrackingDbSchema.shape.id,
2525
+ exerciseToSplitId: exerciseToWorkoutSplitDbSchema.shape.id,
2526
+ weight: import_v433.z.array(trackingSetDbSchema.shape.weight),
2527
+ reps: import_v433.z.array(trackingSetDbSchema.shape.reps),
2528
+ notes: exerciseTrackingDbSchema.shape.notes,
2529
+ exerciseId: exerciseDbSchema.shape.id,
2530
+ workoutSplitId: workoutSplitDbSchema.shape.id,
2531
+ splitName: workoutSplitDbSchema.shape.name,
2532
+ exercise: exerciseDbSchema.shape.name,
2533
+ workoutDate: serializedDateSchema,
2534
+ orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2535
+ exerciseToWorkoutSplit: import_v433.z.object({
2536
+ sets: import_v433.z.array(workoutSetDbSchema.shape.reps),
2537
+ exercises: exerciseMetadataQueryDtoSchema
2538
+ })
2539
+ });
2540
+ var trackingByDateItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2541
+ workoutDate: true
2542
+ });
2543
+ var trackingBySplitNameItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2544
+ splitName: true
2545
+ });
2546
+ var groupedTrackingItemQueryDtoSchema = import_v433.z.object({
2547
+ exerciseTracking: import_v433.z.object({
2548
+ exerciseTrackingId: exerciseTrackingDbSchema.shape.id,
2549
+ sets: import_v433.z.array(import_v433.z.object({
2550
+ setIndex: trackingSetDbSchema.shape.setIndex,
2551
+ weight: trackingSetDbSchema.shape.weight,
2552
+ reps: trackingSetDbSchema.shape.reps
2553
+ })),
2554
+ notes: exerciseTrackingDbSchema.shape.notes,
2555
+ exerciseAssignment: import_v433.z.object({
2556
+ exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2557
+ orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex.nullable(),
2558
+ exerciseId: exerciseDbSchema.shape.id,
2559
+ workoutSplitId: workoutSplitDbSchema.shape.id,
2560
+ workoutSplitName: workoutSplitDbSchema.shape.name,
2561
+ exerciseName: exerciseDbSchema.shape.name,
2562
+ targetMuscle: exerciseDbSchema.shape.targetMuscle,
2563
+ specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2564
+ })
2565
+ })
2566
+ });
2567
+ var exerciseTrackingStatsQueryDtoSchema = import_v433.z.object({
2568
+ workoutCount: import_v433.z.coerce.number(),
2569
+ hasExerciseTracking: import_v433.z.boolean(),
2570
+ nextWorkoutSplit: import_v433.z.object({
2571
+ id: workoutSplitDbSchema.shape.id,
2572
+ name: workoutSplitDbSchema.shape.name,
2573
+ orderIndex: workoutSplitDbSchema.shape.orderIndex,
2574
+ muscleGroup: import_v433.z.string().nullable()
2575
+ }).nullable(),
2576
+ workoutTargets: import_v433.z.object({
2577
+ workoutCountThisWeek: import_v433.z.coerce.number(),
2578
+ workoutCountScheduledPerWeek: import_v433.z.coerce.number(),
2579
+ weekStreak: import_v433.z.coerce.number()
2580
+ }),
2581
+ lastWorkoutStats: import_v433.z.object({
2582
+ workoutDate: import_v433.z.string().nullable(),
2583
+ workoutSplitName: workoutSplitDbSchema.shape.name.nullable(),
2584
+ exerciseTrackedCount: import_v433.z.coerce.number().nullable(),
2585
+ setTrackedCount: import_v433.z.coerce.number().nullable()
2586
+ }),
2587
+ prs: import_v433.z.array(import_v433.z.object({
2588
+ exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2589
+ exerciseId: exerciseDbSchema.shape.id,
2590
+ exerciseName: exerciseDbSchema.shape.name,
2591
+ prWeight: trackingSetDbSchema.shape.weight,
2592
+ prReps: trackingSetDbSchema.shape.reps,
2593
+ prSetIndex: trackingSetDbSchema.shape.setIndex,
2594
+ estimatedOneRepMax: import_v433.z.number().nullable()
2595
+ }))
2596
+ });
2597
+ var exerciseTrackingMapsQueryDtoSchema = import_v433.z.object({
2598
+ byDate: import_v433.z.record(import_v433.z.string(), import_v433.z.array(groupedTrackingItemQueryDtoSchema)),
2599
+ byExerciseToSplitId: import_v433.z.record(import_v433.z.string(), import_v433.z.array(groupedTrackingItemQueryDtoSchema)),
2600
+ bySplitName: import_v433.z.record(import_v433.z.string(), import_v433.z.array(groupedTrackingItemQueryDtoSchema))
2601
+ });
2602
+ var exerciseTrackingAndStatsQueryDtoSchema = import_v433.z.object({
2603
+ trackingStats: exerciseTrackingStatsQueryDtoSchema,
2604
+ trackingMaps: exerciseTrackingMapsQueryDtoSchema
2605
+ });
2606
+ var exerciseTrackingAndStatsRowQueryDtoSchema = import_v433.z.object({
2607
+ data: exerciseTrackingAndStatsQueryDtoSchema
2608
+ });
2609
+ var exerciseTrackingStatsRowQueryDtoSchema = import_v433.z.object({
2610
+ data: exerciseTrackingStatsQueryDtoSchema
2611
+ });
2612
+ var exerciseTrackingMapsRowQueryDtoSchema = import_v433.z.object({
2613
+ data: exerciseTrackingMapsQueryDtoSchema
2614
+ });
2615
+ var workoutSplitLookupQueryDtoSchema = import_v433.z.object({
2616
+ workoutSplitId: workoutSplitDbSchema.shape.id
2617
+ });
2618
+ var workoutSummaryIdQueryDtoSchema = import_v433.z.object({
2619
+ id: import_v433.z.string().uuid()
2620
+ });
2621
+ var exerciseTrackingIdQueryDtoSchema = import_v433.z.object({
2622
+ id: exerciseTrackingDbSchema.shape.id
2623
+ });
2624
+
2625
+ // src/modules/workout/tracking/tracking.contracts.ts
2626
+ var getExerciseTrackingRequestSchema = import_v434.z.object({
2627
+ query: import_v434.z.object({
2628
+ tz: import_v434.z.string().optional()
2648
2629
  })
2649
2630
  });
2650
2631
  var getExerciseTrackingResponseSchema = exerciseTrackingMapsQueryDtoSchema;
@@ -2657,12 +2638,12 @@ var getExerciseTrackingStatsContract = {
2657
2638
  request: getExerciseTrackingRequestSchema,
2658
2639
  response: getExerciseTrackingStatsResponseSchema
2659
2640
  };
2660
- var finishWorkoutRequestSchema = import_v435.z.object({
2661
- body: import_v435.z.object({
2662
- workout: import_v435.z.array(finishedWorkoutEntryQueryDtoSchema),
2663
- tz: import_v435.z.string().optional(),
2664
- workoutStartUtc: import_v435.z.string().datetime("workoutStartUtc must be a valid ISO datetime"),
2665
- workoutEndUtc: import_v435.z.string().datetime("workoutEndUtc must be a valid ISO datetime").optional().nullable()
2641
+ var finishWorkoutRequestSchema = import_v434.z.object({
2642
+ body: import_v434.z.object({
2643
+ workout: import_v434.z.array(finishedWorkoutEntryQueryDtoSchema),
2644
+ tz: import_v434.z.string().optional(),
2645
+ workoutStartUtc: import_v434.z.string().datetime("workoutStartUtc must be a valid ISO datetime"),
2646
+ workoutEndUtc: import_v434.z.string().datetime("workoutEndUtc must be a valid ISO datetime").optional().nullable()
2666
2647
  })
2667
2648
  });
2668
2649
  var finishUserWorkoutResponseSchema = exerciseTrackingAndStatsQueryDtoSchema;
@@ -2690,9 +2671,6 @@ var finishUserWorkoutContract = {
2690
2671
  appleOAuthRequestSchema,
2691
2672
  appleTokenVerificationResultDtoSchema,
2692
2673
  authenticatedUserForUpdateQueryDtoSchema,
2693
- bootstrapContract,
2694
- bootstrapRequestSchema,
2695
- bootstrapResponseSchema,
2696
2674
  changeEmailAndVerifyContract,
2697
2675
  changeEmailAndVerifyRequestSchema,
2698
2676
  changeEmailTokenPayloadDtoSchema,