90dc-core 1.19.2 → 1.19.3

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.
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from "uuid";
3
3
  import { ExternalAPIError } from "../Errors/AppError.js";
4
4
  import { Log } from "../utils/Logger.js";
5
5
  import { validateBase64Image } from "../utils/imageValidation.js";
6
- import { UserProgressPhoto } from "../dbmodels/UserProgressPhoto.js";
6
+ import { UserProgressPhoto } from "../dbmodels/user/UserProgressPhoto.js";
7
7
  const PROGRESS_DAYS = [
8
8
  1,
9
9
  30,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/clients/ImagesClient.ts"],"sourcesContent":["import admin from \"firebase-admin\";\nimport { Bucket } from \"@google-cloud/storage\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { ExternalAPIError } from \"../Errors/AppError.js\";\nimport { Log } from \"../utils/Logger.js\";\nimport { validateBase64Image } from \"../utils/imageValidation.js\";\nimport { UserProgressPhoto } from \"../dbmodels/UserProgressPhoto.js\";\nimport type * as t from \"./types/images.types.js\";\n\nconst PROGRESS_DAYS = [1, 30, 60, 90];\n\ntype RecipePhotoType = \"ingredients\" | \"cover\" | \"method\";\nconst RECIPE_PHOTO_TYPES: RecipePhotoType[] = [\"ingredients\", \"cover\", \"method\"];\n\nconst imageName = {\n avatar: (userUuid: string) => `${userUuid}--avatar.png`,\n progress: (userUuid: string, day: number, programId: string) => `${userUuid}--${day}day--${programId}.png`,\n recipe: (recipeUuid: string, type: RecipePhotoType) => `${recipeUuid}--${type}.png`,\n};\n\nexport class ImagesClient {\n private bucket: Bucket;\n private logger = Log.getInstance().extend(\"images-client\");\n private app: admin.app.App;\n\n constructor(config: t.Config) {\n if (config.firebaseApp) {\n // Use provided Firebase app\n this.app = config.firebaseApp;\n } else {\n // Initialize Firebase if needed (following FirebasePushNotificationClient pattern)\n this.initializeApp(config.storageBucket);\n this.app = admin.app();\n }\n\n this.bucket = this.app.storage().bucket(config.storageBucket);\n }\n\n private initializeApp(storageBucket: string): void {\n try {\n // Check if app already exists\n if (admin.apps?.length && admin.apps.length > 0) {\n this.logger.info(\"Using existing Firebase app\");\n return;\n }\n\n // Try to load service account from environment (for local development)\n const serviceAccountPath = process.env.FIREBASE_SERVICE_ACCOUNT_KEY;\n\n if (serviceAccountPath) {\n // Local development with service account file\n const fs = require(\"fs\");\n const serviceAccount = JSON.parse(fs.readFileSync(serviceAccountPath, \"utf-8\"));\n\n admin.initializeApp({\n credential: admin.credential.cert(serviceAccount),\n storageBucket,\n });\n\n this.logger.info(\"Firebase initialized with service account file\", {\n projectId: serviceAccount.project_id,\n storageBucket,\n });\n } else {\n // Production: use application default credentials\n admin.initializeApp({\n credential: admin.credential.applicationDefault(),\n storageBucket,\n });\n\n this.logger.info(\"Firebase initialized with application default credentials\", {\n storageBucket,\n });\n }\n } catch (error) {\n this.logger.error(\"Failed to initialize Firebase Admin SDK\", { error });\n throw new ExternalAPIError(\n \"Failed to initialize Firebase\",\n `Error: ${String(error)}`\n );\n }\n }\n\n public async saveImage(base64: string, name: string): Promise<void> {\n try {\n this.logger.info(\"Saving image\", { name });\n\n const buffer = this.base64ToBuffer(base64);\n const file = this.bucket.file(name);\n await file.save(buffer, { contentType: \"image/png\" });\n\n this.logger.info(\"Image saved successfully\", { name });\n } catch (error) {\n this.handleError(error, \"saveImage\");\n }\n }\n\n public async getImage(name: string): Promise<string | undefined> {\n try {\n this.logger.info(\"Getting image\", { name });\n\n const file = this.bucket.file(name);\n const [exists] = await file.exists();\n if (!exists) {\n return undefined;\n }\n\n const [contents] = await file.download();\n return \"data:image/jpeg;base64,\" + contents.toString(\"base64\");\n } catch (error) {\n this.logger.error(`Failed to get image: ${name}`, { error });\n return undefined;\n }\n }\n\n public async saveAvatar(userUuid: string, base64: string): Promise<void> {\n await this.saveImage(base64, imageName.avatar(userUuid));\n }\n\n public async getAvatar(userUuid: string): Promise<string | undefined> {\n return this.getImage(imageName.avatar(userUuid));\n }\n\n public async saveProgressPhoto(userUuid: string, day: number, programId: string, base64: string): Promise<void> {\n await this.saveImage(base64, imageName.progress(userUuid, day, programId));\n }\n\n public async getProgressPhotos(userUuid: string, programId: string): Promise<t.ProgressPhoto[]> {\n const photos: t.ProgressPhoto[] = [];\n\n for (const day of PROGRESS_DAYS) {\n const base64 = await this.getImage(imageName.progress(userUuid, day, programId));\n if (base64) {\n photos.push({ day, base64 });\n }\n }\n\n return photos;\n }\n\n public async saveRecipePhotos(input: t.SaveRecipePhotosInput): Promise<void> {\n await Promise.all([\n this.saveImage(input.ingredientBase64, imageName.recipe(input.recipeUuid, \"ingredients\")),\n this.saveImage(input.coverBase64, imageName.recipe(input.recipeUuid, \"cover\")),\n this.saveImage(input.methodBase64, imageName.recipe(input.recipeUuid, \"method\")),\n ]);\n }\n\n public async getRecipePhotos(recipeUuid: string): Promise<t.RecipePhotos | undefined> {\n const results = await Promise.all(\n RECIPE_PHOTO_TYPES.map((type) => this.getImage(imageName.recipe(recipeUuid, type)))\n );\n\n if (results.every((r) => !r)) {\n return undefined;\n }\n\n // BUG: cover/method swapped — preserved from original ImageController.ts to keep backward compat with frontend\n return {\n ingredientBase64: results[0] ?? \"\",\n methodBase64: results[1] ?? \"\",\n coverBase64: results[2] ?? \"\",\n };\n }\n\n public async saveUserProgressPhoto(\n input: t.UserProgressPhotoInput\n ): Promise<t.UserProgressPhotoRecord> {\n // Validate image\n validateBase64Image(input.base64);\n\n // Generate UUID for the photo\n const uuid = uuidv4();\n\n // Prepare Firebase path\n const firebasePath = `progress-pictures/${input.userUuid}/${uuid}.png`;\n\n // Upload to Firebase Storage\n const base64Data = input.base64.replace(/^data:image\\/\\w+;base64,/, \"\");\n const buffer = Buffer.from(base64Data, \"base64\");\n\n const file = this.bucket.file(firebasePath);\n await file.save(buffer, {\n metadata: {\n contentType: \"image/png\",\n },\n });\n\n // Save metadata to database\n const photoDate = input.photoDate || new Date();\n const record = await UserProgressPhoto.create({\n uuid,\n userUuid: input.userUuid,\n firebasePath,\n photoDate,\n programId: input.programId || null,\n });\n\n return record.toJSON() as t.UserProgressPhotoRecord;\n }\n\n async getUserProgressPhotos(\n userUuid: string\n ): Promise<t.UserProgressPhotoRecord[]> {\n const records = await UserProgressPhoto.findAll({\n where: { userUuid },\n order: [[\"photoDate\", \"DESC\"]],\n raw: true,\n });\n\n return records as t.UserProgressPhotoRecord[];\n }\n\n async getProgressPhotosByProgram(\n programId: string\n ): Promise<t.UserProgressPhotoRecord[]> {\n const records = await UserProgressPhoto.findAll({\n where: { programId },\n order: [[\"photoDate\", \"DESC\"]],\n raw: true,\n });\n\n return records as t.UserProgressPhotoRecord[];\n }\n\n async updateProgressPhotoDate(\n input: t.UpdateProgressPhotoDateInput\n ): Promise<t.UserProgressPhotoRecord | null> {\n const [affectedRows] = await UserProgressPhoto.update(\n { photoDate: input.photoDate },\n {\n where: {\n uuid: input.uuid,\n userUuid: input.userUuid, // Ensure user owns the photo\n },\n }\n );\n\n if (affectedRows === 0) {\n return null; // Photo not found or user doesn't own it\n }\n\n const updated = await UserProgressPhoto.findOne({\n where: { uuid: input.uuid },\n raw: true,\n });\n\n return updated as t.UserProgressPhotoRecord;\n }\n\n async deleteProgressPhoto(\n uuid: string,\n userUuid: string\n ): Promise<boolean> {\n // Find the photo to get the firebasePath\n const photo = await UserProgressPhoto.findOne({\n where: { uuid, userUuid },\n raw: true,\n });\n\n if (!photo) {\n return false; // Photo not found or user doesn't own it\n }\n\n // Delete from Firebase Storage\n const file = this.bucket.file(photo.firebasePath);\n try {\n await file.delete();\n } catch (error) {\n // If file doesn't exist in storage, continue with database deletion\n console.warn(`Failed to delete file from storage: ${photo.firebasePath}`, error);\n }\n\n // Delete from database\n await UserProgressPhoto.destroy({\n where: { uuid, userUuid },\n });\n\n return true;\n }\n\n private base64ToBuffer(base64: string): Buffer {\n const data = base64.includes(\",\") ? base64.split(\",\")[1]! : base64;\n return Buffer.from(data, \"base64\");\n }\n\n private handleError(error: unknown, method: string): never {\n this.logger.error(`Firebase Storage error in ${method}`, { error });\n throw new ExternalAPIError(\n `Firebase Storage error: ${error instanceof Error ? error.message : String(error)}`,\n `Service: Firebase Storage, Method: ${method}`\n );\n }\n}\n"],"names":["admin","v4","uuidv4","ExternalAPIError","Log","validateBase64Image","UserProgressPhoto","PROGRESS_DAYS","RECIPE_PHOTO_TYPES","imageName","avatar","userUuid","progress","day","programId","recipe","recipeUuid","type","ImagesClient","bucket","logger","getInstance","extend","app","config","firebaseApp","initializeApp","storageBucket","storage","apps","length","info","serviceAccountPath","process","env","FIREBASE_SERVICE_ACCOUNT_KEY","fs","require","serviceAccount","JSON","parse","readFileSync","credential","cert","projectId","project_id","applicationDefault","error","String","saveImage","base64","name","buffer","base64ToBuffer","file","save","contentType","handleError","getImage","exists","undefined","contents","download","toString","saveAvatar","getAvatar","saveProgressPhoto","getProgressPhotos","photos","push","saveRecipePhotos","input","Promise","all","ingredientBase64","coverBase64","methodBase64","getRecipePhotos","results","map","every","r","saveUserProgressPhoto","uuid","firebasePath","base64Data","replace","Buffer","from","metadata","photoDate","Date","record","create","toJSON","getUserProgressPhotos","records","findAll","where","order","raw","getProgressPhotosByProgram","updateProgressPhotoDate","affectedRows","update","updated","findOne","deleteProgressPhoto","photo","delete","console","warn","destroy","data","includes","split","method","Error","message"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/clients/ImagesClient.ts"],"sourcesContent":["import admin from \"firebase-admin\";\nimport { Bucket } from \"@google-cloud/storage\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { ExternalAPIError } from \"../Errors/AppError.js\";\nimport { Log } from \"../utils/Logger.js\";\nimport { validateBase64Image } from \"../utils/imageValidation.js\";\nimport { UserProgressPhoto } from \"../dbmodels/user/UserProgressPhoto.js\";\nimport type * as t from \"./types/images.types.js\";\n\nconst PROGRESS_DAYS = [1, 30, 60, 90];\n\ntype RecipePhotoType = \"ingredients\" | \"cover\" | \"method\";\nconst RECIPE_PHOTO_TYPES: RecipePhotoType[] = [\"ingredients\", \"cover\", \"method\"];\n\nconst imageName = {\n avatar: (userUuid: string) => `${userUuid}--avatar.png`,\n progress: (userUuid: string, day: number, programId: string) => `${userUuid}--${day}day--${programId}.png`,\n recipe: (recipeUuid: string, type: RecipePhotoType) => `${recipeUuid}--${type}.png`,\n};\n\nexport class ImagesClient {\n private bucket: Bucket;\n private logger = Log.getInstance().extend(\"images-client\");\n private app: admin.app.App;\n\n constructor(config: t.Config) {\n if (config.firebaseApp) {\n // Use provided Firebase app\n this.app = config.firebaseApp;\n } else {\n // Initialize Firebase if needed (following FirebasePushNotificationClient pattern)\n this.initializeApp(config.storageBucket);\n this.app = admin.app();\n }\n\n this.bucket = this.app.storage().bucket(config.storageBucket);\n }\n\n private initializeApp(storageBucket: string): void {\n try {\n // Check if app already exists\n if (admin.apps?.length && admin.apps.length > 0) {\n this.logger.info(\"Using existing Firebase app\");\n return;\n }\n\n // Try to load service account from environment (for local development)\n const serviceAccountPath = process.env.FIREBASE_SERVICE_ACCOUNT_KEY;\n\n if (serviceAccountPath) {\n // Local development with service account file\n const fs = require(\"fs\");\n const serviceAccount = JSON.parse(fs.readFileSync(serviceAccountPath, \"utf-8\"));\n\n admin.initializeApp({\n credential: admin.credential.cert(serviceAccount),\n storageBucket,\n });\n\n this.logger.info(\"Firebase initialized with service account file\", {\n projectId: serviceAccount.project_id,\n storageBucket,\n });\n } else {\n // Production: use application default credentials\n admin.initializeApp({\n credential: admin.credential.applicationDefault(),\n storageBucket,\n });\n\n this.logger.info(\"Firebase initialized with application default credentials\", {\n storageBucket,\n });\n }\n } catch (error) {\n this.logger.error(\"Failed to initialize Firebase Admin SDK\", { error });\n throw new ExternalAPIError(\n \"Failed to initialize Firebase\",\n `Error: ${String(error)}`\n );\n }\n }\n\n public async saveImage(base64: string, name: string): Promise<void> {\n try {\n this.logger.info(\"Saving image\", { name });\n\n const buffer = this.base64ToBuffer(base64);\n const file = this.bucket.file(name);\n await file.save(buffer, { contentType: \"image/png\" });\n\n this.logger.info(\"Image saved successfully\", { name });\n } catch (error) {\n this.handleError(error, \"saveImage\");\n }\n }\n\n public async getImage(name: string): Promise<string | undefined> {\n try {\n this.logger.info(\"Getting image\", { name });\n\n const file = this.bucket.file(name);\n const [exists] = await file.exists();\n if (!exists) {\n return undefined;\n }\n\n const [contents] = await file.download();\n return \"data:image/jpeg;base64,\" + contents.toString(\"base64\");\n } catch (error) {\n this.logger.error(`Failed to get image: ${name}`, { error });\n return undefined;\n }\n }\n\n public async saveAvatar(userUuid: string, base64: string): Promise<void> {\n await this.saveImage(base64, imageName.avatar(userUuid));\n }\n\n public async getAvatar(userUuid: string): Promise<string | undefined> {\n return this.getImage(imageName.avatar(userUuid));\n }\n\n public async saveProgressPhoto(userUuid: string, day: number, programId: string, base64: string): Promise<void> {\n await this.saveImage(base64, imageName.progress(userUuid, day, programId));\n }\n\n public async getProgressPhotos(userUuid: string, programId: string): Promise<t.ProgressPhoto[]> {\n const photos: t.ProgressPhoto[] = [];\n\n for (const day of PROGRESS_DAYS) {\n const base64 = await this.getImage(imageName.progress(userUuid, day, programId));\n if (base64) {\n photos.push({ day, base64 });\n }\n }\n\n return photos;\n }\n\n public async saveRecipePhotos(input: t.SaveRecipePhotosInput): Promise<void> {\n await Promise.all([\n this.saveImage(input.ingredientBase64, imageName.recipe(input.recipeUuid, \"ingredients\")),\n this.saveImage(input.coverBase64, imageName.recipe(input.recipeUuid, \"cover\")),\n this.saveImage(input.methodBase64, imageName.recipe(input.recipeUuid, \"method\")),\n ]);\n }\n\n public async getRecipePhotos(recipeUuid: string): Promise<t.RecipePhotos | undefined> {\n const results = await Promise.all(\n RECIPE_PHOTO_TYPES.map((type) => this.getImage(imageName.recipe(recipeUuid, type)))\n );\n\n if (results.every((r) => !r)) {\n return undefined;\n }\n\n // BUG: cover/method swapped — preserved from original ImageController.ts to keep backward compat with frontend\n return {\n ingredientBase64: results[0] ?? \"\",\n methodBase64: results[1] ?? \"\",\n coverBase64: results[2] ?? \"\",\n };\n }\n\n public async saveUserProgressPhoto(\n input: t.UserProgressPhotoInput\n ): Promise<t.UserProgressPhotoRecord> {\n // Validate image\n validateBase64Image(input.base64);\n\n // Generate UUID for the photo\n const uuid = uuidv4();\n\n // Prepare Firebase path\n const firebasePath = `progress-pictures/${input.userUuid}/${uuid}.png`;\n\n // Upload to Firebase Storage\n const base64Data = input.base64.replace(/^data:image\\/\\w+;base64,/, \"\");\n const buffer = Buffer.from(base64Data, \"base64\");\n\n const file = this.bucket.file(firebasePath);\n await file.save(buffer, {\n metadata: {\n contentType: \"image/png\",\n },\n });\n\n // Save metadata to database\n const photoDate = input.photoDate || new Date();\n const record = await UserProgressPhoto.create({\n uuid,\n userUuid: input.userUuid,\n firebasePath,\n photoDate,\n programId: input.programId || null,\n });\n\n return record.toJSON() as t.UserProgressPhotoRecord;\n }\n\n async getUserProgressPhotos(\n userUuid: string\n ): Promise<t.UserProgressPhotoRecord[]> {\n const records = await UserProgressPhoto.findAll({\n where: { userUuid },\n order: [[\"photoDate\", \"DESC\"]],\n raw: true,\n });\n\n return records as t.UserProgressPhotoRecord[];\n }\n\n async getProgressPhotosByProgram(\n programId: string\n ): Promise<t.UserProgressPhotoRecord[]> {\n const records = await UserProgressPhoto.findAll({\n where: { programId },\n order: [[\"photoDate\", \"DESC\"]],\n raw: true,\n });\n\n return records as t.UserProgressPhotoRecord[];\n }\n\n async updateProgressPhotoDate(\n input: t.UpdateProgressPhotoDateInput\n ): Promise<t.UserProgressPhotoRecord | null> {\n const [affectedRows] = await UserProgressPhoto.update(\n { photoDate: input.photoDate },\n {\n where: {\n uuid: input.uuid,\n userUuid: input.userUuid, // Ensure user owns the photo\n },\n }\n );\n\n if (affectedRows === 0) {\n return null; // Photo not found or user doesn't own it\n }\n\n const updated = await UserProgressPhoto.findOne({\n where: { uuid: input.uuid },\n raw: true,\n });\n\n return updated as t.UserProgressPhotoRecord;\n }\n\n async deleteProgressPhoto(\n uuid: string,\n userUuid: string\n ): Promise<boolean> {\n // Find the photo to get the firebasePath\n const photo = await UserProgressPhoto.findOne({\n where: { uuid, userUuid },\n raw: true,\n });\n\n if (!photo) {\n return false; // Photo not found or user doesn't own it\n }\n\n // Delete from Firebase Storage\n const file = this.bucket.file(photo.firebasePath);\n try {\n await file.delete();\n } catch (error) {\n // If file doesn't exist in storage, continue with database deletion\n console.warn(`Failed to delete file from storage: ${photo.firebasePath}`, error);\n }\n\n // Delete from database\n await UserProgressPhoto.destroy({\n where: { uuid, userUuid },\n });\n\n return true;\n }\n\n private base64ToBuffer(base64: string): Buffer {\n const data = base64.includes(\",\") ? base64.split(\",\")[1]! : base64;\n return Buffer.from(data, \"base64\");\n }\n\n private handleError(error: unknown, method: string): never {\n this.logger.error(`Firebase Storage error in ${method}`, { error });\n throw new ExternalAPIError(\n `Firebase Storage error: ${error instanceof Error ? error.message : String(error)}`,\n `Service: Firebase Storage, Method: ${method}`\n );\n }\n}\n"],"names":["admin","v4","uuidv4","ExternalAPIError","Log","validateBase64Image","UserProgressPhoto","PROGRESS_DAYS","RECIPE_PHOTO_TYPES","imageName","avatar","userUuid","progress","day","programId","recipe","recipeUuid","type","ImagesClient","bucket","logger","getInstance","extend","app","config","firebaseApp","initializeApp","storageBucket","storage","apps","length","info","serviceAccountPath","process","env","FIREBASE_SERVICE_ACCOUNT_KEY","fs","require","serviceAccount","JSON","parse","readFileSync","credential","cert","projectId","project_id","applicationDefault","error","String","saveImage","base64","name","buffer","base64ToBuffer","file","save","contentType","handleError","getImage","exists","undefined","contents","download","toString","saveAvatar","getAvatar","saveProgressPhoto","getProgressPhotos","photos","push","saveRecipePhotos","input","Promise","all","ingredientBase64","coverBase64","methodBase64","getRecipePhotos","results","map","every","r","saveUserProgressPhoto","uuid","firebasePath","base64Data","replace","Buffer","from","metadata","photoDate","Date","record","create","toJSON","getUserProgressPhotos","records","findAll","where","order","raw","getProgressPhotosByProgram","updateProgressPhotoDate","affectedRows","update","updated","findOne","deleteProgressPhoto","photo","delete","console","warn","destroy","data","includes","split","method","Error","message"],"mappings":"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"}
