{"openapi":"3.0.0","paths":{"/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignUpDto"}}}},"responses":{"201":{"description":"User registration endpoint. Returns an access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignInResponseDto"}}}},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"}},"tags":["Authentication"]}},"/auth/password-reset/request":{"post":{"operationId":"AuthController_requestPasswordReset","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequestDto"}}}},"responses":{"201":{"description":"Password reset request endpoint."},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"}},"tags":["Authentication"]}},"/auth/password-reset":{"post":{"operationId":"AuthController_resetPassword","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetDto"}}}},"responses":{"201":{"description":"Password reset complete endpoint."},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"}},"tags":["Authentication"]}},"/auth/password-reset-via-code/request":{"post":{"operationId":"AuthController_requestPasswordResetViaCode","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequestDto"}}}},"responses":{"201":{"description":"Password reset via code request endpoint."},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"}},"tags":["Authentication"]}},"/auth/password-reset-via-code":{"post":{"operationId":"AuthController_resetPasswordViaCode","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetViaCodeDto"}}}},"responses":{"201":{"description":""},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"}},"tags":["Authentication"]}},"/auth/password":{"patch":{"operationId":"AuthController_changePassword","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordDto"}}}},"responses":{"200":{"description":"Password changed successfully."},"400":{"description":"Invalid input data or old password is incorrect."},"401":{"description":"Unauthorized."},"403":{"description":"Please verify your email before changing password."},"422":{"description":"New password matches the old password."},"500":{"description":"Internal server error"}},"tags":["Authentication"]}},"/auth/login":{"post":{"operationId":"AuthController_login","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignInResponseDto"}}}},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"},"default":{"description":"User login endpoint. Returns an access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignInResponseDto"}}}}},"tags":["Authentication"]}},"/auth/refresh":{"post":{"operationId":"AuthController_refresh","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignInResponseDto"}}}},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"},"default":{"description":"Refresh token endpoint. Returns a new access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignInResponseDto"}}}}},"tags":["Authentication"]}},"/auth/resend-verification-code":{"post":{"operationId":"AuthController_resendVerificationCode","parameters":[],"responses":{"201":{"description":""},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"},"default":{"description":"Resend email verification code resend endpoint."}},"tags":["Authentication"]}},"/auth/verify":{"post":{"operationId":"AuthController_verifyEmail","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyUserDto"}}}},"responses":{"201":{"description":""},"400":{"description":"Invalid input data.","content":{"application/json":{"schema":{"properties":{"statusCode":{"type":"number","example":400},"message":{"type":"array","example":["passwordConfirm does not match the password"]},"error":{"type":"string","example":"Bad Request"}}}}}},"500":{"description":"Internal server error"},"default":{"description":"Email verification endpoint."}},"tags":["Authentication"]}},"/users/me":{"get":{"operationId":"CurrentUserController_me","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPrivateResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPrivateResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]},"patch":{"operationId":"CurrentUserController_updateUser","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPrivateResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPrivateResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]},"delete":{"operationId":"CurrentUserController_deleteUser","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPrivateResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPrivateResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]}},"/users/me/coherence":{"get":{"operationId":"CurrentUserController_coherence","parameters":[{"name":"from","required":true,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}},{"name":"to","required":true,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoherenceStatusResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoherenceStatusResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]}},"/users/me/resilience":{"get":{"operationId":"CurrentUserController_resilience","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResilienceStatusResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResilienceStatusResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]}},"/users/me/resilience/details":{"get":{"operationId":"CurrentUserController_getResilienceDetails","parameters":[{"name":"currentPeriodFrom","required":true,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}},{"name":"currentPeriodTo","required":true,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}},{"name":"previousPeriodFrom","required":false,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}},{"name":"previousPeriodTo","required":false,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}},{"name":"includeAudioSessions","required":false,"in":"query","description":"Send true or 1 to include audio sessions in the response. Defaults to false.","deprecated":true,"schema":{"default":false,"type":"boolean"}},{"name":"groupValuesBy","required":false,"in":"query","schema":{"enum":["DAY"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResilienceDetailsResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResilienceDetailsResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]}},"/users/me/check-ins-history":{"get":{"operationId":"CurrentUserController_getUserCheckInHistory","parameters":[{"name":"from","required":true,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}},{"name":"to","required":true,"in":"query","description":"ISO8601 datetime string","schema":{"format":"date-time","type":"string"}},{"name":"groupValuesBy","required":false,"in":"query","description":"If passed groups data per day instead of per 30m. Needed for monthly/weekly graphs","schema":{"enum":["DAY"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInHistoryResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInHistoryResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]}},"/connected-device/my":{"get":{"operationId":"CurrentUserConnectedDeviceController_myConnectedDevice","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedDeviceResponseDto"}}}},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedDeviceResponseDto"}}}}},"tags":["Current User Connected Device"],"security":[{"JWT":[]}]},"post":{"operationId":"CurrentUserConnectedDeviceController_upsertMyConnectedDevice","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedDeviceUpsertDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedDeviceResponseDto"}}}},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedDeviceResponseDto"}}}}},"tags":["Current User Connected Device"],"security":[{"JWT":[]}]},"delete":{"operationId":"CurrentUserConnectedDeviceController_deleteMyConnectedDevice","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedDeviceResponseDto"}}}},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedDeviceResponseDto"}}}}},"tags":["Current User Connected Device"],"security":[{"JWT":[]}]}},"/vibe-check-ins":{"post":{"operationId":"VibeCheckInsController_createVibeCheckInFromVoiceSample","parameters":[],"requestBody":{"required":true,"description":"Voice sample file to be analyzed for vibes","content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/VibeCheckInFileUploadDto"}}}},"responses":{"201":{"description":"A new vibe check-in has been created successfully and the uploaded file has been uploaded for further analysis.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInCreatedResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"413":{"description":"The voice sample file is too large (> 10MB)."},"422":{"description":"The voice sample file is in an unsupported format. The supported formats are .wav and .mp3."},"500":{"description":"Internal server error"}},"tags":["Vibe Check-Ins"],"security":[{"JWT":[]}]}},"/vibe-check-ins/completed":{"post":{"operationId":"VibeCheckInsController_createVibeCheckInCompleted","summary":"","description":"Creates a new vibe check-in with the provided data and metadata. The vibe check-in is completed and does not require further analysis.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInCreateDto"}}}},"responses":{"200":{"description":"The vibe check-in has been retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInCreatedResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInCreatedResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"}},"tags":["Vibe Check-Ins"],"security":[{"JWT":[]}]}},"/vibe-check-ins/{id}":{"get":{"operationId":"VibeCheckInsController_getVibeCheckInById","summary":"","description":"Returns information about a specific vibe check-in of the user. If the vibe check-in is not found, 404 status code is returned.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The vibe check-in has been retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"404":{"description":"The vibe check-in was not found or does not belong to the authenticated user"},"500":{"description":"Internal server error"}},"tags":["Vibe Check-Ins"],"security":[{"JWT":[]}]}},"/vibe-check-in-sessions":{"post":{"operationId":"VibeCheckInSessionsController_createVibeCheckInSession","summary":"","description":"Creates a new vibe check-in session for the authenticated user. Should be called after check-ins are completed.","parameters":[],"responses":{"201":{"description":"A new vibe check-in session has been created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInSessionResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"}},"tags":["Vibe Check-In Sessions"],"security":[{"JWT":[]}]}},"/vibe-check-in-sessions/latest":{"get":{"operationId":"VibeCheckInSessionsController_getLatestVibeCheckInSession","summary":"","description":"Returns information about the latest check-in session of the user and top vibes with corresponding colors, tuning settings and granular vibes if applied. If no check-in session is found returns not found response. This may happen if the user has not completed any check-in sessions yet.","parameters":[],"responses":{"200":{"description":"The latest check-in session has been retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInSessionResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"}},"tags":["Vibe Check-In Sessions"],"security":[{"JWT":[]}]},"patch":{"operationId":"VibeCheckInSessionsController_tuneLatestSession","summary":"","description":"Returns information about the latest check-in session of the user and top vibes with corresponding colors, tuning settings and granular vibes if applied. If no check-in session is found returns not found response. This may happen if the user has not completed any check-in sessions yet.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInTuneDto"}}}},"responses":{"200":{"description":"The latest check-in session has been updated and retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VibeCheckInSessionResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"}},"tags":["Vibe Check-In Sessions"],"security":[{"JWT":[]}]}},"/events/sse":{"get":{"operationId":"EventsController_sse","summary":"","description":"Streams events to the client using Server-Sent Events (SSE), including vibe-check-in and notification lifecycle events.","parameters":[{"name":"authToken","required":true,"in":"query","description":"Access token for authentication","schema":{"type":"string"}}],"responses":{"200":{"description":"The stream of events has started. Keep in mind that the data field is a string and should be parsed as JSON to access the event payload.","content":{"text/event-stream":{"schema":{"type":"object","properties":{"data":{"type":"string","description":"The payload of the event, serialized as a JSON string"}}},"examples":{"vibe-check-in-completed":{"summary":"Vibe check-in completed","description":"This event is triggered when a user completes a vibe check-in","value":{"data":"{\"userId\":\"b3f9bd23-a97c-4991-9a2b-0d09b155b9ea\",\"vibeCheckInId\":\"9aebcb70-166d-4bec-8711-48bb986973bc\",\"detectedVibes\":[{\"vibe\":\"Inspiration\",\"color\":\"#FF7500\"},{\"vibe\":\"Joyful\",\"color\":\"#FF0FCF\"},{\"vibe\":\"Balance\",\"color\":\"#008763\"}],\"state\":\"POSITIVE\",\"eventType\":\"vibe-check-in-completed\"}"}},"vibe-check-in-failed":{"summary":"Vibe check-in failed","description":"This event is triggered when something goes wrong during a vibe check-in","value":{"data":"{\"userId\":\"b3f9bd23-a97c-4991-9a2b-0d09b155b9ea\",\"vibeCheckInId\":\"9aebcb70-166d-4bec-8711-48bb986973bc\",\"eventType\":\"vibe-check-in-failed\"}"}},"notification-sent":{"summary":"Notification sent","description":"Triggered when notification delivery succeeds for at least one active push token.","value":{"data":"{\"userId\":\"b3f9bd23-a97c-4991-9a2b-0d09b155b9ea\",\"notificationId\":\"f4f34f2d-79f4-4f15-9cb5-6d796dd76ece\",\"notificationType\":\"CHECK_IN\",\"notificationStatus\":\"SENT\",\"messageKey\":\"check_in_01\",\"metadata\":{\"trigger\":\"cron\",\"reason\":\"missing_recent_check_in\"},\"attemptCount\":0,\"lastError\":null,\"createdAt\":\"2026-06-12T12:00:00.000Z\",\"sentAt\":\"2026-06-12T12:00:04.000Z\",\"openedAt\":null,\"readAt\":null,\"dismissedAt\":null,\"occurredAt\":\"2026-06-12T12:00:04.000Z\",\"eventType\":\"notification-sent\"}"}},"notification-dismissed":{"summary":"Notification dismissed","description":"Triggered when a user dismisses a notification from inbox.","value":{"data":"{\"userId\":\"b3f9bd23-a97c-4991-9a2b-0d09b155b9ea\",\"notificationId\":\"f4f34f2d-79f4-4f15-9cb5-6d796dd76ece\",\"notificationType\":\"CHECK_IN\",\"notificationStatus\":\"SENT\",\"messageKey\":\"check_in_01\",\"metadata\":{},\"attemptCount\":0,\"lastError\":null,\"createdAt\":\"2026-06-12T12:00:00.000Z\",\"sentAt\":\"2026-06-12T12:00:04.000Z\",\"openedAt\":\"2026-06-12T12:08:00.000Z\",\"readAt\":\"2026-06-12T12:08:05.000Z\",\"dismissedAt\":\"2026-06-12T12:08:07.000Z\",\"occurredAt\":\"2026-06-12T12:08:07.000Z\",\"eventType\":\"notification-dismissed\"}"}}}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"}},"tags":["Events"]}},"/track/audio-session":{"post":{"operationId":"TrackingController_trackAudioSession","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioSessionCreateDto"}}}},"responses":{"201":{"description":"Tracks audio sesssion events like play, pause, seek, etc.","content":{"application/json":{"schema":{"example":{"result":"ok"},"type":"object","properties":{"result":{"type":"string","description":"Result of the operation"}}}}}},"500":{"description":"Internal server error"}},"tags":["Session Tracking"],"security":[{"JWT":[]}]}},"/sound-experience-packages/recommended":{"get":{"operationId":"SoundExperiencePackageRecommendedController_getSoundExperiencePackages","parameters":[{"name":"page","required":false,"in":"query","description":"The page number to retrieve. This property is used to specify the page number of the paginated results to retrieve from the database.","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"take","required":false,"in":"query","description":"The number of items to take in a single page. This property is used to specify the number of items to retrieve from the database in a single page.","schema":{"minimum":5,"maximum":50,"default":12,"type":"number"}},{"required":false,"description":"Sort order for the records.","name":"sorting[order]","in":"query","schema":{"default":"desc","example":"desc","enum":["asc","desc"],"type":"string"}},{"required":true,"name":"sorting[orderBy]","in":"query","schema":{"default":"createdAt","enum":["packageFileName","originalPackageFileName","packageName","creators","creationDate","version","audioFilesCount","tempo","keys","volumeLevelEqualization","additionalInformation","status","createdAt","updatedAt"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PageDto"},{"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RecommendedSoundExperiencePackagePublicResponseDto"}}}}]}}}}},"tags":["Sound Experience Packages"]}},"/sound-experience-packages":{"get":{"operationId":"SoundExperiencePackageController_getSoundExperiencePackages","parameters":[{"name":"page","required":false,"in":"query","description":"The page number to retrieve. This property is used to specify the page number of the paginated results to retrieve from the database.","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"take","required":false,"in":"query","description":"The number of items to take in a single page. This property is used to specify the number of items to retrieve from the database in a single page.","schema":{"minimum":5,"maximum":50,"default":12,"type":"number"}},{"required":false,"description":"Sort order for the records.","name":"sorting[order]","in":"query","schema":{"default":"desc","example":"desc","enum":["asc","desc"],"type":"string"}},{"required":true,"name":"sorting[orderBy]","in":"query","schema":{"default":"createdAt","enum":["packageFileName","originalPackageFileName","packageName","creators","creationDate","version","audioFilesCount","tempo","keys","volumeLevelEqualization","additionalInformation","status","createdAt","updatedAt"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PageDto"},{"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SoundExperiencePackagePublicResponseDto"}}}}]}}}}},"tags":["Sound Experience Packages"]}},"/sound-experience-packages/{id}":{"get":{"operationId":"SoundExperiencePackageController_getSoundExperiencePackage","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperiencePackagePublicResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperiencePackagePublicResponseDto"}}}}},"tags":["Sound Experience Packages"]}},"/sound-experience-packages/{id}/settings":{"get":{"operationId":"SoundExperiencePackageController_getSoundExperiencePackageSettings","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperiencePackagePublicSettingsDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperiencePackagePublicSettingsDto"}}}}},"tags":["Sound Experience Packages"]}},"/sound-experience-packages/{id}/content":{"get":{"operationId":"SoundExperiencePackageController_getSoundExperiencePackageContent","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperiencePackageContentResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperiencePackageContentResponseDto"}}}}},"tags":["Sound Experience Packages"]}},"/sound-experience-packages/{id}/artwork":{"get":{"operationId":"SoundExperiencePackageController_getSoundExperiencePackageCover","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""},"default":{"description":"","content":{"image/jpeg":{"schema":{"$ref":"#/components/schemas/StreamableFile"}}}}},"tags":["Sound Experience Packages"]}},"/sound-experience-recipes":{"get":{"operationId":"SoundExperienceRecipeController_getSoundExperienceRecipes","parameters":[{"name":"page","required":false,"in":"query","description":"The page number to retrieve. This property is used to specify the page number of the paginated results to retrieve from the database.","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"take","required":false,"in":"query","description":"The number of items to take in a single page. This property is used to specify the number of items to retrieve from the database in a single page.","schema":{"minimum":5,"maximum":50,"default":12,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PageDto"},{"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}}]}}}}},"tags":["Sound Experience Recipes"]},"post":{"operationId":"SoundExperienceRecipeController_createSoundExperienceRecipe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSoundExperienceRecipeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}}},"tags":["Sound Experience Recipes"]}},"/sound-experience-recipes/v2":{"post":{"operationId":"SoundExperienceRecipeController_createSoundExperienceRecipeV2","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSoundExperienceRecipeV2Dto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}}},"tags":["Sound Experience Recipes"]}},"/sound-experience-recipes/{id}/mixdown":{"get":{"operationId":"SoundExperienceRecipeController_getSoundExperienceRecipeMixdown","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSoundExperienceRecipeMixdownDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSoundExperienceRecipeMixdownDto"}}}}},"tags":["Sound Experience Recipes"]}},"/sound-experience-recipes/favorite":{"get":{"operationId":"SoundExperienceRecipeFavoriteController_getSoundExperienceRecipes","parameters":[{"name":"page","required":false,"in":"query","description":"The page number to retrieve. This property is used to specify the page number of the paginated results to retrieve from the database.","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"take","required":false,"in":"query","description":"The number of items to take in a single page. This property is used to specify the number of items to retrieve from the database in a single page.","schema":{"minimum":5,"maximum":50,"default":12,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PageDto"},{"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}}]}}}}},"tags":["Sound Experience Recipes"],"security":[{"JWT":[]}]}},"/sound-experience-recipes/{id}/favorite":{"post":{"operationId":"SoundExperienceRecipeFavoriteController_getSoundExperienceRecipe","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundExperienceRecipePublicResponseDto"}}}}},"tags":["Sound Experience Recipes"],"security":[{"JWT":[]}]},"delete":{"operationId":"SoundExperienceRecipeFavoriteController_unfavoriteSoundExperienceRecipe","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Sound Experience Recipes"],"security":[{"JWT":[]}]}},"/sound-journeys/recommended":{"get":{"operationId":"SoundJourneyRecommendedController_getRecommendedSoundJourneys","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PageDto"},{"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SoundJourneyPublicResponseDto"}}}}]}}}}},"tags":["Sound Journeys"],"security":[{"JWT":[]}]}},"/background-audio":{"get":{"operationId":"BackgroundAudioController_getBackgroundAudios","parameters":[{"name":"page","required":false,"in":"query","description":"The page number to retrieve. This property is used to specify the page number of the paginated results to retrieve from the database.","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"take","required":false,"in":"query","description":"The number of items to take in a single page. This property is used to specify the number of items to retrieve from the database in a single page.","schema":{"minimum":5,"maximum":50,"default":12,"type":"number"}},{"required":false,"description":"Sort order for the records.","name":"sorting[order]","in":"query","schema":{"default":"desc","example":"desc","enum":["asc","desc"],"type":"string"}},{"required":true,"name":"sorting[orderBy]","in":"query","schema":{"default":"createdAt","enum":["status","createdAt","updatedAt"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PageDto"},{"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BackgroundAudioResponseDto"}}}}]}}}}},"tags":["Background Audio"]}},"/background-audio/{id}":{"get":{"operationId":"BackgroundAudioController_getBackgroundAudio","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundAudioResponseDto"}}}},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundAudioResponseDto"}}}}},"tags":["Background Audio"]}},"/background-audio/{id}/content":{"get":{"operationId":"BackgroundAudioController_getBackgroundAudioContent","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""},"default":{"description":"","content":{"audio/wav":{"schema":{"$ref":"#/components/schemas/StreamableFile"}}}}},"tags":["Background Audio"]}},"/health":{"get":{"operationId":"HealthController_liveness","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/ready":{"get":{"operationId":"HealthController_readiness","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/push-token/my":{"get":{"operationId":"CurrentUserPushTokenController_getMyPushTokens","summary":"","description":"List current user push tokens.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserPushTokenResponseDto"}}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserPushTokenResponseDto"}}}}}},"tags":["Current User Push Token"],"security":[{"JWT":[]}]},"post":{"operationId":"CurrentUserPushTokenController_upsertMyPushToken","summary":"","description":"Register or update a push token for the current user.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertUserPushTokenDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPushTokenResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPushTokenResponseDto"}}}}},"tags":["Current User Push Token"],"security":[{"JWT":[]}]}},"/push-token/my/deactivate":{"post":{"operationId":"CurrentUserPushTokenController_deactivateMyPushToken","summary":"","description":"Deactivate a push token for the current user.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateUserPushTokenDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPushTokenResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"404":{"description":"Push token not found for current user"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPushTokenResponseDto"}}}}},"tags":["Current User Push Token"],"security":[{"JWT":[]}]}},"/notifications/my":{"get":{"operationId":"CurrentUserNotificationController_getMyNotifications","summary":"","description":"List current user inbox notifications with optional dismissed entries.","parameters":[{"name":"page","required":false,"in":"query","description":"The page number to retrieve. This property is used to specify the page number of the paginated results to retrieve from the database.","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"take","required":false,"in":"query","description":"The number of items to take in a single page. This property is used to specify the number of items to retrieve from the database in a single page.","schema":{"minimum":5,"maximum":50,"default":12,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PageDto"},{"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/NotificationResponseDto"}}}}]}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"}},"tags":["Current User Notifications"],"security":[{"JWT":[]}]}},"/notifications/my/preferences":{"get":{"operationId":"CurrentUserNotificationController_getMyNotificationPreferences","summary":"","description":"Get current user notification preferences.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotificationPreferenceResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotificationPreferenceResponseDto"}}}}},"tags":["Current User Notifications"],"security":[{"JWT":[]}]},"patch":{"operationId":"CurrentUserNotificationController_updateMyNotificationPreferences","summary":"","description":"Update current user notification preferences.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserNotificationPreferenceDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotificationPreferenceResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotificationPreferenceResponseDto"}}}}},"tags":["Current User Notifications"],"security":[{"JWT":[]}]}},"/notifications/my/{notificationId}/open":{"patch":{"operationId":"CurrentUserNotificationController_markNotificationOpened","summary":"","description":"Mark a notification as opened for the current user.","parameters":[{"name":"notificationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"404":{"description":"Notification not found for current user"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponseDto"}}}}},"tags":["Current User Notifications"],"security":[{"JWT":[]}]}},"/notifications/my/{notificationId}/read":{"patch":{"operationId":"CurrentUserNotificationController_markNotificationRead","summary":"","description":"Mark a notification as read for the current user.","parameters":[{"name":"notificationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"404":{"description":"Notification not found for current user"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponseDto"}}}}},"tags":["Current User Notifications"],"security":[{"JWT":[]}]}},"/notifications/my/{notificationId}/dismiss":{"patch":{"operationId":"CurrentUserNotificationController_dismissNotification","summary":"","description":"Dismiss a notification for the current user.","parameters":[{"name":"notificationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponseDto"}}}},"401":{"description":"The provided token is absent, invalid or expired"},"404":{"description":"Notification not found for current user"},"500":{"description":"Internal server error"},"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponseDto"}}}}},"tags":["Current User Notifications"],"security":[{"JWT":[]}]}},"/users/me/favorite-tracks":{"get":{"operationId":"FavoriteTrackController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FavoriteTrackResponseDto"}}}}}},"tags":["Current User"],"security":[{"JWT":[]}]},"post":{"operationId":"FavoriteTrackController_add","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FavoriteTrackCreateDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FavoriteTrackResponseDto"}}}}},"tags":["Current User"],"security":[{"JWT":[]}]},"delete":{"operationId":"FavoriteTrackController_remove","parameters":[{"name":"audioUrl","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Current User"],"security":[{"JWT":[]}]}}},"info":{"title":"MySoul Vibe API Docs","description":"MySoul Vibe API Docs","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"JWT":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"SignUpDto":{"type":"object","properties":{"email":{"type":"string","description":"The email of the user. Must be a valid email address. Will be converted to lowercase.","example":"user@example.com"},"firstName":{"type":"string","description":"The first name of the user.","example":"John"},"lastName":{"type":"string","description":"The last name of the user.","example":"Doe"},"gender":{"type":"string","description":"Gender of the user.","example":"MALE","enum":["MALE","FEMALE","NON_BINARY"]},"roles":{"type":"USER","enum":["USER"],"description":"The roles of the user. Must be an array of unique values. Must contain at least one value. Must only contain the value \"USER\".","example":["USER"]},"password":{"type":"string","description":"The password for the user.","example":"Password123!"},"passwordConfirm":{"type":"string","description":"The password for the user, repeated to ensure no typos.","example":"Password123!"}},"required":["email","roles","password","passwordConfirm"]},"SignInResponseDto":{"type":"object","properties":{"accessToken":{"type":"string","description":"The access token of the user.","example":"a1b2c3d4e5f6g7h8i9j0"},"refreshToken":{"type":"string","description":"The refresh token of the user.","example":"a1b2c3d4e5f6g7h8i9j0"}},"required":["accessToken","refreshToken"]},"PasswordResetRequestDto":{"type":"object","properties":{"email":{"type":"string","description":"The email of the user. Must be a valid email address. Will be converted to lowercase.","example":"user@example.com"}},"required":["email"]},"PasswordResetDto":{"type":"object","properties":{"token":{"type":"string","description":"The token sent to the user via email.","example":"a1b2c3d4e5f6g7h8i9j0"},"userId":{"type":"string","description":"The user ID of the user.","example":"a1bcd-12345-67890-12345"},"password":{"type":"string","description":"The new password for the user.","example":"Password123!"},"passwordConfirm":{"type":"string","description":"The new password for the user, repeated to ensure no typos.","example":"Password123!"}},"required":["token","userId","password","passwordConfirm"]},"PasswordResetViaCodeDto":{"type":"object","properties":{"code":{"type":"string","description":"The verification code sent to the user via email.","example":"123456"},"email":{"type":"string","description":"The email address of the user.","example":"user@example.com"},"password":{"type":"string","description":"The new password for the user.","example":"Password123!"},"passwordConfirm":{"type":"string","description":"The new password for the user, repeated to ensure no typos.","example":"Password123!"}},"required":["code","email","password","passwordConfirm"]},"ChangePasswordDto":{"type":"object","properties":{"oldPassword":{"type":"string","description":"The old password of the user.","example":"oldPassword123!"},"password":{"type":"string","description":"The new password of the user.","example":"newPassword123!"},"passwordConfirm":{"type":"string","description":"The new password of the user, repeated.","example":"newPassword123!"}},"required":["oldPassword","password","passwordConfirm"]},"LoginDto":{"type":"object","properties":{"email":{"type":"string","description":"The email of the user. Must be a valid email address. Will be converted to lowercase.","example":"user@example.com"},"password":{"type":"string","description":"The password of the user.","example":"Password123!"}},"required":["email","password"]},"RefreshDto":{"type":"object","properties":{"refreshToken":{"type":"string","description":"The refresh token of the user.","example":"a1b2c3d4e5f6g7h8i9j0"}},"required":["refreshToken"]},"VerifyUserDto":{"type":"object","properties":{"code":{"type":"string","description":"The verification code sent to the user via email. To verify the user email.","example":"123456"}},"required":["code"]},"ApiClientResponseDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"isActive":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","name","clientId","scopes","isActive","createdAt","updatedAt"]},"CreateApiClientDto":{"type":"object","properties":{"name":{"type":"string","description":"Display name for this API client account."},"scopes":{"default":[],"description":"Optional permission scopes assigned to this API client.","type":"array","items":{"type":"string"}}},"required":["name"]},"CreateApiClientResponseDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"isActive":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"clientSecret":{"type":"string","description":"Plain-text API client secret. This value is only returned on client creation."},"accessToken":{"type":"string","description":"Initial API JWT token issued for this client account."},"expiresInSeconds":{"type":"number"}},"required":["id","name","clientId","scopes","isActive","createdAt","updatedAt","clientSecret","accessToken","expiresInSeconds"]},"ApiClientTokenResponseDto":{"type":"object","properties":{"clientId":{"type":"string"},"clientName":{"type":"string"},"accessToken":{"type":"string"},"expiresInSeconds":{"type":"number"}},"required":["clientId","clientName","accessToken","expiresInSeconds"]},"ConnectedDeviceResponseDto":{"type":"object","properties":{"serialId":{"type":"string"},"lastStatus":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}},"required":["serialId","lastStatus","timestamp"]},"UserPrivateResponseDto":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"gender":{"type":"string"},"verified":{"type":"boolean"},"roles":{"type":"array","items":{"type":"object"}},"connectedDevice":{"$ref":"#/components/schemas/ConnectedDeviceResponseDto"}},"required":["id","email","firstName","lastName","gender","verified","roles","connectedDevice"]},"UpdateUserDto":{"type":"object","properties":{"gender":{"type":"string","description":"Gender","enum":["MALE","FEMALE","NON_BINARY"]},"firstName":{"type":"string"},"lastName":{"type":"string"}},"required":["gender","firstName","lastName"]},"CoherencePeriodDetailsResponseDto":{"type":"object","properties":{"status":{"type":"string","enum":["LOW","MODERATE","HIGH"]},"coherenceDescriptionDay":{"type":"string"},"coherenceDescriptionWeek":{"type":"string"},"coherenceDescriptionMonth":{"type":"string"}},"required":["status","coherenceDescriptionDay","coherenceDescriptionWeek","coherenceDescriptionMonth"]},"CoherenceStatusResponseDto":{"type":"object","properties":{"coherenceStatusItems":{"type":"object"},"coherencePeriodStatusDetails":{"$ref":"#/components/schemas/CoherencePeriodDetailsResponseDto"}},"required":["coherenceStatusItems","coherencePeriodStatusDetails"]},"ResilienceStatusResponseDto":{"type":"object","properties":{"status":{"default":null,"enum":["LOW","MODERATE","HIGH"],"type":"string"},"score":{"type":"number","default":null},"avgPositiveStateSpan":{"type":"number","default":null},"positiveStateSpanChange":{"type":"number","default":null},"avgNegativeStateSpan":{"type":"number","default":null},"negativeStateSpanChange":{"type":"number","default":null},"resilienceStatusDescription":{"type":"string","default":null}},"required":["status","score","avgPositiveStateSpan","positiveStateSpanChange","avgNegativeStateSpan","negativeStateSpanChange","resilienceStatusDescription"]},"TopVibeResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"efe212-efe212-efe212-efe212"},"vibe":{"enum":["Focus","Clarity","Gratitude","Balance","Inspiration","Present","Love","Compassion","Peaceful","Certain","Joyful","Anger","Competitive","Fear","Anxious","Insecurity","Sad"],"type":"string","example":"Inspiration"},"color":{"type":"string","example":"#fff30f"},"granularVibe":{"enum":["Engaged","Aligned","Purposeful","Insightful","Conscious","Attuned","Thankful","Generosity","Generous","Prosperous","Harmonious","Graceful","Stability","Stable","Creative","Curious","Enthusiastic","Capable","Centered","Grounded","Worthy","Connected","Passionate","Regard","Kindness","Forgiveness","Empathetic","Kind","Forgiving","Tranquility","Tranquil","Calm","Faithful","Intuitive","Empowered","Wise","Playful","Elated","Energized","Assertive","Motivated","Honorable","Determined","Abundant","Innovative","Aware","Safe","Brave","Trusting","Courage","Courageous","Composed","Strong","Confident","Proud","Hopeful","Optimistic","Happy","Upset","Annoyed","Contempt","Dominant","Insufficient","Envious","Afraid","Vulnerable","Dreadful","Worried","Confused","Overwhelmed","Weak","Doubtful","Inferior","Hopeless","Despair","Grief"],"type":"string","example":"Attuned"},"granularVibeColor":{"type":"string","example":"#fff30f"},"desiredGranular":{"nullable":true,"enum":["Engaged","Aligned","Purposeful","Insightful","Conscious","Attuned","Thankful","Generosity","Generous","Prosperous","Harmonious","Graceful","Stability","Stable","Creative","Curious","Enthusiastic","Capable","Centered","Grounded","Worthy","Connected","Passionate","Regard","Kindness","Forgiveness","Empathetic","Kind","Forgiving","Tranquility","Tranquil","Calm","Faithful","Intuitive","Empowered","Wise","Playful","Elated","Energized","Assertive","Motivated","Honorable","Determined","Abundant","Innovative","Aware","Safe","Brave","Trusting","Courage","Courageous","Composed","Strong","Confident","Proud","Hopeful","Optimistic","Happy","Upset","Annoyed","Contempt","Dominant","Insufficient","Envious","Afraid","Vulnerable","Dreadful","Worried","Confused","Overwhelmed","Weak","Doubtful","Inferior","Hopeless","Despair","Grief"],"type":"string","example":"Attuned"},"desiredGranularColor":{"type":"string","nullable":true,"example":"#fff30f"},"tunedVibeType":{"type":"string","enum":["DETECTED","INTENTION"],"example":"DETECTED"},"resonanceLevel":{"type":"string","enum":["LOW","MODERATE","HIGH"],"example":"MODERATE"},"keyOct":{"example":["DS4","GG3","CS4"],"type":"array","items":{"type":"string"}}},"required":["id","vibe","color","granularVibe","granularVibeColor","tunedVibeType","resonanceLevel","keyOct"]},"DetectedVibeResponseDto":{"type":"object","properties":{"vibe":{"type":"string","example":"Inspiration"}},"required":["vibe"]},"VibeCheckInResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"9aebcb70-166d-4bec-8711-48bb986973bc"},"detectedVibes":{"description":"The strongest vibes detected during analysis. In the case the vibe check-in is not completed, this field will be empty.","example":[{"vibe":"Inspiration","color":"#FF7500"},{"vibe":"Joyful","color":"#FF0FCF"},{"vibe":"Balance","color":"#008763"}],"type":"array","items":{"$ref":"#/components/schemas/DetectedVibeResponseDto"}},"state":{"type":"object","description":"The vibes tuned after check-in. If no tuning was made this field will be empty.","example":[{"vibe":"Balance","granularVibe":"Calm","tunedVibeType":"DETECTED","keyOct":["GG4","EE4"]},{"vibe":"Focus","granularVibe":"Composed","tunedVibeType":"INTENTION","keyOct":["AS4","AA4"]}]},"status":{"type":"object","description":"The status of the vibe check-in operation.","example":"SUCCESS"},"frequencies":{"example":[23.70689655172414,71.59961685823754,119.492337164751,167.3850574712644,215.2777777777778],"type":"array","items":{"type":"number"}},"magnitudes":{"example":[12824.54949819746,7154.921703965951,345943.1338235259,31576.34321267685,105981.9432074509],"type":"array","items":{"type":"number"}},"source":{"type":"object","description":"The source of the vibe check-in operation.","example":"RING"},"interaction":{"type":"object","description":"The interaction that triggered the vibe check-in operation.","example":"MANUAL"},"hrv":{"type":"number","description":"The heart rate variability (HRV) value detected during the vibe check-in operation.","example":98},"coherenceScore":{"type":"number","description":"Coherence score detected during the vibe check-in operation.","example":0.5},"temperature":{"type":"number","description":"The temperature value detected during the vibe check-in operation.","example":36.6},"totalAcceleration":{"type":"number","description":"Vector sum (magnitude) of total acceleration throughout session.","example":143},"mfcc":{"description":"Mel-frequency cepstral coefficients (MFCC) extracted from the voice sample.","example":[2.43,15.8,30,16.78],"type":"array","items":{"type":"number"}},"createdAt":{"format":"date-time","type":"string","example":"2021-08-04T15:00:00.000Z"}},"required":["id","detectedVibes","state","status","frequencies","magnitudes","source","interaction","hrv","coherenceScore","temperature","totalAcceleration","mfcc","createdAt"]},"VibeCheckInSessionWithCheckInsResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"a9d6689c-3a72-4abc-9d63-7f6ee4789d2c"},"createdAt":{"format":"date-time","type":"string","example":"2024-07-25T19:49:12.158Z"},"topVibes":{"example":[{"id":"defdef1-defdef1-defdef1-defdef1","vibe":"Inspiration","color":"#FF7500","granularVibe":"Aware","granularVibeColor":"#ee7500","tunedVibeType":"INTENTION","keyOct":["DS4","GG","CS2"]},{"id":"defdef1-defdef1-defdef1-defdef1","vibe":"Joyful","color":"#FF0FCF","granularVibe":"Composed","granularVibeColor":"#ee7500","tunedVibeType":"DETECTED","keyOct":["DS2","GG6","CS2"]},{"id":"defdef1-defdef1-defdef1-defdef1","vibe":"Balance","color":"#008763","granularVibe":"Aligned","granularVibeColor":"#ee7500","tunedVibeType":"DETECTED","keyOct":["DS4","GG3","CS4"]}],"type":"array","items":{"$ref":"#/components/schemas/TopVibeResponseDto"}},"availableVibes":{"example":[{"vibe":"Clarity","color":"#15C0FF","colorName":"Neon Electric Blue ","isBlocker":false,"resonanceLevelColors":{"high":{"color":"#ffffff","bubbleColor":"#ffffff"},"moderate":{"color":"#ffffff","bubbleColor":"#ffffff"},"low":{"color":"#ffffff","bubbleColor":"#ffffff"}},"granularVibes":[{"granularVibe":"Insightful","color":"#15C0FF"},{"granularVibe":"Conscious","color":"#15C0FF"},{"granularVibe":"Attuned","color":"#15C0FF"}]}],"type":"array","items":{"type":"object"}},"musicPrescription":{"type":"string","examples":["Love, Gratitude, Balance","Happy, Love, Clarity","Focus Intention Track","Tuned: Love, Gratitude, Balance"]},"source":{"type":"string","example":"RING","enum":["RING","APP"]},"interaction":{"type":"string","example":"AUTOMATED","enum":["AUTOMATED","MANUAL"]},"explanation":{"type":"string","example":"Your vibe highlights that you are in the embodiment of Focus, Clarity and Gratitude. When you are in a state of Focus, this suggests you are giving your full attention to something. When you are in a state of Clarity, this affirms you have clear perception and keen awareness. When you are in a state of Gratitude, this denotes your readiness to appreciate life and the beauty around you."},"vibeCheckIns":{"type":"array","items":{"$ref":"#/components/schemas/VibeCheckInResponseDto"}}},"required":["id","createdAt","topVibes","availableVibes","musicPrescription","source","interaction","explanation","vibeCheckIns"]},"ResilienceDetailsAudioSessionResponseDto":{"type":"object","properties":{"sessionStart":{"format":"date-time","type":"string"},"sessionEnd":{"format":"date-time","type":"string"},"audioTitle":{"type":"string"},"audioType":{"type":"object"},"audioArtist":{"type":"string"},"soundExperienceRecipeId":{"type":"string"},"artworkFileUrl":{"type":"string"}},"required":["sessionStart","sessionEnd","audioTitle","audioType","audioArtist","soundExperienceRecipeId","artworkFileUrl"]},"ResilienceDetailsPeriodResponseDto":{"type":"object","properties":{"from":{"format":"date-time","type":"string","example":"2021-08-01T00:00:00.000Z"},"to":{"format":"date-time","type":"string"},"resilienceStatus":{"enum":["LOW","MODERATE","HIGH"],"type":"string"},"checkInSessions":{"type":"array","items":{"$ref":"#/components/schemas/VibeCheckInSessionWithCheckInsResponseDto"}},"audioSessions":{"type":"array","items":{"$ref":"#/components/schemas/ResilienceDetailsAudioSessionResponseDto"}},"resilienceDescription":{"type":"string"}},"required":["from","to","resilienceStatus","checkInSessions","audioSessions","resilienceDescription"]},"ResilienceDetailsResponseDto":{"type":"object","properties":{"currentPeriod":{"type":"array","items":{"$ref":"#/components/schemas/ResilienceDetailsPeriodResponseDto"}},"previousPeriod":{"type":"array","items":{"$ref":"#/components/schemas/ResilienceDetailsPeriodResponseDto"}},"currentPeriodAudioSessions":{"type":"array","items":{"type":"object"}},"previousPeriodAudioSessions":{"type":"array","items":{"type":"object"}},"currentPeriodDescription":{"type":"object"},"previousPeriodDescription":{"type":"object"}},"required":["currentPeriod","previousPeriod","currentPeriodAudioSessions","previousPeriodAudioSessions","currentPeriodDescription","previousPeriodDescription"]},"ProminentVibeResponseDto":{"type":"object","properties":{"granularVibeColor":{"type":"string"},"color":{"type":"string"},"vibe":{"type":"string","enum":["Focus","Clarity","Gratitude","Balance","Inspiration","Present","Love","Compassion","Peaceful","Certain","Joyful","Anger","Competitive","Fear","Anxious","Insecurity","Sad"]},"granularVibe":{"type":"string","enum":["Engaged","Aligned","Purposeful","Insightful","Conscious","Attuned","Thankful","Generosity","Generous","Prosperous","Harmonious","Graceful","Stability","Stable","Creative","Curious","Enthusiastic","Capable","Centered","Grounded","Worthy","Connected","Passionate","Regard","Kindness","Forgiveness","Empathetic","Kind","Forgiving","Tranquility","Tranquil","Calm","Faithful","Intuitive","Empowered","Wise","Playful","Elated","Energized","Assertive","Motivated","Honorable","Determined","Abundant","Innovative","Aware","Safe","Brave","Trusting","Courage","Courageous","Composed","Strong","Confident","Proud","Hopeful","Optimistic","Happy","Upset","Annoyed","Contempt","Dominant","Insufficient","Envious","Afraid","Vulnerable","Dreadful","Worried","Confused","Overwhelmed","Weak","Doubtful","Inferior","Hopeless","Despair","Grief"]}},"required":["granularVibeColor","color","vibe","granularVibe"]},"CheckInHistoryResponseDto":{"type":"object","properties":{"periodProminentVibesHistory":{"type":"object","properties":{"items":{"required":true,"type":"array","items":{"type":"object"}}}},"periodProminentVibesDetails":{"type":"object","properties":{"prominentVibes":{"required":true,"type":"array","items":{"$ref":"#/components/schemas/ProminentVibeResponseDto"}},"descriptionDay":{"required":true,"type":"string"},"descriptionWeek":{"required":true,"type":"string"},"descriptionMonth":{"required":true,"type":"string"}}},"reportMetrics":{"type":"object"}},"required":["periodProminentVibesHistory","periodProminentVibesDetails","reportMetrics"]},"PageMetaDto":{"type":"object","properties":{"page":{"type":"number"},"take":{"type":"number"},"total":{"type":"number"}},"required":["page","take","total"]},"PageDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"array"}},"meta":{"$ref":"#/components/schemas/PageMetaDto"}},"required":["data","meta"]},"UserResponseDto":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"verified":{"type":"boolean"},"roles":{"type":"array","items":{"type":"object"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","email","firstName","lastName","verified","roles","createdAt","updatedAt"]},"CreateOrUpdateAdminDto":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"object"}},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"}},"required":["roles","email","firstName","lastName"]},"ConnectedDeviceUpsertDto":{"type":"object","properties":{"serialId":{"type":"string"},"lastStatus":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}},"required":["serialId","lastStatus","timestamp"]},"VibeCheckInFileUploadDto":{"type":"object","properties":{"voiceSampleFile":{"type":"string","format":"binary"}},"required":["voiceSampleFile"]},"VibeCheckInCreatedResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"9aebcb70-166d-4bec-8711-48bb986973bc"},"createdAt":{"format":"date-time","type":"string","example":"2021-08-04T15:00:00.000Z"}},"required":["id","createdAt"]},"VibeCheckInCreateMetadataDto":{"type":"object","properties":{"versionMajor":{"type":"number","description":"The major version of the vibe check-in metadata.","example":1},"versionMinor":{"type":"number","description":"The minor version of the vibe check-in metadata.","example":31},"status":{"type":"number","description":"The status of the vibe check-in operation.","example":1},"interaction":{"type":"number","description":"The interaction that triggered the vibe check-in operation.","example":1},"timestamp":{"type":"number","description":"Custom epoch: seconds since June 6, 2024 00:00 UTC.","example":604800},"crc16":{"type":"number","description":"The CRC16 checksum of the payload.","example":432}},"required":["versionMajor","versionMinor","status","interaction","timestamp","crc16"]},"VibeCheckInCreateDataDto":{"type":"object","properties":{"hrv":{"type":"number","description":"The heart rate variability (HRV) value detected during the vibe check-in operation.","example":98},"temperature":{"type":"number","description":"The temperature value detected during the vibe check-in operation.","example":36.6},"principalEmotions":{"type":"number","description":"A bitmask of vibes detected throughout session.","example":5},"coherenceScore":{"type":"number","description":"HRV-based calculation of coherence, 0.0 to 1.0","example":0.1}},"required":["hrv","temperature","principalEmotions","coherenceScore"]},"VibeCheckInCreateMfccDto":{"type":"object","properties":{"data":{"description":"Mel-frequency cepstral coefficients (MFCC) extracted from the voice sample.","example":[2.43,15.8,30,16.78],"type":"array","items":{"type":"number"}},"length":{"type":"number","description":"The length of the MFCC array.","example":4}},"required":["data","length"]},"VibeCheckInCreateDto":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/VibeCheckInCreateMetadataDto"},"data":{"$ref":"#/components/schemas/VibeCheckInCreateDataDto"},"mfcc":{"$ref":"#/components/schemas/VibeCheckInCreateMfccDto"}},"required":["metadata","data","mfcc"]},"VibeCheckInSessionResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"a9d6689c-3a72-4abc-9d63-7f6ee4789d2c"},"createdAt":{"format":"date-time","type":"string","example":"2024-07-25T19:49:12.158Z"},"topVibes":{"example":[{"id":"defdef1-defdef1-defdef1-defdef1","vibe":"Inspiration","color":"#FF7500","granularVibe":"Aware","granularVibeColor":"#ee7500","tunedVibeType":"INTENTION","keyOct":["DS4","GG","CS2"]},{"id":"defdef1-defdef1-defdef1-defdef1","vibe":"Joyful","color":"#FF0FCF","granularVibe":"Composed","granularVibeColor":"#ee7500","tunedVibeType":"DETECTED","keyOct":["DS2","GG6","CS2"]},{"id":"defdef1-defdef1-defdef1-defdef1","vibe":"Balance","color":"#008763","granularVibe":"Aligned","granularVibeColor":"#ee7500","tunedVibeType":"DETECTED","keyOct":["DS4","GG3","CS4"]}],"type":"array","items":{"$ref":"#/components/schemas/TopVibeResponseDto"}},"availableVibes":{"example":[{"vibe":"Clarity","color":"#15C0FF","colorName":"Neon Electric Blue ","isBlocker":false,"resonanceLevelColors":{"high":{"color":"#ffffff","bubbleColor":"#ffffff"},"moderate":{"color":"#ffffff","bubbleColor":"#ffffff"},"low":{"color":"#ffffff","bubbleColor":"#ffffff"}},"granularVibes":[{"granularVibe":"Insightful","color":"#15C0FF"},{"granularVibe":"Conscious","color":"#15C0FF"},{"granularVibe":"Attuned","color":"#15C0FF"}]}],"type":"array","items":{"type":"object"}},"musicPrescription":{"type":"string","examples":["Love, Gratitude, Balance","Happy, Love, Clarity","Focus Intention Track","Tuned: Love, Gratitude, Balance"]},"source":{"type":"string","example":"RING","enum":["RING","APP"]},"interaction":{"type":"string","example":"AUTOMATED","enum":["AUTOMATED","MANUAL"]},"explanation":{"type":"string","example":"Your vibe highlights that you are in the embodiment of Focus, Clarity and Gratitude. When you are in a state of Focus, this suggests you are giving your full attention to something. When you are in a state of Clarity, this affirms you have clear perception and keen awareness. When you are in a state of Gratitude, this denotes your readiness to appreciate life and the beauty around you."}},"required":["id","createdAt","topVibes","availableVibes","musicPrescription","source","interaction","explanation"]},"VibeCheckInCreateTunedVibeDto":{"type":"object","properties":{"vibe":{"type":"string","enum":["Focus","Clarity","Gratitude","Balance","Inspiration","Present","Love","Compassion","Peaceful","Certain","Joyful","Anger","Competitive","Fear","Anxious","Insecurity","Sad"]},"granularVibe":{"type":"string","enum":["Engaged","Aligned","Purposeful","Insightful","Conscious","Attuned","Thankful","Generosity","Generous","Prosperous","Harmonious","Graceful","Stability","Stable","Creative","Curious","Enthusiastic","Capable","Centered","Grounded","Worthy","Connected","Passionate","Regard","Kindness","Forgiveness","Empathetic","Kind","Forgiving","Tranquility","Tranquil","Calm","Faithful","Intuitive","Empowered","Wise","Playful","Elated","Energized","Assertive","Motivated","Honorable","Determined","Abundant","Innovative","Aware","Safe","Brave","Trusting","Courage","Courageous","Composed","Strong","Confident","Proud","Hopeful","Optimistic","Happy","Upset","Annoyed","Contempt","Dominant","Insufficient","Envious","Afraid","Vulnerable","Dreadful","Worried","Confused","Overwhelmed","Weak","Doubtful","Inferior","Hopeless","Despair","Grief"]},"desiredGranular":{"type":"string","enum":["Engaged","Aligned","Purposeful","Insightful","Conscious","Attuned","Thankful","Generosity","Generous","Prosperous","Harmonious","Graceful","Stability","Stable","Creative","Curious","Enthusiastic","Capable","Centered","Grounded","Worthy","Connected","Passionate","Regard","Kindness","Forgiveness","Empathetic","Kind","Forgiving","Tranquility","Tranquil","Calm","Faithful","Intuitive","Empowered","Wise","Playful","Elated","Energized","Assertive","Motivated","Honorable","Determined","Abundant","Innovative","Aware","Safe","Brave","Trusting","Courage","Courageous","Composed","Strong","Confident","Proud","Hopeful","Optimistic","Happy","Upset","Annoyed","Contempt","Dominant","Insufficient","Envious","Afraid","Vulnerable","Dreadful","Worried","Confused","Overwhelmed","Weak","Doubtful","Inferior","Hopeless","Despair","Grief"]},"tunedVibeType":{"type":"object"},"resonanceLevel":{"type":"object","default":"MODERATE"},"keyOct":{"type":"array","items":{"type":"string"}}},"required":["vibe","granularVibe","tunedVibeType","resonanceLevel","keyOct"]},"VibeCheckInTuneDto":{"type":"object","properties":{"topVibes":{"type":"array","items":{"$ref":"#/components/schemas/VibeCheckInCreateTunedVibeDto"}}},"required":["topVibes"]},"AudioSessionCreateDto":{"type":"object","properties":{"referenceAudioId":{"type":"string","description":"The id of sound experience recipe or sound journey file"},"event":{"type":"string","enum":["START","PAUSE","RESUME","STOP","COMPLETE"],"description":"The event that triggered the audio session"},"audioType":{"type":"string","enum":["SOUND_HEALING","SOUND_JOURNEY","PRESCRIBED_MUSIC"],"description":"The type of audio that was played"}},"required":["referenceAudioId","event","audioType"]},"SoundExperiencePackageAvailableFilterValuesResponseDto":{"type":"object","properties":{"intention":{"type":"array","items":{"type":"string"}},"keys":{"type":"array","items":{"type":"string"}},"tempo":{"type":"array","items":{"type":"string"}},"layer":{"type":"array","items":{"type":"string"}},"tone":{"type":"array","items":{"type":"string"}},"voice":{"type":"array","items":{"type":"string"}},"voiceSupport":{"type":"array","items":{"type":"string"}},"types":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"status":{"type":"array","items":{"type":"object"}}},"required":["status"]},"SoundExperiencePackageFileResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"42f2b1b0-4b3b-4b3b-8b3b-4b3b4b3b4b3b"},"fileName":{"type":"string","example":"DE_Flute01_005_EE0_FL_240604_01.wav"},"originalFileName":{"type":"string","example":"DE_Flute01_005_EE0_FL_240604_01.wav"},"intention":{"type":"string","example":"Compassion"},"keys":{"type":"string","example":"BB4"},"tempo":{"type":"string","example":"MD_120bpm"},"fileType":{"type":"string","example":"OPENING","enum":["MIX_DOWN","CLOSING","ELEMENTS","THEME","ADDITIONAL_TONES","VOICE_SUPPORT","DETECTED_EMOTION_TONES","INTENT_SOUND_HEALING","NEUTRAL_SOUND_HEALING","OPENING","ARTWORK"]},"layer":{"type":"string"},"tone":{"type":"string","example":"Synth 01"},"voice":{"type":"string","example":"Female"},"voiceSupport":{"type":"string","example":"Mantra"},"types":{"type":"string","example":"Beach"},"category":{"type":"string","example":"Birds"},"url":{"type":"string","example":"https://example.com/sound-experience-package/42f2b1b0-4b3b-4b3b-8b3b-4b3b4b3.wav","description":"URL to download and play the sound experience package file"}},"required":["id","fileName","originalFileName","intention","keys","tempo","fileType","layer","tone","voice","voiceSupport","types","category","url"]},"SoundExperiencePackageResponseDto":{"type":"object","properties":{"id":{"type":"string"},"packageFileName":{"type":"string"},"originalPackageFileName":{"type":"string"},"tempo":{"type":"string"},"keys":{"type":"string"},"additionalInformation":{"type":"string"},"status":{"type":"object"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"soundExperiencePackageFiles":{"$ref":"#/components/schemas/SoundExperiencePackageFileResponseDto"},"packageName":{"type":"string"},"creators":{"type":"string"},"artists":{"type":"string"},"creationDate":{"format":"date-time","type":"string"},"version":{"type":"string"},"audioFilesCount":{"type":"number"},"volumeLevelEqualization":{"type":"number"}},"required":["id","packageFileName","originalPackageFileName","tempo","keys","additionalInformation","status","createdAt","updatedAt","soundExperiencePackageFiles","packageName","creators","artists","creationDate","version","audioFilesCount","volumeLevelEqualization"]},"UpdateSoundExperiencePackageDto":{"type":"object","properties":{"status":{"type":"object"}},"required":["status"]},"RecommendedSoundExperiencePackagePublicResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"69aed9f7-8675-4f63-855f-59a022fc820a"},"packageFileName":{"type":"string","example":"0540e6b1-df0b-4eed-be61-7554fff5a210.zip"},"originalPackageFileName":{"type":"string","example":"NS_Vocal_GG_MD_120bpm_Title001_Artist_EJ.zip"},"tempo":{"type":"string","example":"MD_120bpm"},"keys":{"type":"string","example":"001_GG"},"additionalInformation":{"type":"string","example":"Artist-JohnDoe"},"status":{"type":"string","example":"PUBLISHED","enum":["DRAFT","PUBLISHED"]},"createdAt":{"format":"date-time","type":"string","example":"2026-08-01T10:06:23.818Z"},"updatedAt":{"format":"date-time","type":"string","example":"2026-08-01T10:06:23.823Z"},"packageName":{"type":"string","example":"Sound healing track 1"},"creators":{"type":"string","example":"Marta Smith"},"artists":{"type":"string","example":"John Doe"},"creationDate":{"format":"date-time","type":"string","example":"2026-08-01T10:06:23.824Z"},"version":{"type":"string","example":"1"},"audioFilesCount":{"type":"number","example":464},"volumeLevelEqualization":{"type":"number","example":1},"soundHealing":{"type":"string"},"detectedEmotions":{"type":"string","example":"Sy, FL, SB"},"tones":{"type":"string","example":"Synth 01, Flute 01, Singing Bowl 01, Flute 02"},"voice":{"type":"string","example":"Female, Male, Neutral, None"},"voiceSupport":{"type":"string"},"additionalTones":{"type":"string"},"theme":{"type":"string","example":"Sunrise, Forest, Winter, Beach, Sunset, Park"},"elements":{"type":"string","example":"Water, Rain, Wind, Birds"},"soundExperiencePackageFiles":{"type":"array","items":{"$ref":"#/components/schemas/SoundExperiencePackageFileResponseDto"}},"trackTitle":{"type":"string","example":"Tuned: Love, Gratitude, Balance"}},"required":["id","packageFileName","originalPackageFileName","tempo","keys","additionalInformation","status","createdAt","updatedAt","packageName","creators","artists","creationDate","version","audioFilesCount","volumeLevelEqualization","soundHealing","detectedEmotions","tones","voice","voiceSupport","additionalTones","theme","elements","soundExperiencePackageFiles","trackTitle"]},"SoundExperiencePackagePublicResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"69aed9f7-8675-4f63-855f-59a022fc820a"},"packageFileName":{"type":"string","example":"0540e6b1-df0b-4eed-be61-7554fff5a210.zip"},"originalPackageFileName":{"type":"string","example":"NS_Vocal_GG_MD_120bpm_Title001_Artist_EJ.zip"},"tempo":{"type":"string","example":"MD_120bpm"},"keys":{"type":"string","example":"001_GG"},"additionalInformation":{"type":"string","example":"Artist-JohnDoe"},"status":{"type":"string","example":"PUBLISHED","enum":["DRAFT","PUBLISHED"]},"createdAt":{"format":"date-time","type":"string","example":"2026-08-01T10:06:23.818Z"},"updatedAt":{"format":"date-time","type":"string","example":"2026-08-01T10:06:23.823Z"},"packageName":{"type":"string","example":"Sound healing track 1"},"creators":{"type":"string","example":"Marta Smith"},"artists":{"type":"string","example":"John Doe"},"creationDate":{"format":"date-time","type":"string","example":"2026-08-01T10:06:23.824Z"},"version":{"type":"string","example":"1"},"audioFilesCount":{"type":"number","example":464},"volumeLevelEqualization":{"type":"number","example":1},"soundHealing":{"type":"string"},"detectedEmotions":{"type":"string","example":"Sy, FL, SB"},"tones":{"type":"string","example":"Synth 01, Flute 01, Singing Bowl 01, Flute 02"},"voice":{"type":"string","example":"Female, Male, Neutral, None"},"voiceSupport":{"type":"string"},"additionalTones":{"type":"string"},"theme":{"type":"string","example":"Sunrise, Forest, Winter, Beach, Sunset, Park"},"elements":{"type":"string","example":"Water, Rain, Wind, Birds"},"soundExperiencePackageFiles":{"type":"array","items":{"$ref":"#/components/schemas/SoundExperiencePackageFileResponseDto"}}},"required":["id","packageFileName","originalPackageFileName","tempo","keys","additionalInformation","status","createdAt","updatedAt","packageName","creators","artists","creationDate","version","audioFilesCount","volumeLevelEqualization","soundHealing","detectedEmotions","tones","voice","voiceSupport","additionalTones","theme","elements","soundExperiencePackageFiles"]},"SoundExperiencePackagePublicSettingsDto":{"type":"object","properties":{"trackLength":{"type":"array","example":["3m","6m","9m"],"items":{"type":"string","enum":["3m","6m","9m"]}},"openAndClosingVoice":{"example":["Male","Female","Neutral","None"],"type":"array","items":{"type":"string"}},"instrumentType":{"example":["Synth 01","Flute 01","Singing Bowl 01","Flute 02"],"type":"array","items":{"type":"string"}},"voiceOverSupport":{"example":[{"voice":"Female","voiceSupport":"Mantra"},{"voice":"Female","voiceSupport":"Breathe"},{"voice":"Male","voiceSupport":"Mantra"},{"voice":"Male","voiceSupport":"Breathe"}],"type":"array","items":{"type":"object"}},"intention":{"example":["Relax","Sleep","Focus","Meditate"],"type":"array","items":{"type":"string"}},"themes":{"example":["Sunrise","Forest","Winter","Beach","Sunset","Park"],"type":"array","items":{"type":"string"}},"elements":{"example":["Wind","Rain","Water","Birds"],"type":"array","items":{"type":"string"}}},"required":["trackLength","openAndClosingVoice","instrumentType","voiceOverSupport","intention","themes","elements"]},"SoundExperiencePackageContentResponseDto":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"StreamableFile":{"type":"object","properties":{}},"SoundExperienceRecipePublicResponseDto":{"type":"object","properties":{"id":{"type":"string"},"trackLength":{"type":"string"},"status":{"type":"string"},"soundExperiencePackageId":{"type":"object"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"url":{"type":"string"}},"required":["id","trackLength","status","soundExperiencePackageId","createdAt","updatedAt"]},"CreateSoundExperienceRecipeIntentionDto":{"type":"object","properties":{"vibe":{"enum":["Focus","Clarity","Gratitude","Balance","Inspiration","Present","Love","Compassion","Peaceful","Certain","Joyful","Anger","Competitive","Fear","Anxious","Insecurity","Sad"],"type":"string","example":"Compassion"},"granularVibe":{"enum":["Engaged","Aligned","Purposeful","Insightful","Conscious","Attuned","Thankful","Generosity","Generous","Prosperous","Harmonious","Graceful","Stability","Stable","Creative","Curious","Enthusiastic","Capable","Centered","Grounded","Worthy","Connected","Passionate","Regard","Kindness","Forgiveness","Empathetic","Kind","Forgiving","Tranquility","Tranquil","Calm","Faithful","Intuitive","Empowered","Wise","Playful","Elated","Energized","Assertive","Motivated","Honorable","Determined","Abundant","Innovative","Aware","Safe","Brave","Trusting","Courage","Courageous","Composed","Strong","Confident","Proud","Hopeful","Optimistic","Happy","Upset","Annoyed","Contempt","Dominant","Insufficient","Envious","Afraid","Vulnerable","Dreadful","Worried","Confused","Overwhelmed","Weak","Doubtful","Inferior","Hopeless","Despair","Grief"],"type":"string","example":"Connected"},"resonanceLevel":{"type":"string","default":"MODERATE","enum":["LOW","MODERATE","HIGH"],"example":"MODERATE"},"tunedVibeType":{"type":"string","default":"DETECTED","enum":["DETECTED","INTENTION"],"example":"DETECTED"},"desiredGranular":{"type":"string","enum":["Engaged","Aligned","Purposeful","Insightful","Conscious","Attuned","Thankful","Generosity","Generous","Prosperous","Harmonious","Graceful","Stability","Stable","Creative","Curious","Enthusiastic","Capable","Centered","Grounded","Worthy","Connected","Passionate","Regard","Kindness","Forgiveness","Empathetic","Kind","Forgiving","Tranquility","Tranquil","Calm","Faithful","Intuitive","Empowered","Wise","Playful","Elated","Energized","Assertive","Motivated","Honorable","Determined","Abundant","Innovative","Aware","Safe","Brave","Trusting","Courage","Courageous","Composed","Strong","Confident","Proud","Hopeful","Optimistic","Happy","Upset","Annoyed","Contempt","Dominant","Insufficient","Envious","Afraid","Vulnerable","Dreadful","Worried","Confused","Overwhelmed","Weak","Doubtful","Inferior","Hopeless","Despair","Grief"]}},"required":["vibe","resonanceLevel","tunedVibeType"]},"CreateSoundExperienceRecipeDto":{"type":"object","properties":{"soundExperiencePackageId":{"type":"string"},"intention":{"type":"array","items":{"type":"string"}},"vibes":{"type":"array","items":{"$ref":"#/components/schemas/CreateSoundExperienceRecipeIntentionDto"}},"validateEitherIntentionOrVibesPresent":{"type":"boolean"},"voice":{"type":"object","default":"Female"},"trackLength":{"type":"string","default":"3m","enum":["3m","6m","9m"]},"instrument":{"type":"object","default":"Singing Bowl 01"}},"required":["soundExperiencePackageId","validateEitherIntentionOrVibesPresent","voice","trackLength","instrument"]},"CreateSampleDto":{"type":"object","properties":{"soundExperiencePackageFileId":{"type":"string"},"sampleOrderedPosition":{"type":"number","minimum":0},"samplePositionInTrack":{"type":"object"},"volumeLevel":{"type":"object","default":1},"milisecondsOffset":{"type":"object","default":0,"minimum":0}},"required":["soundExperiencePackageFileId","sampleOrderedPosition","samplePositionInTrack","volumeLevel","milisecondsOffset"]},"CreateSoundExperienceRecipeV2Dto":{"type":"object","properties":{"soundExperiencePackageId":{"type":"string"},"theme":{"type":"array","items":{"$ref":"#/components/schemas/CreateSampleDto"}},"elements":{"type":"array","items":{"$ref":"#/components/schemas/CreateSampleDto"}},"additionalTones":{"type":"array","items":{"$ref":"#/components/schemas/CreateSampleDto"}},"intentSoundHealing":{"type":"array","items":{"$ref":"#/components/schemas/CreateSampleDto"}},"detectedEmotionTones":{"type":"array","items":{"$ref":"#/components/schemas/CreateSampleDto"}},"voiceSupport":{"type":"array","items":{"$ref":"#/components/schemas/CreateSampleDto"}},"neutralSoundHealing":{"type":"array","items":{"$ref":"#/components/schemas/CreateSampleDto"}},"trackLength":{"type":"string"},"requestedVoice":{"type":"string"},"resolvedInstrumentTone":{"type":"string"}},"required":["soundExperiencePackageId","theme","elements","additionalTones","intentSoundHealing","detectedEmotionTones","voiceSupport","neutralSoundHealing","trackLength"]},"CreateSoundExperienceRecipeMixdownDto":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"SoundJourneyResponseDto":{"type":"object","properties":{"id":{"type":"string"},"artist":{"type":"string"},"vibe":{"type":"string"},"title":{"type":"string"},"status":{"type":"object"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"soundJourneyFiles":{"type":"array","items":{"type":"object"}}},"required":["id","artist","vibe","title","status","createdAt","updatedAt","soundJourneyFiles"]},"SoundJourneyUpdateDto":{"type":"object","properties":{"status":{"type":"object"}},"required":["status"]},"SoundJourneyPublicResponseDto":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"trackLength":{"type":"string"},"artist":{"type":"string"},"vibe":{"type":"string"},"bitRate":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"audioFileUrl":{"type":"string"},"artworkUrl":{"type":"string"}},"required":["id","title","trackLength","artist","vibe","bitRate","createdAt","updatedAt","audioFileUrl","artworkUrl"]},"BackgroundAudioResponseDto":{"type":"object","properties":{"id":{"type":"string"},"backgroundAudioName":{"type":"string"},"fileName":{"type":"string"},"description":{"type":"string"},"fileLocation":{"type":"string"},"xmlFileLocation":{"type":"string"},"status":{"type":"object"},"tags":{"type":"array","items":{"type":"string"}},"creators":{"type":"string"},"packageCreationDate":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","backgroundAudioName","fileName","description","fileLocation","xmlFileLocation","status","tags","creators","packageCreationDate","createdAt","updatedAt"]},"UpdateBackgroundAudioDto":{"type":"object","properties":{"status":{"type":"object"}},"required":["status"]},"NotificationDispatchTriggerResponseDto":{"type":"object","properties":{"ranAt":{"format":"date-time","type":"string"},"totalPending":{"type":"number"},"simulatedDispatchCount":{"type":"number"},"simulatedNotificationIds":{"type":"array","items":{"type":"string"}},"sentCount":{"type":"number"},"failedCount":{"type":"number"},"retryScheduledCount":{"type":"number"},"skippedCount":{"type":"number"}},"required":["ranAt","totalPending","simulatedDispatchCount","simulatedNotificationIds","sentCount","failedCount","retryScheduledCount","skippedCount"]},"NotificationGenerationTriggerResponseDto":{"type":"object","properties":{"ranAt":{"format":"date-time","type":"string"},"evaluatedUsers":{"type":"number"},"createdCount":{"type":"number"},"createdByType":{"type":"object","additionalProperties":{"type":"number"}},"skippedByPreference":{"type":"number"},"skippedByQuietHours":{"type":"number"},"skippedByDailyCap":{"type":"number"},"skippedByCooldown":{"type":"number"}},"required":["ranAt","evaluatedUsers","createdCount","createdByType","skippedByPreference","skippedByQuietHours","skippedByDailyCap","skippedByCooldown"]},"NotificationRunCycleTriggerResponseDto":{"type":"object","properties":{"triggeredAt":{"format":"date-time","type":"string"},"executed":{"type":"boolean"},"skipReason":{"type":"string","nullable":true},"generation":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/NotificationGenerationTriggerResponseDto"}]},"dispatch":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/NotificationDispatchTriggerResponseDto"}]}},"required":["triggeredAt","executed","skipReason","generation","dispatch"]},"NotificationAdminPushTokenResponseDto":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"userEmail":{"type":"string"},"userFirstName":{"type":"string","nullable":true},"userLastName":{"type":"string","nullable":true},"token":{"type":"string"},"platform":{"type":"string","enum":["IOS","ANDROID"]},"isActive":{"type":"boolean"},"lastUsedAt":{"format":"date-time","type":"string","nullable":true},"invalidatedAt":{"format":"date-time","type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","userId","userEmail","userFirstName","userLastName","token","platform","isActive","lastUsedAt","invalidatedAt","createdAt","updatedAt"]},"NotificationAdminCancelRetriesDto":{"type":"object","properties":{"cancelAllRetries":{"type":"object","default":false,"description":"When true, cancel all notifications currently in RETRY_SCHEDULED, regardless of lastError value."},"lastError":{"type":"string","default":"none:PUSH_PROVIDER_DISABLED","description":"Exact lastError value to match when cancelAllRetries=false. Defaults to none:PUSH_PROVIDER_DISABLED."}}},"NotificationAdminCancelRetriesResponseDto":{"type":"object","properties":{"ranAt":{"format":"date-time","type":"string"},"cancelAllRetries":{"type":"boolean"},"lastErrorFilter":{"type":"string","nullable":true},"cancelledCount":{"type":"number"}},"required":["ranAt","cancelAllRetries","lastErrorFilter","cancelledCount"]},"UserPushTokenResponseDto":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"token":{"type":"string"},"platform":{"type":"string","enum":["IOS","ANDROID"]},"isActive":{"type":"boolean"},"lastUsedAt":{"format":"date-time","type":"string","nullable":true},"invalidatedAt":{"format":"date-time","type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","userId","token","platform","isActive","lastUsedAt","invalidatedAt","createdAt","updatedAt"]},"UpsertUserPushTokenDto":{"type":"object","properties":{"token":{"type":"string"},"platform":{"type":"string","enum":["IOS","ANDROID"]}},"required":["token","platform"]},"DeactivateUserPushTokenDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"NotificationResponseDto":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["CHECK_IN","MANTRA","PROGRESS","INTENTIONS","RECOMMENDATIONS"]},"status":{"type":"string","enum":["NOT_SENT","SENT","FAILED","CANCELLED","RETRY_SCHEDULED"]},"messageKey":{"type":"string"},"messageText":{"type":"string"},"metadata":{"type":"object"},"scheduledAt":{"format":"date-time","type":"string","nullable":true},"sentAt":{"format":"date-time","type":"string","nullable":true},"openedAt":{"format":"date-time","type":"string","nullable":true},"readAt":{"format":"date-time","type":"string","nullable":true},"dismissedAt":{"format":"date-time","type":"string","nullable":true},"attemptCount":{"type":"number"},"lastError":{"type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","type","status","messageKey","messageText","metadata","scheduledAt","sentAt","openedAt","readAt","dismissedAt","attemptCount","lastError","createdAt","updatedAt"]},"UserNotificationPreferenceResponseDto":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"notificationsEnabled":{"type":"boolean"},"checkInEnabled":{"type":"boolean"},"mantraEnabled":{"type":"boolean"},"progressEnabled":{"type":"boolean"},"intentionsEnabled":{"type":"boolean"},"recommendationsEnabled":{"type":"boolean"},"quietHoursEnabled":{"type":"boolean"},"quietHoursStartHour":{"type":"number","nullable":true},"quietHoursEndHour":{"type":"number","nullable":true},"timezoneOffsetMinutes":{"type":"number"},"maxNotificationsPerDay":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","userId","notificationsEnabled","checkInEnabled","mantraEnabled","progressEnabled","intentionsEnabled","recommendationsEnabled","quietHoursEnabled","quietHoursStartHour","quietHoursEndHour","timezoneOffsetMinutes","maxNotificationsPerDay","createdAt","updatedAt"]},"UpdateUserNotificationPreferenceDto":{"type":"object","properties":{"notificationsEnabled":{"type":"boolean"},"checkInEnabled":{"type":"boolean"},"mantraEnabled":{"type":"boolean"},"progressEnabled":{"type":"boolean"},"intentionsEnabled":{"type":"boolean"},"recommendationsEnabled":{"type":"boolean"},"quietHoursEnabled":{"type":"boolean"},"quietHoursStartHour":{"type":"number","nullable":true,"minimum":0,"maximum":23},"quietHoursEndHour":{"type":"number","nullable":true,"minimum":0,"maximum":23},"timezoneOffsetMinutes":{"type":"number","minimum":-720,"maximum":840},"maxNotificationsPerDay":{"type":"number","minimum":1,"maximum":50}}},"TheaFileResponseDto":{"type":"object","properties":{"id":{"type":"string"},"fileName":{"type":"string"},"originalFileName":{"type":"string"},"status":{"type":"object"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"tags":{"type":"array","items":{"type":"string"}},"fileType":{"type":"object"},"vibe":{"type":"object"},"granularVibe":{"type":"object"},"keyOct":{"type":"object"},"resonanceLevel":{"type":"object"},"url":{"type":"string"}},"required":["id","fileName","originalFileName","status","createdAt","updatedAt","tags","fileType","vibe","granularVibe","keyOct","resonanceLevel","url"]},"CreateTheaFileDto":{"type":"object","properties":{"status":{"type":"object"},"tags":{"type":"array","items":{"type":"string"}}},"required":["status","tags"]},"UpdateTheaFileDto":{"type":"object","properties":{"status":{"type":"object"}},"required":["status"]},"AdminAnalyticDashboardResponseDto":{"type":"object","properties":{"totalSounds":{"type":"number","example":100,"description":"Total number of sounds created by mobile app users"},"totalCountries":{"type":"number","example":100,"description":"Total number of countries where mobile app is used"},"totalSessions":{"type":"number","example":100,"description":"Total number of sessions by mobile app users"},"averageHrv":{"type":"number","example":67,"description":"Average HRV of mobile app users"},"newUsers":{"type":"number","example":100,"description":"Total number of new users"}},"required":["totalSounds","totalCountries","totalSessions","averageHrv","newUsers"]},"UserSignUpAnalyticsDto":{"type":"object","properties":{"registered":{"type":"number","description":"The total number of registered users","example":150},"nonRegistered":{"type":"number","description":"The total number of non-registered users","example":30}},"required":["registered","nonRegistered"]},"UserSessionDto":{"type":"object","properties":{"withRing":{"type":"number","description":"Number of sessions with ring","example":42},"withoutRing":{"type":"number","description":"Number of sessions without ring","example":13}},"required":["withRing","withoutRing"]},"SubscriptionDetailsDto":{"type":"object","properties":{"paid":{"type":"number","description":"Number of paid subscriptions","example":42},"free":{"type":"number","description":"Number of free subscriptions","example":100}},"required":["paid","free"]},"AdminUserAnalyticResponseDto":{"type":"object","properties":{"newUsers":{"type":"number","description":"Number of new users","example":42},"repetitiveUsers":{"type":"number","description":"Number of returning users","example":156},"newSubscribers":{"type":"number","description":"Number of new subscribers","example":25},"userSignUps":{"description":"Analytics data about user sign ups","allOf":[{"$ref":"#/components/schemas/UserSignUpAnalyticsDto"}]},"userSessions":{"description":"User session statistics","allOf":[{"$ref":"#/components/schemas/UserSessionDto"}]},"usersWithRings":{"type":"number","description":"Number of users who have rings","example":89},"usersWithoutRings":{"type":"number","description":"Number of users who don't have rings","example":34},"subscriptionDetails":{"description":"Details about user subscriptions","allOf":[{"$ref":"#/components/schemas/SubscriptionDetailsDto"}]}},"required":["newUsers","repetitiveUsers","newSubscribers","userSignUps","userSessions","usersWithRings","usersWithoutRings","subscriptionDetails"]},"TopFiveItemsDto":{"type":"object","properties":{"songs":{"type":"object","description":"Array of top 5 most played songs with their total appearances","example":[{"audioSession":{"id":1,"title":"Calm meditation"},"totalAppearances":42}]},"intentions":{"type":"object","description":"Array of top 5 most selected intentions with their appearance count"},"vibes":{"type":"object","description":"Array of top 5 most selected vibes with their appearance count"}},"required":["songs","intentions","vibes"]},"AdminUsageAnalyticResponseDto":{"type":"object","properties":{"top5":{"description":"Top 5 most used items","allOf":[{"$ref":"#/components/schemas/TopFiveItemsDto"}]},"averageLightScore":{"type":"number","description":"Average light score from all sessions","example":85.5},"vokaturi":{"description":"Emotional tone analysis results","example":[{"tone":"Joyful","totalAppearances":45},{"tone":"Sad","totalAppearances":30}],"type":"array","items":{"type":"string"}},"meditationByLocation":{"type":"object","description":"Meditation statistics by location"},"averageHrv":{"type":"number","description":"Average Heart Rate Variability","example":75.2},"averageCoherenceScore":{"type":"number","description":"Average coherence score from all sessions","example":8.4},"averageResilienceScore":{"type":"number","description":"Average resilience score from all sessions","example":0.1},"averageResilienceStatus":{"enum":["LOW","MODERATE","HIGH"],"type":"string","description":"Average resilience score from all sessions","example":"HIGH"}},"required":["top5","averageLightScore","vokaturi","meditationByLocation","averageHrv","averageCoherenceScore","averageResilienceScore","averageResilienceStatus"]},"AdminAnalyticUserSessionResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Id of the user session","example":"fffff-fffff-fffff-fffff"},"userId":{"type":"string","description":"Id of the user","example":"fffff-fffff-fffff-fffff"},"startedAt":{"format":"date-time","type":"string","description":"Session start datetime","example":"2026-08-01T10:06:20.861Z"},"endedAt":{"format":"date-time","type":"string","description":"Session end datetime","example":"2026-08-01T10:06:20.861Z"},"country":{"type":"string","description":"Country code where session was started","example":"US"},"city":{"type":"string","description":"City where session was started","example":"New York"},"location":{"type":"object","description":"Location coordinates where session was started","example":{"country":"US","city":"New York","continent":"NA","latitude":65.021123,"longitude":122.3245677}},"resilienceStatus":{"enum":["LOW","MODERATE","HIGH"],"type":"string","description":"Resilience status calculated from vibe check-ins","example":"HIGH","nullable":true},"vibeCheckInSessions":{"description":"Array of vibe check-in sessions related to this user session","type":"array","items":{"$ref":"#/components/schemas/VibeCheckInSessionWithCheckInsResponseDto"}},"avgHrv":{"type":"number","description":"Average HRV value from all vibe check-ins","example":0.5},"sessionLength":{"type":"string","nullable":true,"description":"Session length in human-readable format","example":"1 h 15 min"}},"required":["id","userId","startedAt","endedAt","country","city","location","resilienceStatus","vibeCheckInSessions","avgHrv","sessionLength"]},"AdminAnalyticUserSessionOverallResponseDto":{"type":"object","properties":{"totalSessions":{"type":"number","description":"Number of sessions","example":42},"averageSessionLength":{"type":"string","nullable":true,"description":"Average sessions length in human-readable format","example":"1 h 15 min"},"cumulativeSessionLength":{"type":"string","nullable":true,"description":"Cumulative sessions length in human-readable format","example":"30 h 15 min"}},"required":["totalSessions","averageSessionLength","cumulativeSessionLength"]},"MapSessionDetailsResponseDto":{"type":"object","properties":{"continent":{"type":"string","example":"EU","description":"Continent code"},"country":{"type":"string","example":"US","description":"Country code"},"city":{"type":"string","example":"New York","description":"City name"},"totalSessions":{"type":"number","example":100,"description":"Total user sessions"},"totalCheckInSessions":{"type":"number","example":50,"description":"Total check-in sessions"},"topVibe":{"type":"object","example":{"total":20,"vibe":"Love","color":"#FF0000"},"description":"Top vibe"}},"required":["continent","country","totalSessions","totalCheckInSessions","topVibe"]},"FavoriteTrackResponseDto":{"type":"object","properties":{"id":{"type":"string"},"audioUrl":{"type":"string"},"title":{"type":"string"},"artist":{"type":"string","nullable":true},"imageUrl":{"type":"string","nullable":true},"introUrl":{"type":"string","nullable":true},"outroUrl":{"type":"string","nullable":true},"hasIntroOutro":{"type":"boolean"},"trackingReferenceAudioId":{"type":"string","nullable":true},"typeRaw":{"type":"string"},"vibeColorHexes":{"type":"array","items":{"type":"string"}},"createdAt":{"format":"date-time","type":"string"}},"required":["id","audioUrl","title","hasIntroOutro","typeRaw","vibeColorHexes","createdAt"]},"FavoriteTrackCreateDto":{"type":"object","properties":{"audioUrl":{"type":"string","description":"Playable audio URL — also serves as the per-user dedup key."},"title":{"type":"string"},"artist":{"type":"string"},"imageUrl":{"type":"string"},"introUrl":{"type":"string"},"outroUrl":{"type":"string"},"hasIntroOutro":{"type":"boolean","default":false},"trackingReferenceAudioId":{"type":"string","description":"Recipe id (Rx) or package id (Sound Journey) for analytics + playback restoration."},"typeRaw":{"type":"string","enum":["prescribed","vibe","soundJourney"]},"vibeColorHexes":{"description":"Vibe color hexes in outer→inner order at favorite-time.","type":"array","items":{"type":"string"}}},"required":["audioUrl","title","typeRaw"]}}}}