90dc-core 1.19.4 → 1.19.6

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.
Files changed (299) hide show
  1. package/dist/index.js +43 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/Errors/AppError.js +104 -0
  4. package/dist/lib/Errors/AppError.js.map +1 -0
  5. package/dist/lib/Errors/Errors.js +42 -0
  6. package/dist/lib/Errors/Errors.js.map +1 -0
  7. package/dist/lib/classes/Database.js +154 -0
  8. package/dist/lib/classes/Database.js.map +1 -0
  9. package/dist/lib/classes/Redis.js +63 -0
  10. package/dist/lib/classes/Redis.js.map +1 -0
  11. package/dist/lib/clients/EmailClient.js +188 -0
  12. package/dist/lib/clients/EmailClient.js.map +1 -0
  13. package/dist/lib/clients/FirebasePushNotificationClient.js +688 -0
  14. package/dist/lib/clients/FirebasePushNotificationClient.js.map +1 -0
  15. package/dist/lib/clients/ImagesClient.d.ts +2 -1
  16. package/dist/lib/clients/ImagesClient.d.ts.map +1 -1
  17. package/dist/lib/clients/ImagesClient.js +436 -0
  18. package/dist/lib/clients/ImagesClient.js.map +1 -0
  19. package/dist/lib/clients/MailingClient.js +84 -0
  20. package/dist/lib/clients/MailingClient.js.map +1 -0
  21. package/dist/lib/clients/PushNotificationClient.js +478 -0
  22. package/dist/lib/clients/PushNotificationClient.js.map +1 -0
  23. package/dist/lib/clients/types/email.types.js +3 -0
  24. package/dist/lib/clients/types/email.types.js.map +1 -0
  25. package/dist/lib/clients/types/images.types.js +3 -0
  26. package/dist/lib/clients/types/images.types.js.map +1 -0
  27. package/dist/lib/clients/types/mailing.types.js +3 -0
  28. package/dist/lib/clients/types/mailing.types.js.map +1 -0
  29. package/dist/lib/config/ConfigValidator.js +162 -0
  30. package/dist/lib/config/ConfigValidator.js.map +1 -0
  31. package/dist/lib/controllers/BaseController.js +64 -0
  32. package/dist/lib/controllers/BaseController.js.map +1 -0
  33. package/dist/lib/db/migrations/20260330000000-create-user-progress-photos.js +60 -0
  34. package/dist/lib/db/migrations/20260330000000-create-user-progress-photos.js.map +1 -0
  35. package/dist/lib/dbmodels/coaching/Answer.js +51 -0
  36. package/dist/lib/dbmodels/coaching/Answer.js.map +1 -0
  37. package/dist/lib/dbmodels/coaching/ClientNote.js +75 -0
  38. package/dist/lib/dbmodels/coaching/ClientNote.js.map +1 -0
  39. package/dist/lib/dbmodels/coaching/ClientTag.js +45 -0
  40. package/dist/lib/dbmodels/coaching/ClientTag.js.map +1 -0
  41. package/dist/lib/dbmodels/coaching/Question.js +60 -0
  42. package/dist/lib/dbmodels/coaching/Question.js.map +1 -0
  43. package/dist/lib/dbmodels/coaching/Questionnaire.js +39 -0
  44. package/dist/lib/dbmodels/coaching/Questionnaire.js.map +1 -0
  45. package/dist/lib/dbmodels/coaching/QuestionnaireResponse.js +42 -0
  46. package/dist/lib/dbmodels/coaching/QuestionnaireResponse.js.map +1 -0
  47. package/dist/lib/dbmodels/coaching/WeeklyCheckIn.js +69 -0
  48. package/dist/lib/dbmodels/coaching/WeeklyCheckIn.js.map +1 -0
  49. package/dist/lib/dbmodels/coaching/WeightRecord.js +49 -0
  50. package/dist/lib/dbmodels/coaching/WeightRecord.js.map +1 -0
  51. package/dist/lib/dbmodels/diet/DietDay.js +50 -0
  52. package/dist/lib/dbmodels/diet/DietDay.js.map +1 -0
  53. package/dist/lib/dbmodels/diet/DietMeal.js +74 -0
  54. package/dist/lib/dbmodels/diet/DietMeal.js.map +1 -0
  55. package/dist/lib/dbmodels/diet/DietMealCompletion.js +69 -0
  56. package/dist/lib/dbmodels/diet/DietMealCompletion.js.map +1 -0
  57. package/dist/lib/dbmodels/diet/DietMealRecipe.js +67 -0
  58. package/dist/lib/dbmodels/diet/DietMealRecipe.js.map +1 -0
  59. package/dist/lib/dbmodels/diet/DietMealRecipeIngredient.js +46 -0
  60. package/dist/lib/dbmodels/diet/DietMealRecipeIngredient.js.map +1 -0
  61. package/dist/lib/dbmodels/diet/DietProgram.js +98 -0
  62. package/dist/lib/dbmodels/diet/DietProgram.js.map +1 -0
  63. package/dist/lib/dbmodels/diet/Ingredient.js +88 -0
  64. package/dist/lib/dbmodels/diet/Ingredient.js.map +1 -0
  65. package/dist/lib/dbmodels/diet/IngredientTag.js +64 -0
  66. package/dist/lib/dbmodels/diet/IngredientTag.js.map +1 -0
  67. package/dist/lib/dbmodels/diet/IngredientTags.js +29 -0
  68. package/dist/lib/dbmodels/diet/IngredientTags.js.map +1 -0
  69. package/dist/lib/dbmodels/diet/Recipe.js +173 -0
  70. package/dist/lib/dbmodels/diet/Recipe.js.map +1 -0
  71. package/dist/lib/dbmodels/diet/RecipeIngredient.js +78 -0
  72. package/dist/lib/dbmodels/diet/RecipeIngredient.js.map +1 -0
  73. package/dist/lib/dbmodels/diet/RecipeTag.js +44 -0
  74. package/dist/lib/dbmodels/diet/RecipeTag.js.map +1 -0
  75. package/dist/lib/dbmodels/diet/RecipeTags.js +24 -0
  76. package/dist/lib/dbmodels/diet/RecipeTags.js.map +1 -0
  77. package/dist/lib/dbmodels/diet/ShoppingList.js +69 -0
  78. package/dist/lib/dbmodels/diet/ShoppingList.js.map +1 -0
  79. package/dist/lib/dbmodels/diet/ShoppingListItem.js +66 -0
  80. package/dist/lib/dbmodels/diet/ShoppingListItem.js.map +1 -0
  81. package/dist/lib/dbmodels/diet/TranslatedRecipe.js +122 -0
  82. package/dist/lib/dbmodels/diet/TranslatedRecipe.js.map +1 -0
  83. package/dist/lib/dbmodels/diet/TranslatedRecipeTag.js +47 -0
  84. package/dist/lib/dbmodels/diet/TranslatedRecipeTag.js.map +1 -0
  85. package/dist/lib/dbmodels/diet/TranslatedRecipeTags.js +24 -0
  86. package/dist/lib/dbmodels/diet/TranslatedRecipeTags.js.map +1 -0
  87. package/dist/lib/dbmodels/diet/UserDietPreferences.js +85 -0
  88. package/dist/lib/dbmodels/diet/UserDietPreferences.js.map +1 -0
  89. package/dist/lib/dbmodels/gamification/Badge.js +62 -0
  90. package/dist/lib/dbmodels/gamification/Badge.js.map +1 -0
  91. package/dist/lib/dbmodels/gamification/StreaksLog.js +37 -0
  92. package/dist/lib/dbmodels/gamification/StreaksLog.js.map +1 -0
  93. package/dist/lib/dbmodels/gamification/TranslatedBadge.js +45 -0
  94. package/dist/lib/dbmodels/gamification/TranslatedBadge.js.map +1 -0
  95. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/UserRankHistory.js +48 -0
  96. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/UserRankHistory.js.map +1 -0
  97. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpEvent.js +53 -0
  98. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpEvent.js.map +1 -0
  99. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpTransaction.js +68 -0
  100. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpTransaction.js.map +1 -0
  101. package/dist/lib/dbmodels/index.js +288 -0
  102. package/dist/lib/dbmodels/index.js.map +1 -0
  103. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.d.ts +32 -0
  104. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.d.ts.map +1 -0
  105. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.js +155 -0
  106. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.js.map +1 -0
  107. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.d.ts +22 -0
  108. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.d.ts.map +1 -0
  109. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.js +108 -0
  110. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.js.map +1 -0
  111. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.d.ts +20 -0
  112. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.d.ts.map +1 -0
  113. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.js +97 -0
  114. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.js.map +1 -0
  115. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.d.ts +22 -0
  116. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.d.ts.map +1 -0
  117. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.js +115 -0
  118. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.js.map +1 -0
  119. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.d.ts +7 -0
  120. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.d.ts.map +1 -0
  121. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.js +41 -0
  122. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.js.map +1 -0
  123. package/dist/lib/dbmodels/notifications/NotificationModels.js +38 -0
  124. package/dist/lib/dbmodels/notifications/NotificationModels.js.map +1 -0
  125. package/dist/lib/dbmodels/notifications/TranslatedNotification.js +45 -0
  126. package/dist/lib/dbmodels/notifications/TranslatedNotification.js.map +1 -0
  127. package/dist/lib/dbmodels/program/Challenge.d.ts +13 -0
  128. package/dist/lib/dbmodels/program/Challenge.d.ts.map +1 -0
  129. package/dist/lib/dbmodels/program/Challenge.js +63 -0
  130. package/dist/lib/dbmodels/program/Challenge.js.map +1 -0
  131. package/dist/lib/dbmodels/program/ChallengeBlueprint.js +75 -0
  132. package/dist/lib/dbmodels/program/ChallengeBlueprint.js.map +1 -0
  133. package/dist/lib/dbmodels/program/CircularProgramDraft.js +82 -0
  134. package/dist/lib/dbmodels/program/CircularProgramDraft.js.map +1 -0
  135. package/dist/lib/dbmodels/program/CoachExerciseNote.js +61 -0
  136. package/dist/lib/dbmodels/program/CoachExerciseNote.js.map +1 -0
  137. package/dist/lib/dbmodels/program/CustomProgramBlueprint.js +84 -0
  138. package/dist/lib/dbmodels/program/CustomProgramBlueprint.js.map +1 -0
  139. package/dist/lib/dbmodels/program/CustomStrengthTest.js +55 -0
  140. package/dist/lib/dbmodels/program/CustomStrengthTest.js.map +1 -0
  141. package/dist/lib/dbmodels/program/CustomStrengthTestExercises.js +69 -0
  142. package/dist/lib/dbmodels/program/CustomStrengthTestExercises.js.map +1 -0
  143. package/dist/lib/dbmodels/program/CustomWorkoutBlueprint.js +58 -0
  144. package/dist/lib/dbmodels/program/CustomWorkoutBlueprint.js.map +1 -0
  145. package/dist/lib/dbmodels/program/Exercise.d.ts +23 -0
  146. package/dist/lib/dbmodels/program/Exercise.d.ts.map +1 -0
  147. package/dist/lib/dbmodels/program/Exercise.js +101 -0
  148. package/dist/lib/dbmodels/program/Exercise.js.map +1 -0
  149. package/dist/lib/dbmodels/program/ExerciseModels.d.ts +28 -0
  150. package/dist/lib/dbmodels/program/ExerciseModels.d.ts.map +1 -0
  151. package/dist/lib/dbmodels/program/ExerciseModels.js +149 -0
  152. package/dist/lib/dbmodels/program/ExerciseModels.js.map +1 -0
  153. package/dist/lib/dbmodels/program/Program.d.ts +15 -0
  154. package/dist/lib/dbmodels/program/Program.d.ts.map +1 -0
  155. package/dist/lib/dbmodels/program/Program.js +76 -0
  156. package/dist/lib/dbmodels/program/Program.js.map +1 -0
  157. package/dist/lib/dbmodels/program/ProgressEntry.d.ts +26 -0
  158. package/dist/lib/dbmodels/program/ProgressEntry.d.ts.map +1 -0
  159. package/dist/lib/dbmodels/program/ProgressEntry.js +77 -0
  160. package/dist/lib/dbmodels/program/ProgressEntry.js.map +1 -0
  161. package/dist/lib/dbmodels/program/RestDay.js +33 -0
  162. package/dist/lib/dbmodels/program/RestDay.js.map +1 -0
  163. package/dist/lib/dbmodels/program/StrengthTest.d.ts +10 -0
  164. package/dist/lib/dbmodels/program/StrengthTest.d.ts.map +1 -0
  165. package/dist/lib/dbmodels/program/StrengthTest.js +39 -0
  166. package/dist/lib/dbmodels/program/StrengthTest.js.map +1 -0
  167. package/dist/lib/dbmodels/program/StrengthTestExercise.d.ts +15 -0
  168. package/dist/lib/dbmodels/program/StrengthTestExercise.d.ts.map +1 -0
  169. package/dist/lib/dbmodels/program/StrengthTestExercise.js +72 -0
  170. package/dist/lib/dbmodels/program/StrengthTestExercise.js.map +1 -0
  171. package/dist/lib/dbmodels/program/StrengthTestSession.js +73 -0
  172. package/dist/lib/dbmodels/program/StrengthTestSession.js.map +1 -0
  173. package/dist/lib/dbmodels/program/Superset.d.ts +13 -0
  174. package/dist/lib/dbmodels/program/Superset.d.ts.map +1 -0
  175. package/dist/lib/dbmodels/program/Superset.js +46 -0
  176. package/dist/lib/dbmodels/program/Superset.js.map +1 -0
  177. package/dist/lib/dbmodels/program/ThirtyDayChallenge.js +70 -0
  178. package/dist/lib/dbmodels/program/ThirtyDayChallenge.js.map +1 -0
  179. package/dist/lib/dbmodels/program/ThirtyDayChallengeStrengthTest.js +55 -0
  180. package/dist/lib/dbmodels/program/ThirtyDayChallengeStrengthTest.js.map +1 -0
  181. package/dist/lib/dbmodels/program/TranslatedChallenge.d.ts +15 -0
  182. package/dist/lib/dbmodels/program/TranslatedChallenge.d.ts.map +1 -0
  183. package/dist/lib/dbmodels/program/TranslatedChallenge.js +69 -0
  184. package/dist/lib/dbmodels/program/TranslatedChallenge.js.map +1 -0
  185. package/dist/lib/dbmodels/program/TranslatedExerciseModel.d.ts +25 -0
  186. package/dist/lib/dbmodels/program/TranslatedExerciseModel.d.ts.map +1 -0
  187. package/dist/lib/dbmodels/program/TranslatedExerciseModel.js +123 -0
  188. package/dist/lib/dbmodels/program/TranslatedExerciseModel.js.map +1 -0
  189. package/dist/lib/dbmodels/program/TranslatedStrengthTest.d.ts +12 -0
  190. package/dist/lib/dbmodels/program/TranslatedStrengthTest.d.ts.map +1 -0
  191. package/dist/lib/dbmodels/program/TranslatedStrengthTest.js +45 -0
  192. package/dist/lib/dbmodels/program/TranslatedStrengthTest.js.map +1 -0
  193. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.d.ts +16 -0
  194. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.d.ts.map +1 -0
  195. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.js +78 -0
  196. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.js.map +1 -0
  197. package/dist/lib/dbmodels/program/UserChallenge.d.ts +10 -0
  198. package/dist/lib/dbmodels/program/UserChallenge.d.ts.map +1 -0
  199. package/dist/lib/dbmodels/program/UserChallenge.js +47 -0
  200. package/dist/lib/dbmodels/program/UserChallenge.js.map +1 -0
  201. package/dist/lib/dbmodels/program/UserExerciseNote.js +61 -0
  202. package/dist/lib/dbmodels/program/UserExerciseNote.js.map +1 -0
  203. package/dist/lib/dbmodels/program/UserStrengthTests.d.ts +11 -0
  204. package/dist/lib/dbmodels/program/UserStrengthTests.d.ts.map +1 -0
  205. package/dist/lib/dbmodels/program/UserStrengthTests.js +54 -0
  206. package/dist/lib/dbmodels/program/UserStrengthTests.js.map +1 -0
  207. package/dist/lib/dbmodels/program/Workout.d.ts +14 -0
  208. package/dist/lib/dbmodels/program/Workout.d.ts.map +1 -0
  209. package/dist/lib/dbmodels/program/Workout.js +66 -0
  210. package/dist/lib/dbmodels/program/Workout.js.map +1 -0
  211. package/dist/lib/dbmodels/program/WorkoutCompletion.js +65 -0
  212. package/dist/lib/dbmodels/program/WorkoutCompletion.js.map +1 -0
  213. package/dist/lib/dbmodels/program/WorkoutSession.js +93 -0
  214. package/dist/lib/dbmodels/program/WorkoutSession.js.map +1 -0
  215. package/dist/lib/dbmodels/subscription/Subscription.d.ts +19 -0
  216. package/dist/lib/dbmodels/subscription/Subscription.d.ts.map +1 -0
  217. package/dist/lib/dbmodels/subscription/Subscription.js +91 -0
  218. package/dist/lib/dbmodels/subscription/Subscription.js.map +1 -0
  219. package/dist/lib/dbmodels/subscription/SubscriptionEvent.js +79 -0
  220. package/dist/lib/dbmodels/subscription/SubscriptionEvent.js.map +1 -0
  221. package/dist/lib/dbmodels/subscription/SubscriptionLog.d.ts +9 -0
  222. package/dist/lib/dbmodels/subscription/SubscriptionLog.d.ts.map +1 -0
  223. package/dist/lib/dbmodels/subscription/SubscriptionLog.js +42 -0
  224. package/dist/lib/dbmodels/subscription/SubscriptionLog.js.map +1 -0
  225. package/dist/lib/dbmodels/subscription/SubscriptionRefund.js +92 -0
  226. package/dist/lib/dbmodels/subscription/SubscriptionRefund.js.map +1 -0
  227. package/dist/lib/dbmodels/user/DeviceTokens.js +34 -0
  228. package/dist/lib/dbmodels/user/DeviceTokens.js.map +1 -0
  229. package/dist/lib/dbmodels/user/PersistedUser.d.ts +43 -0
  230. package/dist/lib/dbmodels/user/PersistedUser.d.ts.map +1 -0
  231. package/dist/lib/dbmodels/user/PersistedUser.js +237 -0
  232. package/dist/lib/dbmodels/user/PersistedUser.js.map +1 -0
  233. package/dist/lib/dbmodels/user/UserAddons.js +26 -0
  234. package/dist/lib/dbmodels/user/UserAddons.js.map +1 -0
  235. package/dist/lib/dbmodels/user/UserBadges.js +63 -0
  236. package/dist/lib/dbmodels/user/UserBadges.js.map +1 -0
  237. package/dist/lib/dbmodels/user/UserCoach.js +40 -0
  238. package/dist/lib/dbmodels/user/UserCoach.js.map +1 -0
  239. package/dist/lib/dbmodels/user/UserDiscount.js +24 -0
  240. package/dist/lib/dbmodels/user/UserDiscount.js.map +1 -0
  241. package/dist/lib/dbmodels/user/UserOptions.js +34 -0
  242. package/dist/lib/dbmodels/user/UserOptions.js.map +1 -0
  243. package/dist/lib/dbmodels/user/UserProgressPhoto.js +59 -0
  244. package/dist/lib/dbmodels/user/UserProgressPhoto.js.map +1 -0
  245. package/dist/lib/dbmodels/user/UserStreaks.js +64 -0
  246. package/dist/lib/dbmodels/user/UserStreaks.js.map +1 -0
  247. package/dist/lib/dbmodels/user/UsersFriends.js +46 -0
  248. package/dist/lib/dbmodels/user/UsersFriends.js.map +1 -0
  249. package/dist/lib/enums/ProgramEnums.d.ts +18 -0
  250. package/dist/lib/enums/ProgramEnums.d.ts.map +1 -0
  251. package/dist/lib/enums/ProgramEnums.js +22 -0
  252. package/dist/lib/enums/ProgramEnums.js.map +1 -0
  253. package/dist/lib/enums/ProgramTemplates.js +738 -0
  254. package/dist/lib/enums/ProgramTemplates.js.map +1 -0
  255. package/dist/lib/middlewares/ErrorMiddleware.js +141 -0
  256. package/dist/lib/middlewares/ErrorMiddleware.js.map +1 -0
  257. package/dist/lib/middlewares/ValidationMiddleware.js +24 -0
  258. package/dist/lib/middlewares/ValidationMiddleware.js.map +1 -0
  259. package/dist/lib/models/BlueprintInterfaces.js +3 -0
  260. package/dist/lib/models/BlueprintInterfaces.js.map +1 -0
  261. package/dist/lib/models/ExerciseInterfaces.d.ts +68 -0
  262. package/dist/lib/models/ExerciseInterfaces.d.ts.map +1 -0
  263. package/dist/lib/models/ExerciseInterfaces.js +3 -0
  264. package/dist/lib/models/ExerciseInterfaces.js.map +1 -0
  265. package/dist/lib/models/NotificationInterfaces.js +11 -0
  266. package/dist/lib/models/NotificationInterfaces.js.map +1 -0
  267. package/dist/lib/models/ProgramInterfaces.js +3 -0
  268. package/dist/lib/models/ProgramInterfaces.js.map +1 -0
  269. package/dist/lib/models/UserInterfaces.js +3 -0
  270. package/dist/lib/models/UserInterfaces.js.map +1 -0
  271. package/dist/lib/models/WorkoutInterfaces.js +3 -0
  272. package/dist/lib/models/WorkoutInterfaces.js.map +1 -0
  273. package/dist/lib/scripts/cli.js +82 -0
  274. package/dist/lib/scripts/cli.js.map +1 -0
  275. package/dist/lib/scripts/populate-exercise-thumbnails.js +64 -0
  276. package/dist/lib/scripts/populate-exercise-thumbnails.js.map +1 -0
  277. package/dist/lib/scripts/setup-database.js +43 -0
  278. package/dist/lib/scripts/setup-database.js.map +1 -0
  279. package/dist/lib/scripts/verify-indexes.js +94 -0
  280. package/dist/lib/scripts/verify-indexes.js.map +1 -0
  281. package/dist/lib/testing/testFixtures.js +520 -0
  282. package/dist/lib/testing/testFixtures.js.map +1 -0
  283. package/dist/lib/testing/testHelpers.js +149 -0
  284. package/dist/lib/testing/testHelpers.js.map +1 -0
  285. package/dist/lib/utils/AuthenticationUtil.js +481 -0
  286. package/dist/lib/utils/AuthenticationUtil.js.map +1 -0
  287. package/dist/lib/utils/Logger.js +242 -0
  288. package/dist/lib/utils/Logger.js.map +1 -0
  289. package/dist/lib/utils/NotificationClient.js +371 -0
  290. package/dist/lib/utils/NotificationClient.js.map +1 -0
  291. package/dist/lib/utils/NotificationsUtil.js +95 -0
  292. package/dist/lib/utils/NotificationsUtil.js.map +1 -0
  293. package/dist/lib/utils/SecretManager.js +107 -0
  294. package/dist/lib/utils/SecretManager.js.map +1 -0
  295. package/dist/lib/utils/SentryUtil.js +140 -0
  296. package/dist/lib/utils/SentryUtil.js.map +1 -0
  297. package/dist/lib/utils/imageValidation.js +31 -0
  298. package/dist/lib/utils/imageValidation.js.map +1 -0
  299. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Table, Model, Column, DataType, Default, PrimaryKey, Index, HasMany } from "sequelize-typescript";