@@ -7,6 +7,7 @@ export { UserDiscount } from "./user/UserDiscount.js";
7
7
  export { UserOptions } from "./user/UserOptions.js";
8
8
  export { UserAddons } from "./user/UserAddons.js";
9
9
  export { DeviceTokens } from "./user/DeviceTokens.js";
10
+ export { UserProgressPhoto } from "./user/UserProgressPhoto.js";
10
11
  export { Subscription } from "./subscription/Subscription.js";
11
12
  export { SubscriptionLog } from "./subscription/SubscriptionLog.js";
12
13
  export { SubscriptionEvent } from "./subscription/SubscriptionEvent.js";
@@ -162,7 +163,7 @@ import { UserRankHistory } from "./gamification/xpAndLeaderboards/UserRankHistor
162
163
  import { NotificationModels } from "./notifications/NotificationModels.js";
163
164
  import { TranslatedNotification } from "./notifications/TranslatedNotification.js";
164
165
  import { SubscriptionRefund } from "./subscription/SubscriptionRefund.js";
165
- import { UserProgressPhoto } from "./UserProgressPhoto.js";
166
+ import { UserProgressPhoto } from "./user/UserProgressPhoto.js";
166
167
  export declare const USER_MODELS: (typeof PersistedUser | typeof UserBadges | typeof UserStreak | typeof UsersFriends | typeof UserCoach | typeof UserDiscount | typeof UserOptions | typeof UserAddons | typeof DeviceTokens | typeof UserProgressPhoto)[];
