@strong-together/shared 2.8.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,285 +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(import_v416.z.object({
2112
- orderIndex: workoutSetDbSchema.shape.orderIndex,
2113
- reps: workoutSetDbSchema.shape.reps
2114
- })),
2115
- orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2116
- isActive: exerciseToWorkoutSplitDbSchema.shape.isActive,
2117
- targetMuscle: exerciseDbSchema.shape.targetMuscle,
2118
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2104
+ var appleNameInputSchema = import_v417.z.object({
2105
+ givenName: import_v417.z.string().nullable(),
2106
+ familyName: import_v417.z.string().nullable()
2119
2107
  });
2120
- var workoutSplitQueryDtoSchema = import_v416.z.object({
2121
- id: workoutSplitDbSchema.shape.id,
2122
- workoutId: workoutSplitDbSchema.shape.workoutId,
2123
- name: workoutSplitDbSchema.shape.name,
2124
- orderIndex: workoutSplitDbSchema.shape.orderIndex,
2125
- createdAt: serializedDateSchema,
2126
- muscleGroup: import_v416.z.string().nullable(),
2127
- isActive: workoutSplitDbSchema.shape.isActive,
2128
- exercises: import_v416.z.array(exerciseInPlanQueryDtoSchema)
2129
- });
2130
- var wholeUserWorkoutPlanQueryDtoSchema = import_v416.z.object({
2131
- id: workoutPlanDbSchema.shape.id,
2132
- numberOfSplits: import_v416.z.number(),
2133
- createdAt: serializedDateSchema,
2134
- userId: userDbSchema.shape.id,
2135
- isActive: workoutPlanDbSchema.shape.isActive,
2136
- updatedAt: serializedDateSchema,
2137
- workoutSplits: import_v416.z.array(workoutSplitQueryDtoSchema).nullable()
2138
- });
2139
- var workoutPlanIdQueryDtoSchema = import_v416.z.object({
2140
- id: workoutPlanDbSchema.shape.id
2141
- });
2142
- var workoutSplitIdQueryDtoSchema = import_v416.z.object({
2143
- id: workoutSplitDbSchema.shape.id
2144
- });
2145
- var exerciseAssignmentIdQueryDtoSchema = import_v416.z.object({
2146
- id: exerciseToWorkoutSplitDbSchema.shape.id
2147
- });
2148
-
2149
- // src/modules/workout/plan/plan.contracts.ts
2150
- var getWholeWorkoutPlanRequestSchema = import_v417.z.object({
2151
- query: import_v417.z.object({
2152
- tz: import_v417.z.string().optional()
2153
- })
2154
- });
2155
- var getWholeUserWorkoutPlanResponseSchema = import_v417.z.object({
2156
- workoutPlan: wholeUserWorkoutPlanQueryDtoSchema.nullable()
2157
- });
2158
- var getWholeUserWorkoutPlanContract = {
2159
- request: getWholeWorkoutPlanRequestSchema,
2160
- response: getWholeUserWorkoutPlanResponseSchema
2161
- };
2162
- var workoutMutationResponseSchema = import_v417.z.object({
2163
- message: import_v417.z.string(),
2164
- workoutPlan: wholeUserWorkoutPlanQueryDtoSchema
2165
- });
2166
- var addWorkoutRequestSchema = import_v417.z.object({
2108
+ var appleOAuthRequestSchema = import_v417.z.object({
2167
2109
  body: import_v417.z.object({
2168
- workoutData: saveWorkoutSplitPayloadQueryDtoSchema,
2169
- workoutName: import_v417.z.string().optional(),
2170
- tz: import_v417.z.string()
2171
- })
2172
- });
2173
- var addWorkoutResponseSchema = workoutMutationResponseSchema;
2174
- var addWorkoutContract = {
2175
- request: addWorkoutRequestSchema,
2176
- response: addWorkoutResponseSchema
2177
- };
2178
-
2179
- // src/modules/workout/tracking/tracking.dtos.ts
2180
- var import_v418 = require("zod/v4");
2181
- var trackedSetQueryDtoSchema = import_v418.z.object({
2182
- reps: trackingSetDbSchema.shape.reps,
2183
- weight: trackingSetDbSchema.shape.weight,
2184
- setIndex: trackingSetDbSchema.shape.setIndex
2185
- });
2186
- var finishedWorkoutEntryBaseQueryDtoSchema = import_v418.z.object({
2187
- trackedSets: import_v418.z.array(trackedSetQueryDtoSchema),
2188
- notes: exerciseTrackingDbSchema.shape.notes.optional()
2189
- });
2190
- var finishedWorkoutEntryQueryDtoSchema = finishedWorkoutEntryBaseQueryDtoSchema.extend({
2191
- isExerciseAssignedToSplit: import_v418.z.boolean(),
2192
- exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2193
- exerciseId: exerciseTrackingDbSchema.shape.exerciseId
2194
- });
2195
- var exerciseMetadataQueryDtoSchema = import_v418.z.object({
2196
- targetMuscle: exerciseDbSchema.shape.targetMuscle,
2197
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2198
- });
2199
- var exerciseTrackingPrMaxQueryDtoSchema = import_v418.z.object({
2200
- exercise: exerciseDbSchema.shape.name,
2201
- weight: trackingSetDbSchema.shape.weight,
2202
- reps: trackingSetDbSchema.shape.reps,
2203
- workoutTimeUtc: serializedDateSchema
2204
- });
2205
- var exerciseTrackingAnalysisQueryDtoSchema = import_v418.z.object({
2206
- uniqueDays: import_v418.z.number(),
2207
- mostFrequentSplit: import_v418.z.string().nullable(),
2208
- mostFrequentSplitDays: import_v418.z.number().nullable(),
2209
- lastWorkoutDate: import_v418.z.string().nullable(),
2210
- splitDaysByName: import_v418.z.record(import_v418.z.string(), import_v418.z.number()),
2211
- prs: import_v418.z.object({
2212
- prMax: exerciseTrackingPrMaxQueryDtoSchema.nullable()
2213
- })
2214
- });
2215
- var trackingMapItemQueryDtoSchema = import_v418.z.object({
2216
- id: exerciseTrackingDbSchema.shape.id,
2217
- exerciseToSplitId: exerciseToWorkoutSplitDbSchema.shape.id,
2218
- weight: import_v418.z.array(trackingSetDbSchema.shape.weight),
2219
- reps: import_v418.z.array(trackingSetDbSchema.shape.reps),
2220
- notes: exerciseTrackingDbSchema.shape.notes,
2221
- exerciseId: exerciseDbSchema.shape.id,
2222
- workoutSplitId: workoutSplitDbSchema.shape.id,
2223
- splitName: workoutSplitDbSchema.shape.name,
2224
- exercise: exerciseDbSchema.shape.name,
2225
- workoutDate: serializedDateSchema,
2226
- orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex,
2227
- exerciseToWorkoutSplit: import_v418.z.object({
2228
- sets: import_v418.z.array(workoutSetDbSchema.shape.reps),
2229
- exercises: exerciseMetadataQueryDtoSchema
2230
- })
2231
- });
2232
- var trackingByDateItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2233
- workoutDate: true
2234
- });
2235
- var trackingBySplitNameItemQueryDtoSchema = trackingMapItemQueryDtoSchema.omit({
2236
- splitName: true
2237
- });
2238
- var groupedTrackingItemQueryDtoSchema = import_v418.z.object({
2239
- exerciseTracking: import_v418.z.object({
2240
- exerciseTrackingId: exerciseTrackingDbSchema.shape.id,
2241
- sets: import_v418.z.array(import_v418.z.object({
2242
- setIndex: trackingSetDbSchema.shape.setIndex,
2243
- weight: trackingSetDbSchema.shape.weight,
2244
- reps: trackingSetDbSchema.shape.reps
2245
- })),
2246
- notes: exerciseTrackingDbSchema.shape.notes,
2247
- exerciseAssignment: import_v418.z.object({
2248
- exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2249
- orderIndex: exerciseToWorkoutSplitDbSchema.shape.orderIndex.nullable(),
2250
- exerciseId: exerciseDbSchema.shape.id,
2251
- workoutSplitId: workoutSplitDbSchema.shape.id,
2252
- workoutSplitName: workoutSplitDbSchema.shape.name,
2253
- exerciseName: exerciseDbSchema.shape.name,
2254
- targetMuscle: exerciseDbSchema.shape.targetMuscle,
2255
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2256
- })
2257
- })
2258
- });
2259
- var exerciseTrackingStatsQueryDtoSchema = import_v418.z.object({
2260
- workoutCount: import_v418.z.coerce.number(),
2261
- hasExerciseTracking: import_v418.z.boolean(),
2262
- nextWorkoutSplit: import_v418.z.object({
2263
- id: workoutSplitDbSchema.shape.id,
2264
- name: workoutSplitDbSchema.shape.name,
2265
- orderIndex: workoutSplitDbSchema.shape.orderIndex,
2266
- muscleGroup: import_v418.z.string().nullable()
2267
- }).nullable(),
2268
- workoutTargets: import_v418.z.object({
2269
- workoutCountThisWeek: import_v418.z.coerce.number(),
2270
- workoutCountScheduledPerWeek: import_v418.z.coerce.number(),
2271
- weekStreak: import_v418.z.coerce.number()
2272
- }),
2273
- lastWorkoutStats: import_v418.z.object({
2274
- workoutDate: import_v418.z.string().nullable(),
2275
- workoutSplitName: workoutSplitDbSchema.shape.name.nullable(),
2276
- exerciseTrackedCount: import_v418.z.coerce.number().nullable(),
2277
- setTrackedCount: import_v418.z.coerce.number().nullable()
2278
- }),
2279
- prs: import_v418.z.array(import_v418.z.object({
2280
- exerciseToSplitId: exerciseTrackingDbSchema.shape.exerciseToSplitId,
2281
- exerciseId: exerciseDbSchema.shape.id,
2282
- exerciseName: exerciseDbSchema.shape.name,
2283
- prWeight: trackingSetDbSchema.shape.weight,
2284
- prReps: trackingSetDbSchema.shape.reps,
2285
- prSetIndex: trackingSetDbSchema.shape.setIndex,
2286
- estimatedOneRepMax: import_v418.z.number().nullable()
2287
- }))
2288
- });
2289
- var exerciseTrackingMapsQueryDtoSchema = import_v418.z.object({
2290
- byDate: import_v418.z.record(import_v418.z.string(), import_v418.z.array(groupedTrackingItemQueryDtoSchema)),
2291
- byExerciseToSplitId: import_v418.z.record(import_v418.z.string(), import_v418.z.array(groupedTrackingItemQueryDtoSchema)),
2292
- bySplitName: import_v418.z.record(import_v418.z.string(), import_v418.z.array(groupedTrackingItemQueryDtoSchema))
2293
- });
2294
- var exerciseTrackingAndStatsQueryDtoSchema = import_v418.z.object({
2295
- trackingStats: exerciseTrackingStatsQueryDtoSchema,
2296
- trackingMaps: exerciseTrackingMapsQueryDtoSchema
2297
- });
2298
- var exerciseTrackingAndStatsRowQueryDtoSchema = import_v418.z.object({
2299
- data: exerciseTrackingAndStatsQueryDtoSchema
2300
- });
2301
- var exerciseTrackingStatsRowQueryDtoSchema = import_v418.z.object({
2302
- data: exerciseTrackingStatsQueryDtoSchema
2303
- });
2304
- var exerciseTrackingMapsRowQueryDtoSchema = import_v418.z.object({
2305
- data: exerciseTrackingMapsQueryDtoSchema
2306
- });
2307
- var workoutSplitLookupQueryDtoSchema = import_v418.z.object({
2308
- workoutSplitId: workoutSplitDbSchema.shape.id
2309
- });
2310
- var workoutSummaryIdQueryDtoSchema = import_v418.z.object({
2311
- id: import_v418.z.string().uuid()
2312
- });
2313
- var exerciseTrackingIdQueryDtoSchema = import_v418.z.object({
2314
- id: exerciseTrackingDbSchema.shape.id
2315
- });
2316
-
2317
- // src/modules/bootstrap/bootstrap.contracts.ts
2318
- var bootstrapRequestSchema = import_v419.z.object({
2319
- query: import_v419.z.object({
2320
- tz: import_v419.z.string().optional()
2321
- })
2322
- });
2323
- var bootstrapResponseSchema = import_v419.z.object({
2324
- user: userDataQueryDtoSchema,
2325
- workout: getWholeUserWorkoutPlanResponseSchema,
2326
- tracking: exerciseTrackingAndStatsQueryDtoSchema,
2327
- messages: getAllUserMessagesResponseSchema,
2328
- aerobics: userAerobicsResponseSchema
2329
- });
2330
- var bootstrapContract = {
2331
- request: bootstrapRequestSchema,
2332
- response: bootstrapResponseSchema
2333
- };
2334
-
2335
- // src/modules/exercises/exercises.dtos.ts
2336
- var import_v420 = require("zod/v4");
2337
- var getAllExercisesExerciseQueryDtoSchema = import_v420.z.object({
2338
- id: exerciseDbSchema.shape.id,
2339
- name: exerciseDbSchema.shape.name,
2340
- specificTargetMuscle: exerciseDbSchema.shape.specificTargetMuscle
2341
- });
2342
- var exercisesMapByMuscleQueryDtoSchema = import_v420.z.record(import_v420.z.string(), import_v420.z.array(getAllExercisesExerciseQueryDtoSchema));
2343
- var exerciseMapByMuscleRowQueryDtoSchema = import_v420.z.object({
2344
- result: import_v420.z.object({
2345
- map: exercisesMapByMuscleQueryDtoSchema.nullable()
2346
- }).nullable()
2347
- });
2348
-
2349
- // src/modules/exercises/exercises.contracts.ts
2350
- var getAllExercisesResponseSchema = exercisesMapByMuscleQueryDtoSchema;
2351
- var getAllExercisesContract = {
2352
- response: getAllExercisesResponseSchema
2353
- };
2354
-
2355
- // src/modules/oauth/apple/apple.contracts.ts
2356
- var import_v421 = require("zod/v4");
2357
- var appleNameInputSchema = import_v421.z.object({
2358
- givenName: import_v421.z.string().nullable(),
2359
- familyName: import_v421.z.string().nullable()
2360
- });
2361
- var appleOAuthRequestSchema = import_v421.z.object({
2362
- body: import_v421.z.object({
2363
- idToken: import_v421.z.string({
2110
+ idToken: import_v417.z.string({
2364
2111
  error: "Missing or invalid Apple identityToken"
2365
2112
  }),
2366
- rawNonce: import_v421.z.string(),
2113
+ rawNonce: import_v417.z.string(),
2367
2114
  name: appleNameInputSchema.optional(),
2368
2115
  email: userDbSchema.shape.email.email().nullable()
2369
2116
  })
@@ -2373,19 +2120,19 @@ var appleOAuthContract = {
2373
2120
  };
2374
2121
 
2375
2122
  // src/modules/oauth/apple/apple.dtos.ts
2376
- var import_v422 = require("zod/v4");
2377
- var appleTokenVerificationResultDtoSchema = import_v422.z.object({
2378
- 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(),
2379
2126
  email: userDbSchema.shape.email.nullable(),
2380
- emailVerified: import_v422.z.boolean(),
2127
+ emailVerified: import_v418.z.boolean(),
2381
2128
  fullName: userDbSchema.shape.name
2382
2129
  });
2383
2130
 
2384
2131
  // src/modules/oauth/google/google.contracts.ts
2385
- var import_v423 = require("zod/v4");
2386
- var googleOAuthRequestSchema = import_v423.z.object({
2387
- body: import_v423.z.object({
2388
- 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()
2389
2136
  })
2390
2137
  });
2391
2138
  var googleOAuthContract = {
@@ -2393,22 +2140,22 @@ var googleOAuthContract = {
2393
2140
  };
2394
2141
 
2395
2142
  // src/modules/oauth/google/google.dtos.ts
2396
- var import_v424 = require("zod/v4");
2397
- var googleTokenVerificationResultDtoSchema = import_v424.z.object({
2398
- 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(),
2399
2146
  email: userDbSchema.shape.email.nullable(),
2400
- emailVerified: import_v424.z.boolean(),
2147
+ emailVerified: import_v420.z.boolean(),
2401
2148
  fullName: userDbSchema.shape.name
2402
2149
  });
2403
2150
 
2404
2151
  // src/modules/oauth/oauth.contracts.ts
2405
- var import_v425 = require("zod/v4");
2406
- var oAuthLoginResponseSchema = import_v425.z.object({
2407
- 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(),
2408
2155
  user: userDbSchema.shape.id,
2409
- accessToken: import_v425.z.string(),
2410
- refreshToken: import_v425.z.string(),
2411
- 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()
2412
2159
  });
2413
2160
  var proceedLoginResponseSchema = loginResponseSchema;
2414
2161
  var oAuthLoginContract = {
@@ -2416,50 +2163,50 @@ var oAuthLoginContract = {
2416
2163
  };
2417
2164
 
2418
2165
  // src/modules/oauth/oauth.dtos.ts
2419
- var import_v426 = require("zod/v4");
2420
- var oAuthLookupQueryDtoSchema = import_v426.z.object({
2166
+ var import_v422 = require("zod/v4");
2167
+ var oAuthLookupQueryDtoSchema = import_v422.z.object({
2421
2168
  userId: userDbSchema.shape.id.nullable(),
2422
- missingFields: import_v426.z.string().nullable()
2169
+ missingFields: import_v422.z.string().nullable()
2423
2170
  });
2424
- var oAuthLookupRawQueryDtoSchema = import_v426.z.object({
2171
+ var oAuthLookupRawQueryDtoSchema = import_v422.z.object({
2425
2172
  user_id: userDbSchema.shape.id,
2426
- missing_fields: import_v426.z.string().nullable()
2173
+ missing_fields: import_v422.z.string().nullable()
2427
2174
  });
2428
- var oAuthLookupRowQueryDtoSchema = import_v426.z.object({
2175
+ var oAuthLookupRowQueryDtoSchema = import_v422.z.object({
2429
2176
  oauth_data: oAuthLookupRawQueryDtoSchema.nullable()
2430
2177
  });
2431
- var oAuthLinkQueryDtoSchema = import_v426.z.object({
2178
+ var oAuthLinkQueryDtoSchema = import_v422.z.object({
2432
2179
  userId: userDbSchema.shape.id.nullable()
2433
2180
  });
2434
- var oAuthLinkRowQueryDtoSchema = import_v426.z.object({
2181
+ var oAuthLinkRowQueryDtoSchema = import_v422.z.object({
2435
2182
  user_id: userDbSchema.shape.id.nullable()
2436
2183
  });
2437
- var oAuthCreatedUserRowQueryDtoSchema = import_v426.z.object({
2184
+ var oAuthCreatedUserRowQueryDtoSchema = import_v422.z.object({
2438
2185
  user_id: userDbSchema.shape.id
2439
2186
  });
2440
2187
 
2441
2188
  // src/modules/push/push.dtos.ts
2442
- var import_v427 = require("zod/v4");
2443
- var userWithNotificationsEnabledQueryDtoSchema = import_v427.z.object({
2189
+ var import_v423 = require("zod/v4");
2190
+ var userWithNotificationsEnabledQueryDtoSchema = import_v423.z.object({
2444
2191
  pushToken: userDbSchema.shape.pushToken,
2445
2192
  name: userDbSchema.shape.name
2446
2193
  });
2447
- var userToHourlyReminderQueryDtoSchema = import_v427.z.object({
2194
+ var userToHourlyReminderQueryDtoSchema = import_v423.z.object({
2448
2195
  userId: userDbSchema.shape.id,
2449
2196
  name: userDbSchema.shape.name,
2450
2197
  pushToken: userDbSchema.shape.pushToken,
2451
- reminderOffsetMinutes: import_v427.z.number(),
2198
+ reminderOffsetMinutes: import_v423.z.number(),
2452
2199
  splitId: workoutSplitDbSchema.shape.id,
2453
2200
  splitName: workoutSplitDbSchema.shape.name.nullable(),
2454
- estimatedTimeUtc: import_v427.z.string()
2201
+ estimatedTimeUtc: import_v423.z.string()
2455
2202
  });
2456
2203
 
2457
2204
  // src/modules/user/create/create.contracts.ts
2458
- var import_v429 = require("zod/v4");
2205
+ var import_v425 = require("zod/v4");
2459
2206
 
2460
2207
  // src/modules/user/create/create.dtos.ts
2461
- var import_v428 = require("zod/v4");
2462
- var createdUserQueryDtoSchema = import_v428.z.object({
2208
+ var import_v424 = require("zod/v4");
2209
+ var createdUserQueryDtoSchema = import_v424.z.object({
2463
2210
  id: userDbSchema.shape.id,
2464
2211
  username: userDbSchema.shape.username,
2465
2212
  name: userDbSchema.shape.name,
@@ -2473,23 +2220,23 @@ var createdUserRawQueryDtoSchema = createdUserQueryDtoSchema.omit({
2473
2220
  }).extend({
2474
2221
  created_at: serializedDateSchema
2475
2222
  });
2476
- var createdUserRowQueryDtoSchema = import_v428.z.object({
2223
+ var createdUserRowQueryDtoSchema = import_v424.z.object({
2477
2224
  userData: createdUserRawQueryDtoSchema
2478
2225
  });
2479
- var userExistsQueryDtoSchema = import_v428.z.object({
2226
+ var userExistsQueryDtoSchema = import_v424.z.object({
2480
2227
  id: userDbSchema.shape.id.nullable()
2481
2228
  });
2482
2229
 
2483
2230
  // src/modules/user/create/create.contracts.ts
2484
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");
2485
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");
2486
- var createUserRequestSchema = import_v429.z.object({
2487
- body: import_v429.z.object({
2233
+ var createUserRequestSchema = import_v425.z.object({
2234
+ body: import_v425.z.object({
2488
2235
  username: usernameSchema,
2489
- 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),
2490
2237
  email: userDbSchema.shape.email.trim().toLowerCase().email("Invalid email format"),
2491
- password: import_v429.z.string().min(8, "Password must be at least 8 characters long"),
2492
- 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([
2493
2240
  "Male",
2494
2241
  "Female",
2495
2242
  "Other",
@@ -2498,8 +2245,8 @@ var createUserRequestSchema = import_v429.z.object({
2498
2245
  })
2499
2246
  });
2500
2247
  var createUserUserSchema = createdUserQueryDtoSchema;
2501
- var createUserResponseSchema = import_v429.z.object({
2502
- message: import_v429.z.string(),
2248
+ var createUserResponseSchema = import_v425.z.object({
2249
+ message: import_v425.z.string(),
2503
2250
  user: createdUserQueryDtoSchema
2504
2251
  });
2505
2252
  var createUserContract = {
@@ -2508,9 +2255,9 @@ var createUserContract = {
2508
2255
  };
2509
2256
 
2510
2257
  // src/modules/user/push-tokens/push-tokens.contracts.ts
2511
- var import_v430 = require("zod/v4");
2512
- var saveUserPushTokenRequestSchema = import_v430.z.object({
2513
- 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({
2514
2261
  token: userDbSchema.shape.pushToken.unwrap()
2515
2262
  })
2516
2263
  });
@@ -2519,20 +2266,20 @@ var saveUserPushTokenContract = {
2519
2266
  };
2520
2267
 
2521
2268
  // src/modules/user/update/update.contracts.ts
2522
- var import_v431 = require("zod/v4");
2523
- var updateUserRequestSchema = import_v431.z.object({
2269
+ var import_v427 = require("zod/v4");
2270
+ var updateUserRequestSchema = import_v427.z.object({
2524
2271
  body: authenticatedUserForUpdateQueryDtoSchema
2525
2272
  });
2526
- var updateAuthenticatedUserResponseSchema = import_v431.z.object({
2527
- message: import_v431.z.string(),
2528
- emailChanged: import_v431.z.boolean(),
2273
+ var updateAuthenticatedUserResponseSchema = import_v427.z.object({
2274
+ message: import_v427.z.string(),
2275
+ emailChanged: import_v427.z.boolean(),
2529
2276
  user: userDataQueryDtoSchema
2530
2277
  });
2531
2278
  var updateAuthenticatedUserContract = {
2532
2279
  request: updateUserRequestSchema,
2533
2280
  response: updateAuthenticatedUserResponseSchema
2534
2281
  };
2535
- var userDataResponseSchema = import_v431.z.object({
2282
+ var userDataResponseSchema = import_v427.z.object({
2536
2283
  userData: userDataQueryDtoSchema
2537
2284
  });
2538
2285
  var userDataContract = {
@@ -2542,36 +2289,36 @@ var getAuthenticatedUserByIdResponseSchema = userDataQueryDtoSchema;
2542
2289
  var getAuthenticatedUserByIdContract = {
2543
2290
  response: getAuthenticatedUserByIdResponseSchema
2544
2291
  };
2545
- var deleteProfilePicRequestSchema = import_v431.z.object({
2546
- body: import_v431.z.object({
2547
- profilePicPath: import_v431.z.string()
2292
+ var deleteProfilePicRequestSchema = import_v427.z.object({
2293
+ body: import_v427.z.object({
2294
+ profilePicPath: import_v427.z.string()
2548
2295
  })
2549
2296
  });
2550
2297
  var deleteUserProfilePicContract = {
2551
2298
  request: deleteProfilePicRequestSchema
2552
2299
  };
2553
- var setProfilePicAndUpdateDBResponseSchema = import_v431.z.object({
2554
- profilePicPath: import_v431.z.string(),
2555
- url: import_v431.z.string(),
2556
- 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()
2557
2304
  });
2558
2305
  var setProfilePicAndUpdateDBContract = {
2559
2306
  response: setProfilePicAndUpdateDBResponseSchema
2560
2307
  };
2561
2308
 
2562
2309
  // src/modules/video-analysis/video-analysis.contracts.ts
2563
- var import_v432 = require("zod/v4");
2564
- var getPresignedUrlFromS3RequestSchema = import_v432.z.object({
2565
- 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({
2566
2313
  exercise: exerciseDbSchema.shape.name,
2567
- fileType: import_v432.z.string(),
2568
- jobId: import_v432.z.string()
2314
+ fileType: import_v428.z.string(),
2315
+ jobId: import_v428.z.string()
2569
2316
  })
2570
2317
  });
2571
- var getPresignedUrlFromS3ResponseSchema = import_v432.z.object({
2572
- uploadUrl: import_v432.z.string(),
2573
- fileKey: import_v432.z.string(),
2574
- 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()
2575
2322
  });
2576
2323
  var getPresignedUrlFromS3Contract = {
2577
2324
  request: getPresignedUrlFromS3RequestSchema,
@@ -2579,75 +2326,306 @@ var getPresignedUrlFromS3Contract = {
2579
2326
  };
2580
2327
 
2581
2328
  // src/modules/video-analysis/video-analysis.dtos.ts
2582
- var import_v433 = require("zod/v4");
2583
- var enqueueAnalyzeVideoParamsDtoSchema = import_v433.z.object({
2584
- fileKey: import_v433.z.string(),
2585
- 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(),
2586
2333
  userId: userDbSchema.shape.id,
2587
- requestId: import_v433.z.string(),
2588
- sentryTrace: import_v433.z.string().optional(),
2589
- 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()
2590
2337
  });
2591
2338
  var analyzeVideoPayloadDtoSchema = enqueueAnalyzeVideoParamsDtoSchema.extend({
2592
- expiresAt: import_v433.z.number()
2339
+ expiresAt: import_v429.z.number()
2593
2340
  });
2594
- var squatRepetitionDtoSchema = import_v433.z.object({
2595
- depth: import_v433.z.object({
2596
- value: import_v433.z.number(),
2597
- status: import_v433.z.string(),
2598
- 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()
2599
2346
  }),
2600
- backLean: import_v433.z.object({
2601
- value: import_v433.z.number(),
2602
- excessive: import_v433.z.boolean(),
2603
- 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()
2604
2351
  }),
2605
- audit: import_v433.z.object({
2606
- framesAnalyzed: import_v433.z.number(),
2607
- validFrames: import_v433.z.number(),
2608
- cameraAngle: import_v433.z.string(),
2609
- rawBottomAngle: import_v433.z.number(),
2610
- 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()
2611
2358
  })
2612
2359
  });
2613
- var analyzeVideoResultPayloadDtoSchema = /* @__PURE__ */ __name((resultSchema) => import_v433.z.intersection(import_v433.z.object({
2614
- 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(),
2615
2362
  userId: userDbSchema.shape.id,
2616
- exercise: import_v433.z.string(),
2617
- requestId: import_v433.z.string().optional()
2618
- }), import_v433.z.discriminatedUnion("status", [
2619
- import_v433.z.object({
2620
- status: import_v433.z.literal("completed"),
2621
- result: import_v433.z.array(resultSchema),
2622
- 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()
2623
2370
  }),
2624
- import_v433.z.object({
2625
- status: import_v433.z.literal("failed"),
2626
- result: import_v433.z.null(),
2627
- 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()
2628
2375
  })
2629
2376
  ])), "analyzeVideoResultPayloadDtoSchema");
2630
2377
 
2631
2378
  // src/modules/web-sockets/web-sockets.contracts.ts
2632
- var import_v434 = require("zod/v4");
2633
- var generateTicketRequestSchema = import_v434.z.object({
2634
- 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({
2635
2382
  username: userDbSchema.shape.username
2636
2383
  })
2637
2384
  });
2638
- var generateTicketResponseSchema = import_v434.z.object({
2639
- ticket: import_v434.z.string()
2385
+ var generateTicketResponseSchema = import_v430.z.object({
2386
+ ticket: import_v430.z.string()
2640
2387
  });
2641
2388
  var generateTicketContract = {
2642
2389
  request: generateTicketRequestSchema,
2643
2390
  response: generateTicketResponseSchema
2644
2391
  };
2645
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
+
2646
2484
  // src/modules/workout/tracking/tracking.contracts.ts
2647
- var import_v435 = require("zod/v4");
2648
- var getExerciseTrackingRequestSchema = import_v435.z.object({
2649
- query: import_v435.z.object({
2650
- 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()
2651
2629
  })
2652
2630
  });
2653
2631
  var getExerciseTrackingResponseSchema = exerciseTrackingMapsQueryDtoSchema;
@@ -2660,12 +2638,12 @@ var getExerciseTrackingStatsContract = {
2660
2638
  request: getExerciseTrackingRequestSchema,
2661
2639
  response: getExerciseTrackingStatsResponseSchema
2662
2640
  };
2663
- var finishWorkoutRequestSchema = import_v435.z.object({
2664
- body: import_v435.z.object({
2665
- workout: import_v435.z.array(finishedWorkoutEntryQueryDtoSchema),
2666
- tz: import_v435.z.string().optional(),
2667
- workoutStartUtc: import_v435.z.string().datetime("workoutStartUtc must be a valid ISO datetime"),
2668
- 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()
2669
2647
  })
2670
2648
  });
2671
2649
  var finishUserWorkoutResponseSchema = exerciseTrackingAndStatsQueryDtoSchema;
@@ -2693,9 +2671,6 @@ var finishUserWorkoutContract = {
2693
2671
  appleOAuthRequestSchema,
2694
2672
  appleTokenVerificationResultDtoSchema,
2695
2673
  authenticatedUserForUpdateQueryDtoSchema,
2696
- bootstrapContract,
2697
- bootstrapRequestSchema,
2698
- bootstrapResponseSchema,
2699
2674
  changeEmailAndVerifyContract,
2700
2675
  changeEmailAndVerifyRequestSchema,
2701
2676
  changeEmailTokenPayloadDtoSchema,