8
+ import { Question } from "./Question.js";
9
+ import { QuestionnaireResponse } from "./QuestionnaireResponse.js";
10
+ export var QuestionnaireType = /*#__PURE__*/ function(QuestionnaireType) {
11
+ QuestionnaireType["WEEKLY"] = "weekly";
12
+ QuestionnaireType["ONBOARDING"] = "onboarding";
13
+ return QuestionnaireType;
14
+ }({});
15
+ export class Questionnaire extends Model {
16
+ }
17
+ _ts_decorate([
18
+ PrimaryKey,
19
+ Default(DataType.UUIDV4),
20
+ Column(DataType.UUID)
21
+ ], Questionnaire.prototype, "uuid", void 0);
22
+ _ts_decorate([
23
+ Index,
24
+ Column(DataType.ENUM(...Object.values(QuestionnaireType)))
25
+ ], Questionnaire.prototype, "type", void 0);
26
+ _ts_decorate([
27
+ HasMany(()=>Question)
28
+ ], Questionnaire.prototype, "questions", void 0);
29
+ _ts_decorate([
30
+ HasMany(()=>QuestionnaireResponse)
31
+ ], Questionnaire.prototype, "responses", void 0);
32
+ Questionnaire = _ts_decorate([
33
+ Table({
34
+ tableName: 'Questionnaire',
35
+ timestamps: true
36
+ })
37
+ ], Questionnaire);
38
+
39
+ //# sourceMappingURL=Questionnaire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/coaching/Questionnaire.ts"],"sourcesContent":["import {\n Table, Model, Column, DataType, Default, PrimaryKey, Index, HasMany\n} from 'sequelize-typescript';\nimport { Question } from './Question.js';\nimport { QuestionnaireResponse } from './QuestionnaireResponse.js';\n\nexport enum QuestionnaireType {\n WEEKLY = 'weekly',\n ONBOARDING = 'onboarding',\n}\n\n@Table({ tableName: 'Questionnaire', timestamps: true })\nexport class Questionnaire extends Model<Questionnaire> {\n @PrimaryKey @Default(DataType.UUIDV4) @Column(DataType.UUID)\n declare uuid: string;\n\n @Index @Column(DataType.ENUM(...Object.values(QuestionnaireType)))\n declare type: QuestionnaireType;\n\n @HasMany(() => Question) declare questions?: Question[];\n @HasMany(() => QuestionnaireResponse) declare responses?: QuestionnaireResponse[];\n}"],"names":["Table","Model","Column","DataType","Default","PrimaryKey","Index","HasMany","Question","QuestionnaireResponse","QuestionnaireType","Questionnaire","UUIDV4","UUID","ENUM","values","tableName","timestamps"],"mappings":";;;;;;AAAA,SACIA,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,OAAO,QAChE,uBAAuB;AAC9B,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,qBAAqB,QAAQ,6BAA6B;AAEnE,OAAO,IAAA,AAAKC,2CAAAA;;;WAAAA;MAGX;AAGD,OAAO,MAAMC,sBAAsBV;AASnC;;;qBARkCW;oBAAyBC;;;;oBAG/BC,eAAeC;;;gBAGxBP;;;gBACAC;;;;QATVO,WAAW;QAAiBC,YAAY"}
@@ -0,0 +1,42 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Table, Model, Column, DataType, Default, PrimaryKey, Index, ForeignKey, BelongsTo, HasMany } from "sequelize-typescript";
8
+ import { Questionnaire } from "./Questionnaire.js";
9
+ import { Answer } from "./Answer.js";
10
+ export class QuestionnaireResponse extends Model {
11
+ toJSON() {
12
+ return super.toJSON();
13
+ }
14
+ }
15
+ _ts_decorate([
16
+ PrimaryKey,
17
+ Default(DataType.UUIDV4),
18
+ Column(DataType.UUID)
19
+ ], QuestionnaireResponse.prototype, "uuid", void 0);
20
+ _ts_decorate([
21
+ ForeignKey(()=>Questionnaire),
22
+ Index,
23
+ Column(DataType.UUID)
24
+ ], QuestionnaireResponse.prototype, "questionnaireUuid", void 0);
25
+ _ts_decorate([
26
+ BelongsTo(()=>Questionnaire)
27
+ ], QuestionnaireResponse.prototype, "questionnaire", void 0);
28
+ _ts_decorate([
29
+ Index,
30
+ Column(DataType.UUID)
31
+ ], QuestionnaireResponse.prototype, "userUuid", void 0);
32
+ _ts_decorate([
33
+ HasMany(()=>Answer)
34
+ ], QuestionnaireResponse.prototype, "answers", void 0);
35
+ QuestionnaireResponse = _ts_decorate([
36
+ Table({
37
+ tableName: 'QuestionnaireResponse',
38
+ timestamps: true
39
+ })
40
+ ], QuestionnaireResponse);
41
+
42
+ //# sourceMappingURL=QuestionnaireResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/coaching/QuestionnaireResponse.ts"],"sourcesContent":["import {\n Table, Model, Column, DataType, Default, PrimaryKey, Index,\n ForeignKey, BelongsTo, HasMany\n} from 'sequelize-typescript';\nimport { Questionnaire } from './Questionnaire.js';\nimport { Answer } from './Answer.js';\n\nexport interface QuestionnaireResponseAttributes {\n uuid: string;\n questionnaireUuid: string;\n userUuid: string;\n createdAt?: Date;\n updatedAt?: Date;\n}\n\nexport interface QuestionnaireResponseJSON extends QuestionnaireResponseAttributes {\n questionnaire?: Questionnaire;\n answers?: Answer[];\n}\n\n@Table({ tableName: 'QuestionnaireResponse', timestamps: true })\nexport class QuestionnaireResponse extends Model<QuestionnaireResponseAttributes> {\n @PrimaryKey @Default(DataType.UUIDV4) @Column(DataType.UUID)\n declare uuid: string;\n\n @ForeignKey(() => Questionnaire) @Index @Column(DataType.UUID)\n declare questionnaireUuid: string;\n\n @BelongsTo(() => Questionnaire) declare questionnaire?: Questionnaire;\n\n @Index @Column(DataType.UUID) declare userUuid: string;\n\n @HasMany(() => Answer) declare answers?: Answer[];\n\n declare createdAt: Date;\n declare updatedAt: Date;\n\n override toJSON(): QuestionnaireResponseJSON {\n return super.toJSON() as QuestionnaireResponseJSON;\n }\n}"],"names":["Table","Model","Column","DataType","Default","PrimaryKey","Index","ForeignKey","BelongsTo","HasMany","Questionnaire","Answer","QuestionnaireResponse","toJSON","UUIDV4","UUID","tableName","timestamps"],"mappings":";;;;;;AAAA,SACIA,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAC1DC,UAAU,EAAEC,SAAS,EAAEC,OAAO,QAC3B,uBAAuB;AAC9B,SAASC,aAAa,QAAQ,qBAAqB;AACnD,SAASC,MAAM,QAAQ,cAAc;AAgBrC,OAAO,MAAMC,8BAA8BX;IAgB9BY,SAAoC;QACzC,OAAO,KAAK,CAACA;IACjB;AACJ;;;qBAlBkCC;oBAAyBC;;;mBAGrCL;;oBAAuCK;;;kBAGxCL;;;;oBAEOK;;;gBAETJ;;;;QAZVK,WAAW;QAAyBC,YAAY"}
@@ -0,0 +1,69 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Table, Model, Column, DataType, PrimaryKey, Default, AllowNull } from "sequelize-typescript";
8
+ export class WeeklyCheckin extends Model {
9
+ get allPartsSubmitted() {
10
+ return Boolean(this.weightInSubmittedAt && this.questionnaireSubmittedAt && this.photosSubmittedAt);
11
+ }
12
+ }
13
+ _ts_decorate([
14
+ PrimaryKey,
15
+ Default(DataType.UUIDV4),
16
+ Column(DataType.UUID)
17
+ ], WeeklyCheckin.prototype, "uuid", void 0);
18
+ _ts_decorate([
19
+ AllowNull(false),
20
+ Column(DataType.UUID)
21
+ ], WeeklyCheckin.prototype, "userUuid", void 0);
22
+ _ts_decorate([
23
+ AllowNull(false),
24
+ Column(DataType.DATEONLY)
25
+ ], WeeklyCheckin.prototype, "weekStartLocal", void 0);
26
+ _ts_decorate([
27
+ AllowNull(false),
28
+ Column(DataType.STRING(64))
29
+ ], WeeklyCheckin.prototype, "timezone", void 0);
30
+ _ts_decorate([
31
+ AllowNull(true),
32
+ Column(DataType.DATE)
33
+ ], WeeklyCheckin.prototype, "submittedAt", void 0);
34
+ _ts_decorate([
35
+ Column(DataType.DATE)
36
+ ], WeeklyCheckin.prototype, "weightInSubmittedAt", void 0);
37
+ _ts_decorate([
38
+ Column(DataType.DATE)
39
+ ], WeeklyCheckin.prototype, "questionnaireSubmittedAt", void 0);
40
+ _ts_decorate([
41
+ Column(DataType.DATE)
42
+ ], WeeklyCheckin.prototype, "photosSubmittedAt", void 0);
43
+ _ts_decorate([
44
+ Column(DataType.JSONB)
45
+ ], WeeklyCheckin.prototype, "weightInMeta", void 0);
46
+ _ts_decorate([
47
+ Column(DataType.JSONB)
48
+ ], WeeklyCheckin.prototype, "questionnaireMeta", void 0);
49
+ _ts_decorate([
50
+ Column(DataType.JSONB)
51
+ ], WeeklyCheckin.prototype, "photosMeta", void 0);
52
+ _ts_decorate([
53
+ AllowNull(true),
54
+ Column(DataType.DATE)
55
+ ], WeeklyCheckin.prototype, "reviewedAt", void 0);
56
+ _ts_decorate([
57
+ AllowNull(true),
58
+ Column(DataType.UUID)
59
+ ], WeeklyCheckin.prototype, "reviewedByCoachUuid", void 0);
60
+ _ts_decorate([
61
+ Column(DataType.VIRTUAL)
62
+ ], WeeklyCheckin.prototype, "allPartsSubmitted", null);
63
+ WeeklyCheckin = _ts_decorate([
64
+ Table({
65
+ timestamps: true
66
+ })
67
+ ], WeeklyCheckin);
68
+
69
+ //# sourceMappingURL=WeeklyCheckIn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/coaching/WeeklyCheckIn.ts"],"sourcesContent":["import { Table, Model, Column, DataType, PrimaryKey, Default, AllowNull } from \"sequelize-typescript\";\nimport type { Optional } from \"sequelize\";\n\nexport interface WeeklyCheckinAttributes {\n uuid: string;\n userUuid: string;\n weekStartLocal: string;\n timezone: string;\n submittedAt: Date | null;\n weightInSubmittedAt: Date | null;\n questionnaireSubmittedAt: Date | null;\n photosSubmittedAt: Date | null;\n weightInMeta: Record<string, unknown> | null;\n questionnaireMeta: Record<string, unknown> | null;\n photosMeta: Record<string, unknown> | null;\n reviewedAt: Date | null;\n reviewedByCoachUuid: string | null;\n createdAt?: Date;\n updatedAt?: Date;\n}\n\nexport interface WeeklyCheckinCreationAttributes extends Optional<WeeklyCheckinAttributes, \"uuid\" | \"createdAt\" | \"updatedAt\"> {\n}\n\n@Table({ timestamps: true })\nexport class WeeklyCheckin extends Model<WeeklyCheckinAttributes, WeeklyCheckinCreationAttributes> {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @AllowNull(false)\n @Column(DataType.UUID)\n declare userUuid: string;\n\n @AllowNull(false)\n @Column(DataType.DATEONLY)\n declare weekStartLocal: string;\n\n @AllowNull(false)\n @Column(DataType.STRING(64))\n declare timezone: string;\n\n @AllowNull(true)\n @Column(DataType.DATE)\n declare submittedAt: Date | null;\n\n @Column(DataType.DATE) declare weightInSubmittedAt: Date | null;\n\n @Column(DataType.DATE) declare questionnaireSubmittedAt: Date | null;\n\n @Column(DataType.DATE) declare photosSubmittedAt: Date | null;\n\n @Column(DataType.JSONB) declare weightInMeta: Record<string, unknown> | null;\n @Column(DataType.JSONB) declare questionnaireMeta: Record<string, unknown> | null;\n @Column(DataType.JSONB) declare photosMeta: Record<string, unknown> | null;\n\n @AllowNull(true)\n @Column(DataType.DATE)\n declare reviewedAt: Date | null;\n\n @AllowNull(true)\n @Column(DataType.UUID)\n declare reviewedByCoachUuid: string | null;\n\n @Column(DataType.VIRTUAL)\n get allPartsSubmitted(): boolean {\n return Boolean(this.weightInSubmittedAt && this.questionnaireSubmittedAt && this.photosSubmittedAt);\n }\n}\n"],"names":["Table","Model","Column","DataType","PrimaryKey","Default","AllowNull","WeeklyCheckin","allPartsSubmitted","Boolean","weightInSubmittedAt","questionnaireSubmittedAt","photosSubmittedAt","UUIDV4","UUID","DATEONLY","STRING","DATE","JSONB","VIRTUAL","timestamps"],"mappings":";;;;;;AAAA,SAASA,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAAEC,SAAS,QAAQ,uBAAuB;AAyBtG,OAAO,MAAMC,sBAAsBN;IAwC/B,IACIO,oBAA6B;QAC7B,OAAOC,QAAQ,IAAI,CAACC,mBAAmB,IAAI,IAAI,CAACC,wBAAwB,IAAI,IAAI,CAACC,iBAAiB;IACtG;AACJ;;;qBA1CsBC;oBACDC;;;;oBAIAA;;;;oBAIAC;;;;oBAIAC;;;;oBAIAC;;;oBAGAA;;;oBAEAA;;;oBAEAA;;;oBAEAC;;;oBACAA;;;oBACAA;;;;oBAGAD;;;;oBAIAH;;;oBAGAK;;;;QAzCZC,YAAY"}
@@ -0,0 +1,49 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Column, DataType, Default, ForeignKey, Model, Table } from "sequelize-typescript";
8
+ import { PersistedUser } from "../user/PersistedUser.js";
9
+ export class WeightRecord extends Model {
10
+ }
11
+ _ts_decorate([
12
+ Default(DataType.UUIDV4),
13
+ Column({
14
+ type: DataType.UUID,
15
+ defaultValue: DataType.UUID,
16
+ allowNull: false,
17
+ primaryKey: true
18
+ })
19
+ ], WeightRecord.prototype, "uuid", void 0);
20
+ _ts_decorate([
21
+ ForeignKey(()=>PersistedUser),
22
+ Column({
23
+ type: DataType.TEXT,
24
+ allowNull: false
25
+ })
26
+ ], WeightRecord.prototype, "userUuid", void 0);
27
+ _ts_decorate([
28
+ Column({
29
+ type: DataType.TEXT,
30
+ allowNull: false
31
+ })
32
+ ], WeightRecord.prototype, "weight", void 0);
33
+ _ts_decorate([
34
+ Column({
35
+ type: DataType.TEXT,
36
+ allowNull: true
37
+ })
38
+ ], WeightRecord.prototype, "measurementSystem", void 0);
39
+ _ts_decorate([
40
+ Column({
41
+ type: DataType.TEXT,
42
+ allowNull: false
43
+ })
44
+ ], WeightRecord.prototype, "date", void 0);
45
+ WeightRecord = _ts_decorate([
46
+ Table
47
+ ], WeightRecord);
48
+
49
+ //# sourceMappingURL=WeightRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/coaching/WeightRecord.ts"],"sourcesContent":["import { Column, DataType, Default, ForeignKey, Model, Table } from 'sequelize-typescript';\nimport { PersistedUser } from '../user/PersistedUser.js';\n\n@Table\nexport class WeightRecord extends Model {\n\t@Default(DataType.UUIDV4)\n\t@Column({\n\t\ttype: DataType.UUID,\n\t\tdefaultValue: DataType.UUID,\n\t\tallowNull: false,\n\t\tprimaryKey: true\n\t})\n\tdeclare uuid: string;\n\n\t@ForeignKey(() => PersistedUser)\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare userUuid: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare weight: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: true })\n\tdeclare measurementSystem: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare date: string;\n}\n"],"names":["Column","DataType","Default","ForeignKey","Model","Table","PersistedUser","WeightRecord","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","TEXT"],"mappings":";;;;;;AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAC3F,SAASC,aAAa,QAAQ,2BAA2B;AAGzD,OAAO,MAAMC,qBAAqBH;AAsBlC;;qBArBmBI;;QAEjBC,MAAMR,SAASS,IAAI;QACnBC,cAAcV,SAASS,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;mBAIKP;;QACRG,MAAMR,SAASa,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMR,SAASa,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMR,SAASa,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMR,SAASa,IAAI;QAAEF,WAAW"}
@@ -0,0 +1,50 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Table, Model, Column, DataType, Default, PrimaryKey, HasMany, ForeignKey, BelongsTo, Index } from "sequelize-typescript";
8
+ import { DietProgram } from "./DietProgram.js";
9
+ import { DietMeal } from "./DietMeal.js";
10
+ export class DietDay extends Model {
11
+ }
12
+ _ts_decorate([
13
+ PrimaryKey,
14
+ Default(DataType.UUIDV4),
15
+ Column(DataType.UUID)
16
+ ], DietDay.prototype, "uuid", void 0);
17
+ _ts_decorate([
18
+ Index,
19
+ ForeignKey(()=>DietProgram),
20
+ Column(DataType.UUID)
21
+ ], DietDay.prototype, "dietProgramUuid", void 0);
22
+ _ts_decorate([
23
+ BelongsTo(()=>DietProgram)
24
+ ], DietDay.prototype, "program", void 0);
25
+ _ts_decorate([
26
+ HasMany(()=>DietMeal, {
27
+ foreignKey: "dietDayUuid",
28
+ onDelete: "CASCADE"
29
+ })
30
+ ], DietDay.prototype, "meals", void 0);
31
+ _ts_decorate([
32
+ Column(DataType.INTEGER)
33
+ ], DietDay.prototype, "order", void 0);
34
+ _ts_decorate([
35
+ Column(DataType.INTEGER)
36
+ ], DietDay.prototype, "calories", void 0);
37
+ _ts_decorate([
38
+ Column(DataType.FLOAT)
39
+ ], DietDay.prototype, "protein", void 0);
40
+ _ts_decorate([
41
+ Column(DataType.FLOAT)
42
+ ], DietDay.prototype, "fat", void 0);
43
+ _ts_decorate([
44
+ Column(DataType.FLOAT)
45
+ ], DietDay.prototype, "carbs", void 0);
46
+ DietDay = _ts_decorate([
47
+ Table
48
+ ], DietDay);
49
+
50
+ //# sourceMappingURL=DietDay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/diet/DietDay.ts"],"sourcesContent":["import {\n Table,\n Model,\n Column,\n DataType,\n Default,\n PrimaryKey,\n HasMany,\n ForeignKey,\n BelongsTo,\n Index,\n} from \"sequelize-typescript\";\nimport { DietProgram } from \"./DietProgram.js\";\nimport { DietMeal } from \"./DietMeal.js\";\n\n@Table\nexport class DietDay extends Model<DietDay> {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @Index\n @ForeignKey(() => DietProgram)\n @Column(DataType.UUID)\n declare dietProgramUuid: string;\n\n @BelongsTo(() => DietProgram)\n declare program: DietProgram;\n\n @HasMany(() => DietMeal, { foreignKey: \"dietDayUuid\", onDelete: \"CASCADE\" })\n declare meals: DietMeal[];\n\n @Column(DataType.INTEGER)\n declare order: number;\n\n @Column(DataType.INTEGER)\n declare calories: number | null;\n\n @Column(DataType.FLOAT)\n declare protein: number | null;\n\n @Column(DataType.FLOAT)\n declare fat: number | null;\n\n @Column(DataType.FLOAT)\n declare carbs: number | null;\n}\n"],"names":["Table","Model","Column","DataType","Default","PrimaryKey","HasMany","ForeignKey","BelongsTo","Index","DietProgram","DietMeal","DietDay","UUIDV4","UUID","foreignKey","onDelete","INTEGER","FLOAT"],"mappings":";;;;;;AAAA,SACEA,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,KAAK,QACA,uBAAuB;AAC9B,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,QAAQ,QAAQ,gBAAgB;AAGzC,OAAO,MAAMC,gBAAgBX;AA+B7B;;;qBA7BoBY;oBACDC;;;;mBAICJ;oBACDI;;;kBAGAJ;;;gBAGFC;QAAYI,YAAY;QAAeC,UAAU;;;;oBAG/CC;;;oBAGAA;;;oBAGAC;;;oBAGAA;;;oBAGAA"}
@@ -0,0 +1,74 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { BelongsTo, Column, DataType, Default, ForeignKey, HasMany, Index, Model, PrimaryKey, Table } from "sequelize-typescript";
8
+ import { DietDay } from "./DietDay.js";
9
+ import { DietMealRecipe } from "./DietMealRecipe.js";
10
+ import { DietMealCompletion } from "./DietMealCompletion.js";
11
+ export var MealType = /*#__PURE__*/ function(MealType) {
12
+ MealType["BREAKFAST"] = "breakfast";
13
+ MealType["LUNCH"] = "lunch";
14
+ MealType["DINNER"] = "dinner";
15
+ MealType["SNACK"] = "snack";
16
+ return MealType;
17
+ }({});
18
+ export class DietMeal extends Model {
19
+ }
20
+ _ts_decorate([
21
+ PrimaryKey,
22
+ Default(DataType.UUIDV4),
23
+ Column(DataType.UUID)
24
+ ], DietMeal.prototype, "uuid", void 0);
25
+ _ts_decorate([
26
+ Index,
27
+ ForeignKey(()=>DietDay),
28
+ Column(DataType.UUID)
29
+ ], DietMeal.prototype, "dietDayUuid", void 0);
30
+ _ts_decorate([
31
+ BelongsTo(()=>DietDay)
32
+ ], DietMeal.prototype, "day", void 0);
33
+ _ts_decorate([
34
+ HasMany(()=>DietMealRecipe, {
35
+ foreignKey: "dietMealUuid",
36
+ onDelete: "CASCADE"
37
+ })
38
+ ], DietMeal.prototype, "recipes", void 0);
39
+ _ts_decorate([
40
+ HasMany(()=>DietMealCompletion, {
41
+ foreignKey: "dietMealUuid",
42
+ onDelete: "CASCADE"
43
+ })
44
+ ], DietMeal.prototype, "completions", void 0);
45
+ _ts_decorate([
46
+ Column(DataType.ENUM(...Object.values(MealType)))
47
+ ], DietMeal.prototype, "type", void 0);
48
+ _ts_decorate([
49
+ Column(DataType.INTEGER)
50
+ ], DietMeal.prototype, "order", void 0);
51
+ _ts_decorate([
52
+ Default(false),
53
+ Column(DataType.BOOLEAN)
54
+ ], DietMeal.prototype, "isFinished", void 0);
55
+ _ts_decorate([
56
+ Column(DataType.INTEGER)
57
+ ], DietMeal.prototype, "calories", void 0);
58
+ _ts_decorate([
59
+ Column(DataType.FLOAT)
60
+ ], DietMeal.prototype, "protein", void 0);
61
+ _ts_decorate([
62
+ Column(DataType.FLOAT)
63
+ ], DietMeal.prototype, "fat", void 0);
64
+ _ts_decorate([
65
+ Column(DataType.FLOAT)
66
+ ], DietMeal.prototype, "carbs", void 0);
67
+ _ts_decorate([
68
+ Column(DataType.JSONB)
69
+ ], DietMeal.prototype, "selectedRecipeUuids", void 0);
70
+ DietMeal = _ts_decorate([
71
+ Table
72
+ ], DietMeal);
73
+
74
+ //# sourceMappingURL=DietMeal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/diet/DietMeal.ts"],"sourcesContent":["import {\n BelongsTo,\n Column,\n DataType,\n Default,\n ForeignKey,\n HasMany,\n Index,\n Model,\n PrimaryKey,\n Table,\n} from \"sequelize-typescript\";\nimport { DietDay } from \"./DietDay.js\";\nimport { DietMealRecipe } from \"./DietMealRecipe.js\";\nimport { DietMealCompletion } from \"./DietMealCompletion.js\";\n\nexport enum MealType {\n BREAKFAST = \"breakfast\",\n LUNCH = \"lunch\",\n DINNER = \"dinner\",\n SNACK = \"snack\",\n}\n\n@Table\nexport class DietMeal extends Model<DietMeal> {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @Index\n @ForeignKey(() => DietDay)\n @Column(DataType.UUID)\n declare dietDayUuid: string;\n\n @BelongsTo(() => DietDay)\n declare day: DietDay;\n\n @HasMany(() => DietMealRecipe, {\n foreignKey: \"dietMealUuid\",\n onDelete: \"CASCADE\",\n })\n declare recipes: DietMealRecipe[];\n\n @HasMany(() => DietMealCompletion, {\n foreignKey: \"dietMealUuid\",\n onDelete: \"CASCADE\",\n })\n declare completions: DietMealCompletion[];\n\n @Column(DataType.ENUM(...Object.values(MealType)))\n declare type: MealType;\n\n @Column(DataType.INTEGER)\n declare order: number;\n\n @Default(false)\n @Column(DataType.BOOLEAN)\n declare isFinished: boolean;\n\n @Column(DataType.INTEGER)\n declare calories: number | null;\n\n @Column(DataType.FLOAT)\n declare protein: number | null;\n\n @Column(DataType.FLOAT)\n declare fat: number | null;\n\n @Column(DataType.FLOAT)\n declare carbs: number | null;\n\n @Column(DataType.JSONB)\n declare selectedRecipeUuids: string[] | null;\n}\n"],"names":["BelongsTo","Column","DataType","Default","ForeignKey","HasMany","Index","Model","PrimaryKey","Table","DietDay","DietMealRecipe","DietMealCompletion","MealType","DietMeal","UUIDV4","UUID","foreignKey","onDelete","ENUM","values","INTEGER","BOOLEAN","FLOAT","JSONB"],"mappings":";;;;;;AAAA,SACEA,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,OAAO,EACPC,KAAK,EACLC,KAAK,EACLC,UAAU,EACVC,KAAK,QACA,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,kBAAkB,QAAQ,0BAA0B;AAE7D,OAAO,IAAA,AAAKC,kCAAAA;;;;;WAAAA;MAKX;AAGD,OAAO,MAAMC,iBAAiBP;AAkD9B;;;qBAhDoBQ;oBACDC;;;;mBAICN;oBACDM;;;kBAGAN;;;gBAGFC;QACbM,YAAY;QACZC,UAAU;;;;gBAIGN;QACbK,YAAY;QACZC,UAAU;;;;oBAIKC,eAAeC;;;oBAGfC;;;;oBAIAC;;;oBAGAD;;;oBAGAE;;;oBAGAA;;;oBAGAA;;;oBAGAC"}
@@ -0,0 +1,69 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Table, Model, Column, DataType, Default, PrimaryKey, ForeignKey, Index, BelongsTo } from "sequelize-typescript";
8
+ import { PersistedUser } from "../user/PersistedUser.js";
9
+ import { DietMeal } from "./DietMeal.js";
10
+ export class DietMealCompletion extends Model {
11
+ }
12
+ _ts_decorate([
13
+ PrimaryKey,
14
+ Default(DataType.UUIDV4),
15
+ Column(DataType.UUID)
16
+ ], DietMealCompletion.prototype, "uuid", void 0);
17
+ _ts_decorate([
18
+ Index,
19
+ ForeignKey(()=>PersistedUser),
20
+ Column(DataType.UUID)
21
+ ], DietMealCompletion.prototype, "userUuid", void 0);
22
+ _ts_decorate([
23
+ BelongsTo(()=>PersistedUser)
24
+ ], DietMealCompletion.prototype, "user", void 0);
25
+ _ts_decorate([
26
+ ForeignKey(()=>DietMeal),
27
+ Column(DataType.UUID)
28
+ ], DietMealCompletion.prototype, "dietMealUuid", void 0);
29
+ _ts_decorate([
30
+ BelongsTo(()=>DietMeal)
31
+ ], DietMealCompletion.prototype, "meal", void 0);
32
+ _ts_decorate([
33
+ Column(DataType.STRING(20))
34
+ ], DietMealCompletion.prototype, "mealType", void 0);
35
+ _ts_decorate([
36
+ Column(DataType.UUID)
37
+ ], DietMealCompletion.prototype, "selectedRecipeUuid", void 0);
38
+ _ts_decorate([
39
+ Default(DataType.NOW),
40
+ Column(DataType.DATE)
41
+ ], DietMealCompletion.prototype, "completedAt", void 0);
42
+ _ts_decorate([
43
+ Column(DataType.DATEONLY)
44
+ ], DietMealCompletion.prototype, "date", void 0);
45
+ DietMealCompletion = _ts_decorate([
46
+ Table({
47
+ timestamps: true,
48
+ indexes: [
49
+ {
50
+ unique: true,
51
+ fields: [
52
+ "userUuid",
53
+ "mealType",
54
+ "date"
55
+ ],
56
+ name: "unique_user_meal_date"
57
+ },
58
+ {
59
+ fields: [
60
+ "userUuid",
61
+ "date"
62
+ ],
63
+ name: "idx_user_date"
64
+ }
65
+ ]
66
+ })
67
+ ], DietMealCompletion);
68
+
69
+ //# sourceMappingURL=DietMealCompletion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/diet/DietMealCompletion.ts"],"sourcesContent":["import {\n Table,\n Model,\n Column,\n DataType,\n Default,\n PrimaryKey,\n ForeignKey,\n Index,\n BelongsTo,\n} from \"sequelize-typescript\";\nimport { PersistedUser } from \"../user/PersistedUser.js\";\nimport { DietMeal } from \"./DietMeal.js\";\n\n\n@Table({\n timestamps: true,\n indexes: [\n {\n unique: true,\n fields: [\"userUuid\", \"mealType\", \"date\"],\n name: \"unique_user_meal_date\",\n },\n {\n fields: [\"userUuid\", \"date\"],\n name: \"idx_user_date\",\n },\n ],\n})\nexport class DietMealCompletion extends Model<DietMealCompletion> {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @Index\n @ForeignKey(() => PersistedUser)\n @Column(DataType.UUID)\n declare userUuid: string;\n\n @BelongsTo(() => PersistedUser)\n declare user: PersistedUser;\n\n @ForeignKey(() => DietMeal)\n @Column(DataType.UUID)\n declare dietMealUuid: string;\n\n @BelongsTo(() => DietMeal)\n declare meal: DietMeal;\n\n @Column(DataType.STRING(20))\n declare mealType: string; // breakfast, lunch, dinner, snack\n\n @Column(DataType.UUID)\n declare selectedRecipeUuid: string; // Which recipe option user selected\n\n @Default(DataType.NOW)\n @Column(DataType.DATE)\n declare completedAt: Date;\n\n @Column(DataType.DATEONLY)\n declare date: string; // YYYY-MM-DD format\n}\n"],"names":["Table","Model","Column","DataType","Default","PrimaryKey","ForeignKey","Index","BelongsTo","PersistedUser","DietMeal","DietMealCompletion","UUIDV4","UUID","STRING","NOW","DATE","DATEONLY","timestamps","indexes","unique","fields","name"],"mappings":";;;;;;AAAA,SACEA,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,UAAU,EACVC,KAAK,EACLC,SAAS,QACJ,uBAAuB;AAC9B,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,QAAQ,QAAQ,gBAAgB;AAiBzC,OAAO,MAAMC,2BAA2BV;AAiCxC;;;qBA/BoBW;oBACDC;;;;mBAICJ;oBACDI;;;kBAGAJ;;;mBAGCC;oBACDG;;;kBAGAH;;;oBAGAI;;;oBAGAD;;;qBAGCE;oBACDC;;;oBAGAC;;;;QA5CjBC,YAAY;QACZC,SAAS;YACP;gBACEC,QAAQ;gBACRC,QAAQ;oBAAC;oBAAY;oBAAY;iBAAO;gBACxCC,MAAM;YACR;YACA;gBACED,QAAQ;oBAAC;oBAAY;iBAAO;gBAC5BC,MAAM;YACR;SACD"}
@@ -0,0 +1,67 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Table, Model, Column, DataType, Default, PrimaryKey, ForeignKey, BelongsTo, HasMany, Index } from "sequelize-typescript";
8
+ import { DietMeal } from "./DietMeal.js";
9
+ import { Recipe } from "./Recipe.js";
10
+ import { DietMealRecipeIngredient } from "./DietMealRecipeIngredient.js";
11
+ export class DietMealRecipe extends Model {
12
+ }
13
+ _ts_decorate([
14
+ PrimaryKey,
15
+ Default(DataType.UUIDV4),
16
+ Column(DataType.UUID)
17
+ ], DietMealRecipe.prototype, "uuid", void 0);
18
+ _ts_decorate([
19
+ Index,
20
+ ForeignKey(()=>DietMeal),
21
+ Column(DataType.UUID)
22
+ ], DietMealRecipe.prototype, "dietMealUuid", void 0);
23
+ _ts_decorate([
24
+ BelongsTo(()=>DietMeal, {
25
+ onDelete: "CASCADE"
26
+ })
27
+ ], DietMealRecipe.prototype, "meal", void 0);
28
+ _ts_decorate([
29
+ Index,
30
+ ForeignKey(()=>Recipe),
31
+ Column(DataType.UUID)
32
+ ], DietMealRecipe.prototype, "recipeUuid", void 0);
33
+ _ts_decorate([
34
+ BelongsTo(()=>Recipe)
35
+ ], DietMealRecipe.prototype, "recipe", void 0);
36
+ _ts_decorate([
37
+ Default(1.0),
38
+ Column(DataType.FLOAT)
39
+ ], DietMealRecipe.prototype, "scalingFactor", void 0);
40
+ _ts_decorate([
41
+ Column(DataType.INTEGER)
42
+ ], DietMealRecipe.prototype, "scaledCalories", void 0);
43
+ _ts_decorate([
44
+ Column(DataType.FLOAT)
45
+ ], DietMealRecipe.prototype, "scaledProtein", void 0);
46
+ _ts_decorate([
47
+ Column(DataType.FLOAT)
48
+ ], DietMealRecipe.prototype, "scaledCarbs", void 0);
49
+ _ts_decorate([
50
+ Column(DataType.FLOAT)
51
+ ], DietMealRecipe.prototype, "scaledFats", void 0);
52
+ _ts_decorate([
53
+ Default(false),
54
+ Index,
55
+ Column(DataType.BOOLEAN)
56
+ ], DietMealRecipe.prototype, "locked", void 0);
57
+ _ts_decorate([
58
+ HasMany(()=>DietMealRecipeIngredient, {
59
+ foreignKey: "dietMealRecipeUuid",
60
+ onDelete: "CASCADE"
61
+ })
62
+ ], DietMealRecipe.prototype, "ingredients", void 0);
63
+ DietMealRecipe = _ts_decorate([
64
+ Table
65
+ ], DietMealRecipe);
66
+
67
+ //# sourceMappingURL=DietMealRecipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/diet/DietMealRecipe.ts"],"sourcesContent":["import {\n Table,\n Model,\n Column,\n DataType,\n Default,\n PrimaryKey,\n ForeignKey,\n BelongsTo,\n HasMany,\n Index,\n} from \"sequelize-typescript\";\nimport type { Optional } from \"sequelize\";\nimport { DietMeal } from \"./DietMeal.js\";\nimport { Recipe } from \"./Recipe.js\";\nimport { DietMealRecipeIngredient } from \"./DietMealRecipeIngredient.js\";\n\nexport interface DietMealRecipeAttributes {\n uuid: string;\n dietMealUuid: string;\n recipeUuid: string;\n scalingFactor: number;\n scaledCalories: number;\n scaledProtein: number;\n scaledCarbs: number;\n scaledFats: number;\n locked: boolean;\n createdAt?: Date;\n updatedAt?: Date;\n}\n\nexport interface DietMealRecipeCreationAttributes extends Optional<DietMealRecipeAttributes, \"uuid\" | \"createdAt\" | \"updatedAt\"> {\n}\n\n/**\n * DietMealRecipe\n *\n * Links a recipe to a meal in a diet program, with scaling information.\n * This is the \"instance\" of a recipe in a diet plan.\n *\n * OLD APPROACH (deprecated):\n * - recipeJson: JSONB with full recipe data\n *\n * NEW APPROACH:\n * - recipeUuid: FK to Recipe table\n * - scalingFactor: How much the recipe was scaled (1.0 = no scaling, 1.5 = 150%)\n * - scaled macros: Pre-computed macro values after scaling\n * - ingredients: Related DietMealRecipeIngredient rows with scaled amounts\n */\n@Table\nexport class DietMealRecipe extends Model<DietMealRecipeAttributes, DietMealRecipeCreationAttributes> {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @Index\n @ForeignKey(() => DietMeal)\n @Column(DataType.UUID)\n declare dietMealUuid: string;\n\n @BelongsTo(() => DietMeal, { onDelete: \"CASCADE\" })\n declare meal: DietMeal;\n\n // NEW: Reference to the actual Recipe\n @Index\n @ForeignKey(() => Recipe)\n @Column(DataType.UUID)\n declare recipeUuid: string;\n\n @BelongsTo(() => Recipe)\n declare recipe: Recipe;\n\n // NEW: Scaling information\n @Default(1.0)\n @Column(DataType.FLOAT)\n declare scalingFactor: number;\n\n // NEW: Pre-computed scaled macros\n @Column(DataType.INTEGER)\n declare scaledCalories: number;\n\n @Column(DataType.FLOAT)\n declare scaledProtein: number;\n\n @Column(DataType.FLOAT)\n declare scaledCarbs: number;\n\n @Column(DataType.FLOAT)\n declare scaledFats: number;\n\n // Recipe locking: When true, this recipe will be preserved during diet program regeneration\n @Default(false)\n @Index\n @Column(DataType.BOOLEAN)\n declare locked: boolean;\n\n // NEW: Scaled ingredients\n @HasMany(() => DietMealRecipeIngredient, {\n foreignKey: \"dietMealRecipeUuid\",\n onDelete: \"CASCADE\",\n })\n declare ingredients: DietMealRecipeIngredient[];\n}\n"],"names":["Table","Model","Column","DataType","Default","PrimaryKey","ForeignKey","BelongsTo","HasMany","Index","DietMeal","Recipe","DietMealRecipeIngredient","DietMealRecipe","UUIDV4","UUID","onDelete","FLOAT","INTEGER","BOOLEAN","foreignKey"],"mappings":";;;;;;AAAA,SACEA,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,KAAK,QACA,uBAAuB;AAE9B,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,MAAM,QAAQ,cAAc;AACrC,SAASC,wBAAwB,QAAQ,gCAAgC;AAmCzE,OAAO,MAAMC,uBAAuBZ;AAqDpC;;;qBAnDoBa;oBACDC;;;;mBAICL;oBACDK;;;kBAGAL;QAAYM,UAAU;;;;;mBAKrBL;oBACDI;;;kBAGAJ;;;;oBAKAM;;;oBAIAC;;;oBAGAD;;;oBAGAA;;;oBAGAA;;;;;oBAMAE;;;gBAIFP;QACbQ,YAAY;QACZJ,UAAU"}
@@ -0,0 +1,46 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { BelongsTo, Column, DataType, Default, ForeignKey, Index, Model, PrimaryKey, Table } from "sequelize-typescript";
8
+ import { DietMealRecipe } from "./DietMealRecipe.js";
9
+ import { Ingredient } from "./Ingredient.js";
10
+ export class DietMealRecipeIngredient extends Model {
11
+ }
12
+ _ts_decorate([
13
+ PrimaryKey,
14
+ Default(DataType.UUIDV4),
15
+ Column(DataType.UUID)
16
+ ], DietMealRecipeIngredient.prototype, "uuid", void 0);
17
+ _ts_decorate([
18
+ Index,
19
+ ForeignKey(()=>DietMealRecipe),
20
+ Column(DataType.UUID)
21
+ ], DietMealRecipeIngredient.prototype, "dietMealRecipeUuid", void 0);
22
+ _ts_decorate([
23
+ BelongsTo(()=>DietMealRecipe)
24
+ ], DietMealRecipeIngredient.prototype, "dietMealRecipe", void 0);
25
+ _ts_decorate([
26
+ Index,
27
+ ForeignKey(()=>Ingredient),
28
+ Column(DataType.UUID)
29
+ ], DietMealRecipeIngredient.prototype, "ingredientUuid", void 0);
30
+ _ts_decorate([
31
+ BelongsTo(()=>Ingredient)
32
+ ], DietMealRecipeIngredient.prototype, "ingredient", void 0);
33
+ _ts_decorate([
34
+ Column(DataType.FLOAT)
35
+ ], DietMealRecipeIngredient.prototype, "grams", void 0);
36
+ _ts_decorate([
37
+ Column(DataType.FLOAT)
38
+ ], DietMealRecipeIngredient.prototype, "displayAmount", void 0);
39
+ _ts_decorate([
40
+ Column(DataType.STRING)
41
+ ], DietMealRecipeIngredient.prototype, "displayUnit", void 0);
42
+ DietMealRecipeIngredient = _ts_decorate([
43
+ Table
44
+ ], DietMealRecipeIngredient);
45
+
46
+ //# sourceMappingURL=DietMealRecipeIngredient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/diet/DietMealRecipeIngredient.ts"],"sourcesContent":["import {\n BelongsTo,\n Column,\n DataType,\n Default,\n ForeignKey,\n Index,\n Model,\n PrimaryKey,\n Table,\n} from \"sequelize-typescript\";\nimport type { Optional } from \"sequelize\";\nimport { DietMealRecipe } from \"./DietMealRecipe.js\";\nimport { Ingredient } from \"./Ingredient.js\";\n\nexport interface DietMealRecipeIngredientAttributes {\n uuid: string;\n dietMealRecipeUuid: string;\n ingredientUuid: string;\n grams: number;\n displayAmount: number;\n displayUnit: string;\n createdAt?: Date;\n updatedAt?: Date;\n}\n\nexport interface DietMealRecipeIngredientCreationAttributes extends Optional<DietMealRecipeIngredientAttributes, \"uuid\" | \"createdAt\" | \"updatedAt\" | \"displayAmount\" | \"displayUnit\"> {\n}\n\n@Table\nexport class DietMealRecipeIngredient extends Model<DietMealRecipeIngredientAttributes, DietMealRecipeIngredientCreationAttributes> {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @Index\n @ForeignKey(() => DietMealRecipe)\n @Column(DataType.UUID)\n declare dietMealRecipeUuid: string;\n\n @BelongsTo(() => DietMealRecipe)\n declare dietMealRecipe: DietMealRecipe;\n\n @Index\n @ForeignKey(() => Ingredient)\n @Column(DataType.UUID)\n declare ingredientUuid: string;\n\n @BelongsTo(() => Ingredient)\n declare ingredient: Ingredient;\n\n @Column(DataType.FLOAT)\n declare grams: number;\n\n // Display fields for user-friendly units\n @Column(DataType.FLOAT)\n declare displayAmount: number; // e.g., 2 (for \"2 eggs\")\n\n @Column(DataType.STRING)\n declare displayUnit: string; // e.g., \"large eggs\", \"g\", \"tbsp\"\n}\n"],"names":["BelongsTo","Column","DataType","Default","ForeignKey","Index","Model","PrimaryKey","Table","DietMealRecipe","Ingredient","DietMealRecipeIngredient","UUIDV4","UUID","FLOAT","STRING"],"mappings":";;;;;;AAAA,SACEA,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,KAAK,EACLC,UAAU,EACVC,KAAK,QACA,uBAAuB;AAE9B,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,UAAU,QAAQ,kBAAkB;AAiB7C,OAAO,MAAMC,iCAAiCL;AA+B9C;;;qBA7BoBM;oBACDC;;;;mBAICJ;oBACDI;;;kBAGAJ;;;;mBAICC;oBACDG;;;kBAGAH;;;oBAGAI;;;oBAIAA;;;oBAGAC"}