167
168
  export declare const SUBSCRIPTION_MODELS: (typeof SubscriptionLog | typeof Subscription | typeof SubscriptionRefund)[];
168
169
  export declare const PROGRAM_MODELS: (typeof TranslatedChallenge | typeof Challenge | typeof ProgressEntry | typeof Exercise | typeof UserChallenge | typeof TranslatedStrengthTestExercise | typeof StrengthTestExercise | typeof UserStrengthTests | typeof TranslatedExerciseModel | typeof ExercisesModels | typeof Workout | typeof Superset | typeof Program | typeof TranslatedStrengthTest | typeof StrengthTest | typeof ChallengeBlueprint | typeof CustomProgramBlueprint | typeof CustomStrengthTestExercise | typeof CustomWorkoutBlueprint | typeof RestDay | typeof WorkoutSession | typeof ThirtyDayChallenge | typeof ThirtyDayChallengeStrengthTest | typeof StrengthTestSession | typeof WorkoutCompletion | typeof CircularProgramDraft | typeof CoachExerciseNote | typeof UserExerciseNote)[];
@@ -171,5 +172,5 @@ export declare const DIET_MODELS: (typeof RecipeTags | typeof Recipe | typeof Re
171
172
  export declare const COACHING_MODELS: (typeof WeeklyCheckin | typeof WeightRecord | typeof Question | typeof Questionnaire | typeof Answer | typeof QuestionnaireResponse | typeof ClientTag | typeof ClientNote)[];
172
173
  export declare const GAMIFICATION_MODELS: (typeof TranslatedBadge | typeof Badge | typeof StreaksLog | typeof XpEvent | typeof XpTransaction | typeof UserRankHistory)[];
173
174
  export declare const NOTIFICATION_MODELS: (typeof TranslatedNotification | typeof NotificationModels)[];
174
- export declare const ALL_CORE_MODELS: (typeof TranslatedChallenge | typeof Challenge | typeof ProgressEntry | typeof Exercise | typeof UserChallenge | typeof TranslatedStrengthTestExercise | typeof StrengthTestExercise | typeof UserStrengthTests | typeof TranslatedExerciseModel | typeof ExercisesModels | typeof Workout | typeof Superset | typeof Program | typeof TranslatedConsumableProgram | typeof NonConsumableProgram | typeof SubscriptionLog | typeof Subscription | typeof PersistedUser | typeof UserPrograms | typeof TranslatedNonConsumableProgramWebContent | typeof NonConsumableProgramWebContent | typeof TranslatedStrengthTest | typeof StrengthTest | typeof TranslatedBadge | typeof Badge | typeof UserBadges | typeof UserStreak | typeof UsersFriends | typeof UserCoach | typeof UserDiscount | typeof UserOptions | typeof UserAddons | typeof DeviceTokens | typeof SubscriptionRefund | typeof ChallengeBlueprint | typeof CustomProgramBlueprint | typeof CustomStrengthTestExercise | typeof CustomWorkoutBlueprint | typeof RestDay | typeof WorkoutSession | typeof ThirtyDayChallenge | typeof ThirtyDayChallengeStrengthTest | typeof StrengthTestSession | typeof WorkoutCompletion | typeof CircularProgramDraft | typeof CoachExerciseNote | typeof UserExerciseNote | typeof RecipeTags | typeof Recipe | typeof RecipeTag | typeof TranslatedRecipeTag | typeof TranslatedRecipeTags | typeof TranslatedRecipe | typeof IngredientTags | typeof Ingredient | typeof IngredientTag | typeof RecipeIngredient | typeof DietMealRecipeIngredient | typeof DietMealRecipe | typeof DietMeal | typeof DietMealCompletion | typeof DietDay | typeof DietProgram | typeof ShoppingListItem | typeof ShoppingList | typeof UserDietPreferences | typeof WeeklyCheckin | typeof WeightRecord | typeof Question | typeof Questionnaire | typeof Answer | typeof QuestionnaireResponse | typeof ClientTag | typeof ClientNote | typeof StreaksLog | typeof XpEvent | typeof XpTransaction | typeof UserRankHistory | typeof TranslatedNotification | typeof NotificationModels | typeof UserProgressPhoto)[];
175
+ export declare const ALL_CORE_MODELS: (typeof TranslatedChallenge | typeof Challenge | typeof ProgressEntry | typeof Exercise | typeof UserChallenge | typeof TranslatedStrengthTestExercise | typeof StrengthTestExercise | typeof UserStrengthTests | typeof TranslatedExerciseModel | typeof ExercisesModels | typeof Workout | typeof Superset | typeof Program | typeof TranslatedConsumableProgram | typeof NonConsumableProgram | typeof SubscriptionLog | typeof Subscription | typeof PersistedUser | typeof UserPrograms | typeof TranslatedNonConsumableProgramWebContent | typeof NonConsumableProgramWebContent | typeof TranslatedStrengthTest | typeof StrengthTest | typeof TranslatedBadge | typeof Badge | typeof UserBadges | typeof UserStreak | typeof UsersFriends | typeof UserCoach | typeof UserDiscount | typeof UserOptions | typeof UserAddons | typeof DeviceTokens | typeof UserProgressPhoto | typeof SubscriptionRefund | typeof ChallengeBlueprint | typeof CustomProgramBlueprint | typeof CustomStrengthTestExercise | typeof CustomWorkoutBlueprint | typeof RestDay | typeof WorkoutSession | typeof ThirtyDayChallenge | typeof ThirtyDayChallengeStrengthTest | typeof StrengthTestSession | typeof WorkoutCompletion | typeof CircularProgramDraft | typeof CoachExerciseNote | typeof UserExerciseNote | typeof RecipeTags | typeof Recipe | typeof RecipeTag | typeof TranslatedRecipeTag | typeof TranslatedRecipeTags | typeof TranslatedRecipe | typeof IngredientTags | typeof Ingredient | typeof IngredientTag | typeof RecipeIngredient | typeof DietMealRecipeIngredient | typeof DietMealRecipe | typeof DietMeal | typeof DietMealCompletion | typeof DietDay | typeof DietProgram | typeof ShoppingListItem | typeof ShoppingList | typeof UserDietPreferences | typeof WeeklyCheckin | typeof WeightRecord | typeof Question | typeof Questionnaire | typeof Answer | typeof QuestionnaireResponse | typeof ClientTag | typeof ClientNote | typeof StreaksLog | typeof XpEvent | typeof XpTransaction | typeof UserRankHistory | typeof TranslatedNotification | typeof NotificationModels)[];
175
176
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/dbmodels/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/dbmodels/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export { UserDiscount } from "./user/UserDiscount.js";
9
9
  export { UserOptions } from "./user/UserOptions.js";
10
10
  export { UserAddons } from "./user/UserAddons.js";
11
11
  export { DeviceTokens } from "./user/DeviceTokens.js";
12
+ export { UserProgressPhoto } from "./user/UserProgressPhoto.js";
12
13
  // Subscription Models
13
14
  export { Subscription } from "./subscription/Subscription.js";
14
15
  export { SubscriptionLog } from "./subscription/SubscriptionLog.js";
@@ -171,7 +172,7 @@ import { UserRankHistory } from "./gamification/xpAndLeaderboards/UserRankHistor
171
172
  import { NotificationModels } from "./notifications/NotificationModels.js";
172
173
  import { TranslatedNotification } from "./notifications/TranslatedNotification.js";
173
174
  import { SubscriptionRefund } from "./subscription/SubscriptionRefund.js";
174
- import { UserProgressPhoto } from "./UserProgressPhoto.js";
175
+ import { UserProgressPhoto } from "./user/UserProgressPhoto.js";
175
176
  // Model Arrays - grouped by domain
176
177
  export const USER_MODELS = [
177
178
  PersistedUser,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/dbmodels/index.ts"],"sourcesContent":["// User Models\nimport {SubscriptionEvent} from \"./subscription/SubscriptionEvent.js\";\n\nexport { PersistedUser } from \"./user/PersistedUser.js\";\nexport { UserBadges } from \"./user/UserBadges.js\";\nexport { UserStreak } from \"./user/UserStreaks.js\";\nexport { UsersFriends } from \"./user/UsersFriends.js\";\nexport { UserCoach } from \"./user/UserCoach.js\";\nexport { UserDiscount } from \"./user/UserDiscount.js\";\nexport { UserOptions } from \"./user/UserOptions.js\";\nexport { UserAddons } from \"./user/UserAddons.js\";\nexport { DeviceTokens } from \"./user/DeviceTokens.js\";\n\n// Subscription Models\nexport { Subscription } from \"./subscription/Subscription.js\";\nexport { SubscriptionLog } from \"./subscription/SubscriptionLog.js\";\nexport { SubscriptionEvent } from \"./subscription/SubscriptionEvent.js\";\nexport { SubscriptionRefund } from \"./subscription/SubscriptionRefund.js\";\n\n// Program Models\nexport { Program } from \"./program/Program.js\";\nexport { Workout } from \"./program/Workout.js\";\nexport { Exercise } from \"./program/Exercise.js\";\nexport { ExercisesModels } from \"./program/ExerciseModels.js\";\nexport { Superset } from \"./program/Superset.js\";\nexport { ProgressEntry } from \"./program/ProgressEntry.js\";\nexport { RestDay } from \"./program/RestDay.js\";\nexport { WorkoutSession } from \"./program/WorkoutSession.js\";\nexport { Challenge } from \"./program/Challenge.js\";\nexport { ChallengeBlueprint } from \"./program/ChallengeBlueprint.js\";\nexport { UserChallenge } from \"./program/UserChallenge.js\";\nexport { TranslatedChallenge } from \"./program/TranslatedChallenge.js\";\nexport { ThirtyDayChallenge } from \"./program/ThirtyDayChallenge.js\";\nexport { ThirtyDayChallengeStrengthTest } from \"./program/ThirtyDayChallengeStrengthTest.js\";\nexport { StrengthTest } from \"./program/StrengthTest.js\";\nexport { StrengthTestExercise } from \"./program/StrengthTestExercise.js\";\nexport { StrengthTestSession } from \"./program/StrengthTestSession.js\";\nexport { UserStrengthTests } from \"./program/UserStrengthTests.js\";\nexport { TranslatedStrengthTest } from \"./program/TranslatedStrengthTest.js\";\nexport { TranslatedStrengthTestExercise } from \"./program/TranslatedStrengthTestExercise.js\";\nexport { TranslatedExerciseModel } from \"./program/TranslatedExerciseModel.js\";\nexport { CustomProgramBlueprint } from \"./program/CustomProgramBlueprint.js\";\nexport { CustomWorkoutBlueprint } from \"./program/CustomWorkoutBlueprint.js\";\nexport { CustomStrengthTest } from \"./program/CustomStrengthTest.js\";\nexport { CustomStrengthTestExercise } from \"./program/CustomStrengthTestExercises.js\";\nexport { WorkoutCompletion } from \"./program/WorkoutCompletion.js\";\nexport type { ExerciseSnapshot } from \"./program/WorkoutCompletion.js\";\nexport { CircularProgramDraft } from \"./program/CircularProgramDraft.js\";\nexport type {\n CircularProgramDraftData,\n DraftDay,\n DraftWorkout,\n DraftExercise,\n DraftSuperset,\n DraftRestDay,\n DraftStrengthTest,\n DraftChallenge,\n DraftStatus\n} from \"./program/CircularProgramDraft.js\";\nexport { CoachExerciseNote } from \"./program/CoachExerciseNote.js\";\nexport { UserExerciseNote } from \"./program/UserExerciseNote.js\";\n\n// Non-Consumable Program Models\nexport { NonConsumableProgram } from \"./nonconsprogram/NonConsumableProgram.js\";\nexport { NonConsumableProgramWebContent } from \"./nonconsprogram/NonConsumableProgramWebContent.js\";\nexport { UserPrograms } from \"./nonconsprogram/UserNonConsumableProgram.js\";\nexport { TranslatedConsumableProgram } from \"./nonconsprogram/TranslatedConsumableProgram.js\";\nexport { TranslatedNonConsumableProgramWebContent } from \"./nonconsprogram/TranslatedNonConsumableProgramWebContent.js\";\n\n// Diet & Nutrition Models\nexport { DietProgram } from \"./diet/DietProgram.js\";\nexport { DietDay } from \"./diet/DietDay.js\";\nexport { DietMeal } from \"./diet/DietMeal.js\";\nexport { DietMealRecipe } from \"./diet/DietMealRecipe.js\";\nexport { DietMealRecipeIngredient } from \"./diet/DietMealRecipeIngredient.js\";\nexport { DietMealCompletion } from \"./diet/DietMealCompletion.js\";\nexport { Recipe, type RecipeAttributes, type RecipeCreationAttributes } from \"./diet/Recipe.js\";\nexport { TranslatedRecipe } from \"./diet/TranslatedRecipe.js\";\nexport { RecipeTag } from \"./diet/RecipeTag.js\";\nexport { TranslatedRecipeTag } from \"./diet/TranslatedRecipeTag.js\";\nexport { RecipeTags } from \"./diet/RecipeTags.js\";\nexport { TranslatedRecipeTags } from \"./diet/TranslatedRecipeTags.js\";\nexport { ShoppingList } from \"./diet/ShoppingList.js\";\nexport { ShoppingListItem } from \"./diet/ShoppingListItem.js\";\nexport { UserDietPreferences } from \"./diet/UserDietPreferences.js\";\nexport { Ingredient } from \"./diet/Ingredient.js\";\nexport { IngredientTag } from \"./diet/IngredientTag.js\";\nexport { IngredientTags } from \"./diet/IngredientTags.js\";\nexport { RecipeIngredient, type RecipeIngredientAttributes, type RecipeIngredientCreationAttributes } from \"./diet/RecipeIngredient.js\";\n\n// Coaching Models\nexport { WeeklyCheckin } from \"./coaching/WeeklyCheckIn.js\";\nexport { WeightRecord } from \"./coaching/WeightRecord.js\";\nexport { Questionnaire, QuestionnaireType } from \"./coaching/Questionnaire.js\";\nexport { Question, QuestionType } from \"./coaching/Question.js\";\nexport { Answer } from \"./coaching/Answer.js\";\nexport { QuestionnaireResponse } from \"./coaching/QuestionnaireResponse.js\";\nexport { ClientTag } from \"./coaching/ClientTag.js\";\nexport { ClientNote, ClientNoteType } from \"./coaching/ClientNote.js\";\n\n// Gamification Models\nexport { Badge } from \"./gamification/Badge.js\";\nexport { TranslatedBadge } from \"./gamification/TranslatedBadge.js\";\nexport { StreaksLog } from \"./gamification/StreaksLog.js\";\nexport { XpEvent } from \"./gamification/xpAndLeaderboards/XpEvent.js\";\nexport { XpTransaction } from \"./gamification/xpAndLeaderboards/XpTransaction.js\";\nexport { UserRankHistory } from \"./gamification/xpAndLeaderboards/UserRankHistory.js\";\n\n// Notification Models\nexport { NotificationModels } from \"./notifications/NotificationModels.js\";\nexport { TranslatedNotification } from \"./notifications/TranslatedNotification.js\";\n\n// Import for model arrays\nimport { PersistedUser } from \"./user/PersistedUser.js\";\nimport { UserBadges } from \"./user/UserBadges.js\";\nimport { UserStreak } from \"./user/UserStreaks.js\";\nimport { UsersFriends } from \"./user/UsersFriends.js\";\nimport { UserCoach } from \"./user/UserCoach.js\";\nimport { UserDiscount } from \"./user/UserDiscount.js\";\nimport { UserOptions } from \"./user/UserOptions.js\";\nimport { UserAddons } from \"./user/UserAddons.js\";\nimport { DeviceTokens } from \"./user/DeviceTokens.js\";\nimport { Subscription } from \"./subscription/Subscription.js\";\nimport { SubscriptionLog } from \"./subscription/SubscriptionLog.js\";\nimport { Program } from \"./program/Program.js\";\nimport { Workout } from \"./program/Workout.js\";\nimport { Exercise } from \"./program/Exercise.js\";\nimport { ExercisesModels } from \"./program/ExerciseModels.js\";\nimport { Superset } from \"./program/Superset.js\";\nimport { ProgressEntry } from \"./program/ProgressEntry.js\";\nimport { RestDay } from \"./program/RestDay.js\";\nimport { WorkoutSession } from \"./program/WorkoutSession.js\";\nimport { Challenge } from \"./program/Challenge.js\";\nimport { ChallengeBlueprint } from \"./program/ChallengeBlueprint.js\";\nimport { UserChallenge } from \"./program/UserChallenge.js\";\nimport { TranslatedChallenge } from \"./program/TranslatedChallenge.js\";\nimport { ThirtyDayChallenge } from \"./program/ThirtyDayChallenge.js\";\nimport { ThirtyDayChallengeStrengthTest } from \"./program/ThirtyDayChallengeStrengthTest.js\";\nimport { StrengthTest } from \"./program/StrengthTest.js\";\nimport { StrengthTestExercise } from \"./program/StrengthTestExercise.js\";\nimport { StrengthTestSession } from \"./program/StrengthTestSession.js\";\nimport { UserStrengthTests } from \"./program/UserStrengthTests.js\";\nimport { TranslatedStrengthTest } from \"./program/TranslatedStrengthTest.js\";\nimport { TranslatedStrengthTestExercise } from \"./program/TranslatedStrengthTestExercise.js\";\nimport { TranslatedExerciseModel } from \"./program/TranslatedExerciseModel.js\";\nimport { CustomProgramBlueprint } from \"./program/CustomProgramBlueprint.js\";\nimport { CustomWorkoutBlueprint } from \"./program/CustomWorkoutBlueprint.js\";\nimport { CustomStrengthTest } from \"./program/CustomStrengthTest.js\";\nimport { CustomStrengthTestExercise } from \"./program/CustomStrengthTestExercises.js\";\nimport { WorkoutCompletion } from \"./program/WorkoutCompletion.js\";\nimport { CircularProgramDraft } from \"./program/CircularProgramDraft.js\";\nimport { CoachExerciseNote } from \"./program/CoachExerciseNote.js\";\nimport { UserExerciseNote } from \"./program/UserExerciseNote.js\";\nimport { NonConsumableProgram } from \"./nonconsprogram/NonConsumableProgram.js\";\nimport { NonConsumableProgramWebContent } from \"./nonconsprogram/NonConsumableProgramWebContent.js\";\nimport { UserPrograms } from \"./nonconsprogram/UserNonConsumableProgram.js\";\nimport { TranslatedConsumableProgram } from \"./nonconsprogram/TranslatedConsumableProgram.js\";\nimport { TranslatedNonConsumableProgramWebContent } from \"./nonconsprogram/TranslatedNonConsumableProgramWebContent.js\";\nimport { DietProgram } from \"./diet/DietProgram.js\";\nimport { DietDay } from \"./diet/DietDay.js\";\nimport { DietMeal } from \"./diet/DietMeal.js\";\nimport { DietMealRecipe } from \"./diet/DietMealRecipe.js\";\nimport { DietMealRecipeIngredient } from \"./diet/DietMealRecipeIngredient.js\";\nimport { DietMealCompletion } from \"./diet/DietMealCompletion.js\";\nimport { Recipe } from \"./diet/Recipe.js\";\nimport { TranslatedRecipe } from \"./diet/TranslatedRecipe.js\";\nimport { RecipeTag } from \"./diet/RecipeTag.js\";\nimport { TranslatedRecipeTag } from \"./diet/TranslatedRecipeTag.js\";\nimport { RecipeTags } from \"./diet/RecipeTags.js\";\nimport { TranslatedRecipeTags } from \"./diet/TranslatedRecipeTags.js\";\nimport { ShoppingList } from \"./diet/ShoppingList.js\";\nimport { ShoppingListItem } from \"./diet/ShoppingListItem.js\";\nimport { UserDietPreferences } from \"./diet/UserDietPreferences.js\";\nimport { Ingredient } from \"./diet/Ingredient.js\";\nimport { IngredientTag } from \"./diet/IngredientTag.js\";\nimport { IngredientTags } from \"./diet/IngredientTags.js\";\nimport { RecipeIngredient } from \"./diet/RecipeIngredient.js\";\nimport { WeeklyCheckin } from \"./coaching/WeeklyCheckIn.js\";\nimport { WeightRecord } from \"./coaching/WeightRecord.js\";\nimport { Questionnaire } from \"./coaching/Questionnaire.js\";\nimport { Question } from \"./coaching/Question.js\";\nimport { Answer } from \"./coaching/Answer.js\";\nimport { QuestionnaireResponse } from \"./coaching/QuestionnaireResponse.js\";\nimport { ClientTag } from \"./coaching/ClientTag.js\";\nimport { ClientNote } from \"./coaching/ClientNote.js\";\nimport { Badge } from \"./gamification/Badge.js\";\nimport { TranslatedBadge } from \"./gamification/TranslatedBadge.js\";\nimport { StreaksLog } from \"./gamification/StreaksLog.js\";\nimport { XpEvent } from \"./gamification/xpAndLeaderboards/XpEvent.js\";\nimport { XpTransaction } from \"./gamification/xpAndLeaderboards/XpTransaction.js\";\nimport { UserRankHistory } from \"./gamification/xpAndLeaderboards/UserRankHistory.js\";\nimport { NotificationModels } from \"./notifications/NotificationModels.js\";\nimport { TranslatedNotification } from \"./notifications/TranslatedNotification.js\";\nimport {SubscriptionRefund} from \"./subscription/SubscriptionRefund.js\";\nimport {UserProgressPhoto} from \"./UserProgressPhoto.js\";\n\n\n// Model Arrays - grouped by domain\nexport const USER_MODELS = [\n PersistedUser,\n UserBadges,\n UserStreak,\n UsersFriends,\n UserCoach,\n UserDiscount,\n UserOptions,\n UserAddons,\n DeviceTokens,\n UserProgressPhoto\n];\n\nexport const SUBSCRIPTION_MODELS = [Subscription, SubscriptionLog ,SubscriptionEvent, SubscriptionRefund];\n\nexport const PROGRAM_MODELS = [\n Program,\n Workout,\n Exercise,\n ExercisesModels,\n Superset,\n ProgressEntry,\n RestDay,\n WorkoutSession,\n Challenge,\n ChallengeBlueprint,\n UserChallenge,\n TranslatedChallenge,\n ThirtyDayChallenge,\n ThirtyDayChallengeStrengthTest,\n StrengthTest,\n StrengthTestExercise,\n StrengthTestSession,\n UserStrengthTests,\n TranslatedStrengthTest,\n TranslatedStrengthTestExercise,\n TranslatedExerciseModel,\n CustomProgramBlueprint,\n CustomWorkoutBlueprint,\n CustomStrengthTest,\n CustomStrengthTestExercise,\n WorkoutCompletion,\n CircularProgramDraft,\n CoachExerciseNote,\n UserExerciseNote,\n];\n\nexport const NON_CONSUMABLE_PROGRAM_MODELS = [\n NonConsumableProgram,\n NonConsumableProgramWebContent,\n UserPrograms,\n TranslatedConsumableProgram,\n TranslatedNonConsumableProgramWebContent,\n];\n\nexport const DIET_MODELS = [\n DietProgram,\n DietDay,\n DietMeal,\n DietMealRecipe,\n DietMealRecipeIngredient,\n DietMealCompletion,\n Recipe,\n TranslatedRecipe,\n RecipeTag,\n TranslatedRecipeTag,\n RecipeTags,\n TranslatedRecipeTags,\n ShoppingList,\n ShoppingListItem,\n UserDietPreferences,\n Ingredient,\n IngredientTag,\n IngredientTags,\n RecipeIngredient,\n];\n\nexport const COACHING_MODELS = [\n WeeklyCheckin,\n WeightRecord,\n Questionnaire,\n Question,\n Answer,\n QuestionnaireResponse,\n ClientTag,\n ClientNote,\n];\n\nexport const GAMIFICATION_MODELS = [\n Badge,\n TranslatedBadge,\n StreaksLog,\n XpEvent,\n XpTransaction,\n UserRankHistory,\n];\n\nexport const NOTIFICATION_MODELS = [NotificationModels, TranslatedNotification];\n\n// All core models combined\nexport const ALL_CORE_MODELS = [\n ...USER_MODELS,\n ...SUBSCRIPTION_MODELS,\n ...PROGRAM_MODELS,\n ...NON_CONSUMABLE_PROGRAM_MODELS,\n ...DIET_MODELS,\n ...COACHING_MODELS,\n ...GAMIFICATION_MODELS,\n ...NOTIFICATION_MODELS,\n];\n"],"names":["SubscriptionEvent","PersistedUser","UserBadges","UserStreak","UsersFriends","UserCoach","UserDiscount","UserOptions","UserAddons","DeviceTokens","Subscription","SubscriptionLog","SubscriptionRefund","Program","Workout","Exercise","ExercisesModels","Superset","ProgressEntry","RestDay","WorkoutSession","Challenge","ChallengeBlueprint","UserChallenge","TranslatedChallenge","ThirtyDayChallenge","ThirtyDayChallengeStrengthTest","StrengthTest","StrengthTestExercise","StrengthTestSession","UserStrengthTests","TranslatedStrengthTest","TranslatedStrengthTestExercise","TranslatedExerciseModel","CustomProgramBlueprint","CustomWorkoutBlueprint","CustomStrengthTest","CustomStrengthTestExercise","WorkoutCompletion","CircularProgramDraft","CoachExerciseNote","UserExerciseNote","NonConsumableProgram","NonConsumableProgramWebContent","UserPrograms","TranslatedConsumableProgram","TranslatedNonConsumableProgramWebContent","DietProgram","DietDay","DietMeal","DietMealRecipe","DietMealRecipeIngredient","DietMealCompletion","Recipe","TranslatedRecipe","RecipeTag","TranslatedRecipeTag","RecipeTags","TranslatedRecipeTags","ShoppingList","ShoppingListItem","UserDietPreferences","Ingredient","IngredientTag","IngredientTags","RecipeIngredient","WeeklyCheckin","WeightRecord","Questionnaire","QuestionnaireType","Question","QuestionType","Answer","QuestionnaireResponse","ClientTag","ClientNote","ClientNoteType","Badge","TranslatedBadge","StreaksLog","XpEvent","XpTransaction","UserRankHistory","NotificationModels","TranslatedNotification","UserProgressPhoto","USER_MODELS","SUBSCRIPTION_MODELS","PROGRAM_MODELS","NON_CONSUMABLE_PROGRAM_MODELS","DIET_MODELS","COACHING_MODELS","GAMIFICATION_MODELS","NOTIFICATION_MODELS","ALL_CORE_MODELS"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/dbmodels/index.ts"],"sourcesContent":["// User Models\nimport {SubscriptionEvent} from \"./subscription/SubscriptionEvent.js\";\n\nexport { PersistedUser } from \"./user/PersistedUser.js\";\nexport { UserBadges } from \"./user/UserBadges.js\";\nexport { UserStreak } from \"./user/UserStreaks.js\";\nexport { UsersFriends } from \"./user/UsersFriends.js\";\nexport { UserCoach } from \"./user/UserCoach.js\";\nexport { UserDiscount } from \"./user/UserDiscount.js\";\nexport { UserOptions } from \"./user/UserOptions.js\";\nexport { UserAddons } from \"./user/UserAddons.js\";\nexport { DeviceTokens } from \"./user/DeviceTokens.js\";\nexport { UserProgressPhoto } from \"./user/UserProgressPhoto.js\";\n\n// Subscription Models\nexport { Subscription } from \"./subscription/Subscription.js\";\nexport { SubscriptionLog } from \"./subscription/SubscriptionLog.js\";\nexport { SubscriptionEvent } from \"./subscription/SubscriptionEvent.js\";\nexport { SubscriptionRefund } from \"./subscription/SubscriptionRefund.js\";\n\n// Program Models\nexport { Program } from \"./program/Program.js\";\nexport { Workout } from \"./program/Workout.js\";\nexport { Exercise } from \"./program/Exercise.js\";\nexport { ExercisesModels } from \"./program/ExerciseModels.js\";\nexport { Superset } from \"./program/Superset.js\";\nexport { ProgressEntry } from \"./program/ProgressEntry.js\";\nexport { RestDay } from \"./program/RestDay.js\";\nexport { WorkoutSession } from \"./program/WorkoutSession.js\";\nexport { Challenge } from \"./program/Challenge.js\";\nexport { ChallengeBlueprint } from \"./program/ChallengeBlueprint.js\";\nexport { UserChallenge } from \"./program/UserChallenge.js\";\nexport { TranslatedChallenge } from \"./program/TranslatedChallenge.js\";\nexport { ThirtyDayChallenge } from \"./program/ThirtyDayChallenge.js\";\nexport { ThirtyDayChallengeStrengthTest } from \"./program/ThirtyDayChallengeStrengthTest.js\";\nexport { StrengthTest } from \"./program/StrengthTest.js\";\nexport { StrengthTestExercise } from \"./program/StrengthTestExercise.js\";\nexport { StrengthTestSession } from \"./program/StrengthTestSession.js\";\nexport { UserStrengthTests } from \"./program/UserStrengthTests.js\";\nexport { TranslatedStrengthTest } from \"./program/TranslatedStrengthTest.js\";\nexport { TranslatedStrengthTestExercise } from \"./program/TranslatedStrengthTestExercise.js\";\nexport { TranslatedExerciseModel } from \"./program/TranslatedExerciseModel.js\";\nexport { CustomProgramBlueprint } from \"./program/CustomProgramBlueprint.js\";\nexport { CustomWorkoutBlueprint } from \"./program/CustomWorkoutBlueprint.js\";\nexport { CustomStrengthTest } from \"./program/CustomStrengthTest.js\";\nexport { CustomStrengthTestExercise } from \"./program/CustomStrengthTestExercises.js\";\nexport { WorkoutCompletion } from \"./program/WorkoutCompletion.js\";\nexport type { ExerciseSnapshot } from \"./program/WorkoutCompletion.js\";\nexport { CircularProgramDraft } from \"./program/CircularProgramDraft.js\";\nexport type {\n CircularProgramDraftData,\n DraftDay,\n DraftWorkout,\n DraftExercise,\n DraftSuperset,\n DraftRestDay,\n DraftStrengthTest,\n DraftChallenge,\n DraftStatus\n} from \"./program/CircularProgramDraft.js\";\nexport { CoachExerciseNote } from \"./program/CoachExerciseNote.js\";\nexport { UserExerciseNote } from \"./program/UserExerciseNote.js\";\n\n// Non-Consumable Program Models\nexport { NonConsumableProgram } from \"./nonconsprogram/NonConsumableProgram.js\";\nexport { NonConsumableProgramWebContent } from \"./nonconsprogram/NonConsumableProgramWebContent.js\";\nexport { UserPrograms } from \"./nonconsprogram/UserNonConsumableProgram.js\";\nexport { TranslatedConsumableProgram } from \"./nonconsprogram/TranslatedConsumableProgram.js\";\nexport { TranslatedNonConsumableProgramWebContent } from \"./nonconsprogram/TranslatedNonConsumableProgramWebContent.js\";\n\n// Diet & Nutrition Models\nexport { DietProgram } from \"./diet/DietProgram.js\";\nexport { DietDay } from \"./diet/DietDay.js\";\nexport { DietMeal } from \"./diet/DietMeal.js\";\nexport { DietMealRecipe } from \"./diet/DietMealRecipe.js\";\nexport { DietMealRecipeIngredient } from \"./diet/DietMealRecipeIngredient.js\";\nexport { DietMealCompletion } from \"./diet/DietMealCompletion.js\";\nexport { Recipe, type RecipeAttributes, type RecipeCreationAttributes } from \"./diet/Recipe.js\";\nexport { TranslatedRecipe } from \"./diet/TranslatedRecipe.js\";\nexport { RecipeTag } from \"./diet/RecipeTag.js\";\nexport { TranslatedRecipeTag } from \"./diet/TranslatedRecipeTag.js\";\nexport { RecipeTags } from \"./diet/RecipeTags.js\";\nexport { TranslatedRecipeTags } from \"./diet/TranslatedRecipeTags.js\";\nexport { ShoppingList } from \"./diet/ShoppingList.js\";\nexport { ShoppingListItem } from \"./diet/ShoppingListItem.js\";\nexport { UserDietPreferences } from \"./diet/UserDietPreferences.js\";\nexport { Ingredient } from \"./diet/Ingredient.js\";\nexport { IngredientTag } from \"./diet/IngredientTag.js\";\nexport { IngredientTags } from \"./diet/IngredientTags.js\";\nexport { RecipeIngredient, type RecipeIngredientAttributes, type RecipeIngredientCreationAttributes } from \"./diet/RecipeIngredient.js\";\n\n// Coaching Models\nexport { WeeklyCheckin } from \"./coaching/WeeklyCheckIn.js\";\nexport { WeightRecord } from \"./coaching/WeightRecord.js\";\nexport { Questionnaire, QuestionnaireType } from \"./coaching/Questionnaire.js\";\nexport { Question, QuestionType } from \"./coaching/Question.js\";\nexport { Answer } from \"./coaching/Answer.js\";\nexport { QuestionnaireResponse } from \"./coaching/QuestionnaireResponse.js\";\nexport { ClientTag } from \"./coaching/ClientTag.js\";\nexport { ClientNote, ClientNoteType } from \"./coaching/ClientNote.js\";\n\n// Gamification Models\nexport { Badge } from \"./gamification/Badge.js\";\nexport { TranslatedBadge } from \"./gamification/TranslatedBadge.js\";\nexport { StreaksLog } from \"./gamification/StreaksLog.js\";\nexport { XpEvent } from \"./gamification/xpAndLeaderboards/XpEvent.js\";\nexport { XpTransaction } from \"./gamification/xpAndLeaderboards/XpTransaction.js\";\nexport { UserRankHistory } from \"./gamification/xpAndLeaderboards/UserRankHistory.js\";\n\n// Notification Models\nexport { NotificationModels } from \"./notifications/NotificationModels.js\";\nexport { TranslatedNotification } from \"./notifications/TranslatedNotification.js\";\n\n// Import for model arrays\nimport { PersistedUser } from \"./user/PersistedUser.js\";\nimport { UserBadges } from \"./user/UserBadges.js\";\nimport { UserStreak } from \"./user/UserStreaks.js\";\nimport { UsersFriends } from \"./user/UsersFriends.js\";\nimport { UserCoach } from \"./user/UserCoach.js\";\nimport { UserDiscount } from \"./user/UserDiscount.js\";\nimport { UserOptions } from \"./user/UserOptions.js\";\nimport { UserAddons } from \"./user/UserAddons.js\";\nimport { DeviceTokens } from \"./user/DeviceTokens.js\";\nimport { Subscription } from \"./subscription/Subscription.js\";\nimport { SubscriptionLog } from \"./subscription/SubscriptionLog.js\";\nimport { Program } from \"./program/Program.js\";\nimport { Workout } from \"./program/Workout.js\";\nimport { Exercise } from \"./program/Exercise.js\";\nimport { ExercisesModels } from \"./program/ExerciseModels.js\";\nimport { Superset } from \"./program/Superset.js\";\nimport { ProgressEntry } from \"./program/ProgressEntry.js\";\nimport { RestDay } from \"./program/RestDay.js\";\nimport { WorkoutSession } from \"./program/WorkoutSession.js\";\nimport { Challenge } from \"./program/Challenge.js\";\nimport { ChallengeBlueprint } from \"./program/ChallengeBlueprint.js\";\nimport { UserChallenge } from \"./program/UserChallenge.js\";\nimport { TranslatedChallenge } from \"./program/TranslatedChallenge.js\";\nimport { ThirtyDayChallenge } from \"./program/ThirtyDayChallenge.js\";\nimport { ThirtyDayChallengeStrengthTest } from \"./program/ThirtyDayChallengeStrengthTest.js\";\nimport { StrengthTest } from \"./program/StrengthTest.js\";\nimport { StrengthTestExercise } from \"./program/StrengthTestExercise.js\";\nimport { StrengthTestSession } from \"./program/StrengthTestSession.js\";\nimport { UserStrengthTests } from \"./program/UserStrengthTests.js\";\nimport { TranslatedStrengthTest } from \"./program/TranslatedStrengthTest.js\";\nimport { TranslatedStrengthTestExercise } from \"./program/TranslatedStrengthTestExercise.js\";\nimport { TranslatedExerciseModel } from \"./program/TranslatedExerciseModel.js\";\nimport { CustomProgramBlueprint } from \"./program/CustomProgramBlueprint.js\";\nimport { CustomWorkoutBlueprint } from \"./program/CustomWorkoutBlueprint.js\";\nimport { CustomStrengthTest } from \"./program/CustomStrengthTest.js\";\nimport { CustomStrengthTestExercise } from \"./program/CustomStrengthTestExercises.js\";\nimport { WorkoutCompletion } from \"./program/WorkoutCompletion.js\";\nimport { CircularProgramDraft } from \"./program/CircularProgramDraft.js\";\nimport { CoachExerciseNote } from \"./program/CoachExerciseNote.js\";\nimport { UserExerciseNote } from \"./program/UserExerciseNote.js\";\nimport { NonConsumableProgram } from \"./nonconsprogram/NonConsumableProgram.js\";\nimport { NonConsumableProgramWebContent } from \"./nonconsprogram/NonConsumableProgramWebContent.js\";\nimport { UserPrograms } from \"./nonconsprogram/UserNonConsumableProgram.js\";\nimport { TranslatedConsumableProgram } from \"./nonconsprogram/TranslatedConsumableProgram.js\";\nimport { TranslatedNonConsumableProgramWebContent } from \"./nonconsprogram/TranslatedNonConsumableProgramWebContent.js\";\nimport { DietProgram } from \"./diet/DietProgram.js\";\nimport { DietDay } from \"./diet/DietDay.js\";\nimport { DietMeal } from \"./diet/DietMeal.js\";\nimport { DietMealRecipe } from \"./diet/DietMealRecipe.js\";\nimport { DietMealRecipeIngredient } from \"./diet/DietMealRecipeIngredient.js\";\nimport { DietMealCompletion } from \"./diet/DietMealCompletion.js\";\nimport { Recipe } from \"./diet/Recipe.js\";\nimport { TranslatedRecipe } from \"./diet/TranslatedRecipe.js\";\nimport { RecipeTag } from \"./diet/RecipeTag.js\";\nimport { TranslatedRecipeTag } from \"./diet/TranslatedRecipeTag.js\";\nimport { RecipeTags } from \"./diet/RecipeTags.js\";\nimport { TranslatedRecipeTags } from \"./diet/TranslatedRecipeTags.js\";\nimport { ShoppingList } from \"./diet/ShoppingList.js\";\nimport { ShoppingListItem } from \"./diet/ShoppingListItem.js\";\nimport { UserDietPreferences } from \"./diet/UserDietPreferences.js\";\nimport { Ingredient } from \"./diet/Ingredient.js\";\nimport { IngredientTag } from \"./diet/IngredientTag.js\";\nimport { IngredientTags } from \"./diet/IngredientTags.js\";\nimport { RecipeIngredient } from \"./diet/RecipeIngredient.js\";\nimport { WeeklyCheckin } from \"./coaching/WeeklyCheckIn.js\";\nimport { WeightRecord } from \"./coaching/WeightRecord.js\";\nimport { Questionnaire } from \"./coaching/Questionnaire.js\";\nimport { Question } from \"./coaching/Question.js\";\nimport { Answer } from \"./coaching/Answer.js\";\nimport { QuestionnaireResponse } from \"./coaching/QuestionnaireResponse.js\";\nimport { ClientTag } from \"./coaching/ClientTag.js\";\nimport { ClientNote } from \"./coaching/ClientNote.js\";\nimport { Badge } from \"./gamification/Badge.js\";\nimport { TranslatedBadge } from \"./gamification/TranslatedBadge.js\";\nimport { StreaksLog } from \"./gamification/StreaksLog.js\";\nimport { XpEvent } from \"./gamification/xpAndLeaderboards/XpEvent.js\";\nimport { XpTransaction } from \"./gamification/xpAndLeaderboards/XpTransaction.js\";\nimport { UserRankHistory } from \"./gamification/xpAndLeaderboards/UserRankHistory.js\";\nimport { NotificationModels } from \"./notifications/NotificationModels.js\";\nimport { TranslatedNotification } from \"./notifications/TranslatedNotification.js\";\nimport {SubscriptionRefund} from \"./subscription/SubscriptionRefund.js\";\nimport {UserProgressPhoto} from \"./user/UserProgressPhoto.js\";\n\n\n// Model Arrays - grouped by domain\nexport const USER_MODELS = [\n PersistedUser,\n UserBadges,\n UserStreak,\n UsersFriends,\n UserCoach,\n UserDiscount,\n UserOptions,\n UserAddons,\n DeviceTokens,\n UserProgressPhoto\n];\n\nexport const SUBSCRIPTION_MODELS = [Subscription, SubscriptionLog ,SubscriptionEvent, SubscriptionRefund];\n\nexport const PROGRAM_MODELS = [\n Program,\n Workout,\n Exercise,\n ExercisesModels,\n Superset,\n ProgressEntry,\n RestDay,\n WorkoutSession,\n Challenge,\n ChallengeBlueprint,\n UserChallenge,\n TranslatedChallenge,\n ThirtyDayChallenge,\n ThirtyDayChallengeStrengthTest,\n StrengthTest,\n StrengthTestExercise,\n StrengthTestSession,\n UserStrengthTests,\n TranslatedStrengthTest,\n TranslatedStrengthTestExercise,\n TranslatedExerciseModel,\n CustomProgramBlueprint,\n CustomWorkoutBlueprint,\n CustomStrengthTest,\n CustomStrengthTestExercise,\n WorkoutCompletion,\n CircularProgramDraft,\n CoachExerciseNote,\n UserExerciseNote,\n];\n\nexport const NON_CONSUMABLE_PROGRAM_MODELS = [\n NonConsumableProgram,\n NonConsumableProgramWebContent,\n UserPrograms,\n TranslatedConsumableProgram,\n TranslatedNonConsumableProgramWebContent,\n];\n\nexport const DIET_MODELS = [\n DietProgram,\n DietDay,\n DietMeal,\n DietMealRecipe,\n DietMealRecipeIngredient,\n DietMealCompletion,\n Recipe,\n TranslatedRecipe,\n RecipeTag,\n TranslatedRecipeTag,\n RecipeTags,\n TranslatedRecipeTags,\n ShoppingList,\n ShoppingListItem,\n UserDietPreferences,\n Ingredient,\n IngredientTag,\n IngredientTags,\n RecipeIngredient,\n];\n\nexport const COACHING_MODELS = [\n WeeklyCheckin,\n WeightRecord,\n Questionnaire,\n Question,\n Answer,\n QuestionnaireResponse,\n ClientTag,\n ClientNote,\n];\n\nexport const GAMIFICATION_MODELS = [\n Badge,\n TranslatedBadge,\n StreaksLog,\n XpEvent,\n XpTransaction,\n UserRankHistory,\n];\n\nexport const NOTIFICATION_MODELS = [NotificationModels, TranslatedNotification];\n\n// All core models combined\nexport const ALL_CORE_MODELS = [\n ...USER_MODELS,\n ...SUBSCRIPTION_MODELS,\n ...PROGRAM_MODELS,\n ...NON_CONSUMABLE_PROGRAM_MODELS,\n ...DIET_MODELS,\n ...COACHING_MODELS,\n ...GAMIFICATION_MODELS,\n ...NOTIFICATION_MODELS,\n];\n"],"names":["SubscriptionEvent","PersistedUser","UserBadges","UserStreak","UsersFriends","UserCoach","UserDiscount","UserOptions","UserAddons","DeviceTokens","UserProgressPhoto","Subscription","SubscriptionLog","SubscriptionRefund","Program","Workout","Exercise","ExercisesModels","Superset","ProgressEntry","RestDay","WorkoutSession","Challenge","ChallengeBlueprint","UserChallenge","TranslatedChallenge","ThirtyDayChallenge","ThirtyDayChallengeStrengthTest","StrengthTest","StrengthTestExercise","StrengthTestSession","UserStrengthTests","TranslatedStrengthTest","TranslatedStrengthTestExercise","TranslatedExerciseModel","CustomProgramBlueprint","CustomWorkoutBlueprint","CustomStrengthTest","CustomStrengthTestExercise","WorkoutCompletion","CircularProgramDraft","CoachExerciseNote","UserExerciseNote","NonConsumableProgram","NonConsumableProgramWebContent","UserPrograms","TranslatedConsumableProgram","TranslatedNonConsumableProgramWebContent","DietProgram","DietDay","DietMeal","DietMealRecipe","DietMealRecipeIngredient","DietMealCompletion","Recipe","TranslatedRecipe","RecipeTag","TranslatedRecipeTag","RecipeTags","TranslatedRecipeTags","ShoppingList","ShoppingListItem","UserDietPreferences","Ingredient","IngredientTag","IngredientTags","RecipeIngredient","WeeklyCheckin","WeightRecord","Questionnaire","QuestionnaireType","Question","QuestionType","Answer","QuestionnaireResponse","ClientTag","ClientNote","ClientNoteType","Badge","TranslatedBadge","StreaksLog","XpEvent","XpTransaction","UserRankHistory","NotificationModels","TranslatedNotification","USER_MODELS","SUBSCRIPTION_MODELS","PROGRAM_MODELS","NON_CONSUMABLE_PROGRAM_MODELS","DIET_MODELS","COACHING_MODELS","GAMIFICATION_MODELS","NOTIFICATION_MODELS","ALL_CORE_MODELS"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Model } from "sequelize-typescript";
2
- import { PersistedUser } from "./user/PersistedUser.js";
2
+ import { PersistedUser } from "./PersistedUser.js";
3
3
  export declare class UserProgressPhoto extends Model {
4
4
  uuid: string;
5
5
  userUuid: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserProgressPhoto.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/user/UserProgressPhoto.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAMN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAIa,iBAAkB,SAAQ,KAAK;IAQlC,IAAI,EAAE,MAAM,CAAC;IAQb,QAAQ,EAAE,MAAM,CAAC;IAGjB,IAAI,EAAE,aAAa,CAAC;IAOpB,YAAY,EAAE,MAAM,CAAC;IAOrB,SAAS,EAAE,IAAI,CAAC;IAOhB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACzB"}
@@ -5,7 +5,7 @@ function _ts_decorate(decorators, target, key, desc) {
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  }
7
7
  import { Table, Column, Model, DataType, ForeignKey, BelongsTo, Default, AllowNull } from "sequelize-typescript";
8
- import { PersistedUser } from "./user/PersistedUser.js";
8
+ import { PersistedUser } from "./PersistedUser.js";
9
9
  export class UserProgressPhoto extends Model {
10
10
  }
11
11
  _ts_decorate([
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/user/UserProgressPhoto.ts"],"sourcesContent":["import {\n Table,\n Column,\n Model,\n DataType,\n ForeignKey,\n BelongsTo,\n Default,\n AllowNull,\n} from \"sequelize-typescript\";\nimport { PersistedUser } from \"./PersistedUser.js\";\n\n@Table({\n tableName: \"UserProgressPhotos\",\n timestamps: true,\n})\nexport class UserProgressPhoto extends Model {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUID,\n allowNull: false,\n primaryKey: true,\n })\n declare uuid: string;\n\n @ForeignKey(() => PersistedUser)\n @AllowNull(false)\n @Column({\n type: DataType.UUID,\n allowNull: false,\n })\n declare userUuid: string;\n\n @BelongsTo(() => PersistedUser)\n declare user: PersistedUser;\n\n @AllowNull(false)\n @Column({\n type: DataType.STRING,\n allowNull: false,\n })\n declare firebasePath: string;\n\n @AllowNull(false)\n @Column({\n type: DataType.DATE,\n allowNull: false,\n })\n declare photoDate: Date;\n\n @AllowNull(true)\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare programId: string | null;\n\n declare createdAt: Date;\n declare updatedAt: Date;\n}\n"],"names":["Table","Column","Model","DataType","ForeignKey","BelongsTo","Default","AllowNull","PersistedUser","UserProgressPhoto","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","STRING","DATE","tableName","timestamps"],"mappings":";;;;;;AAAA,SACEA,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,SAAS,QACJ,uBAAuB;AAC9B,SAASC,aAAa,QAAQ,qBAAqB;AAMnD,OAAO,MAAMC,0BAA0BP;AA4CvC;;qBA3CoBQ;;QAEhBC,MAAMR,SAASS,IAAI;QACnBC,cAAcV,SAASS,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;mBAIIP;;;QAGhBG,MAAMR,SAASS,IAAI;QACnBE,WAAW;;;;kBAIIN;;;;;QAKfG,MAAMR,SAASa,MAAM;QACrBF,WAAW;;;;;;QAMXH,MAAMR,SAASc,IAAI;QACnBH,WAAW;;;;;;QAMXH,MAAMR,SAASS,IAAI;QACnBE,WAAW;;;;;QAzCbI,WAAW;QACXC,YAAY"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "90dc-core",
3
- "version": "1.19.2",
3
+ "version": "1.19.3",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserProgressPhoto.d.ts","sourceRoot":"","sources":["../../../src/lib/dbmodels/UserProgressPhoto.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAMN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAIa,iBAAkB,SAAQ,KAAK;IAQlC,IAAI,EAAE,MAAM,CAAC;IAQb,QAAQ,EAAE,MAAM,CAAC;IAGjB,IAAI,EAAE,aAAa,CAAC;IAOpB,YAAY,EAAE,MAAM,CAAC;IAOrB,SAAS,EAAE,IAAI,CAAC;IAOhB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACzB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/dbmodels/UserProgressPhoto.ts"],"sourcesContent":["import {\n Table,\n Column,\n Model,\n DataType,\n ForeignKey,\n BelongsTo,\n Default,\n AllowNull,\n} from \"sequelize-typescript\";\nimport { PersistedUser } from \"./user/PersistedUser.js\";\n\n@Table({\n tableName: \"UserProgressPhotos\",\n timestamps: true,\n})\nexport class UserProgressPhoto extends Model {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUID,\n allowNull: false,\n primaryKey: true,\n })\n declare uuid: string;\n\n @ForeignKey(() => PersistedUser)\n @AllowNull(false)\n @Column({\n type: DataType.UUID,\n allowNull: false,\n })\n declare userUuid: string;\n\n @BelongsTo(() => PersistedUser)\n declare user: PersistedUser;\n\n @AllowNull(false)\n @Column({\n type: DataType.STRING,\n allowNull: false,\n })\n declare firebasePath: string;\n\n @AllowNull(false)\n @Column({\n type: DataType.DATE,\n allowNull: false,\n })\n declare photoDate: Date;\n\n @AllowNull(true)\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare programId: string | null;\n\n declare createdAt: Date;\n declare updatedAt: Date;\n}\n"],"names":["Table","Column","Model","DataType","ForeignKey","BelongsTo","Default","AllowNull","PersistedUser","UserProgressPhoto","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","STRING","DATE","tableName","timestamps"],"mappings":";;;;;;AAAA,SACEA,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,SAAS,QACJ,uBAAuB;AAC9B,SAASC,aAAa,QAAQ,0BAA0B;AAMxD,OAAO,MAAMC,0BAA0BP;AA4CvC;;qBA3CoBQ;;QAEhBC,MAAMR,SAASS,IAAI;QACnBC,cAAcV,SAASS,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;mBAIIP;;;QAGhBG,MAAMR,SAASS,IAAI;QACnBE,WAAW;;;;kBAIIN;;;;;QAKfG,MAAMR,SAASa,MAAM;QACrBF,WAAW;;;;;;QAMXH,MAAMR,SAASc,IAAI;QACnBH,WAAW;;;;;;QAMXH,MAAMR,SAASS,IAAI;QACnBE,WAAW;;;;;QAzCbI,WAAW;QACXC,YAAY"}