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