{ "openapi": "3.1.0", "info": { "title": "innercontext API", "version": "0.1.0" }, "paths": { "/auth/session/sync": { "post": { "tags": [ "auth" ], "summary": "Sync Session", "operationId": "sync_session_auth_session_sync_post", "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/SessionSyncRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthSessionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/auth/me": { "get": { "tags": [ "auth" ], "summary": "Get Me", "operationId": "get_me_auth_me_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthSessionResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/products": { "get": { "tags": [ "products" ], "summary": "List Products", "operationId": "list_products_products_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "category", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ProductCategory" }, { "type": "null" } ], "title": "Category" } }, { "name": "brand", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Brand" } }, { "name": "targets", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/SkinConcern" } }, { "type": "null" } ], "title": "Targets" } }, { "name": "is_medication", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Medication" } }, { "name": "is_tool", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Tool" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ProductWithInventory" }, "title": "Response List Products Products Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "products" ], "summary": "Create Product", "operationId": "create_product_products_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/products/parse-text": { "post": { "tags": [ "products" ], "summary": "Parse Product Text", "operationId": "parse_product_text_products_parse_text_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductParseRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductParseResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/products/summary": { "get": { "tags": [ "products" ], "summary": "List Products Summary", "operationId": "list_products_summary_products_summary_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "category", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ProductCategory" }, { "type": "null" } ], "title": "Category" } }, { "name": "brand", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Brand" } }, { "name": "targets", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/SkinConcern" } }, { "type": "null" } ], "title": "Targets" } }, { "name": "is_medication", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Medication" } }, { "name": "is_tool", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Tool" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ProductListItem" }, "title": "Response List Products Summary Products Summary Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/products/{product_id}": { "get": { "tags": [ "products" ], "summary": "Get Product", "operationId": "get_product_products__product_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductWithInventory" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "products" ], "summary": "Update Product", "operationId": "update_product_products__product_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Product Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "products" ], "summary": "Delete Product", "operationId": "delete_product_products__product_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Product Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/products/{product_id}/inventory": { "get": { "tags": [ "products" ], "summary": "List Product Inventory", "operationId": "list_product_inventory_products__product_id__inventory_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ProductInventory" }, "title": "Response List Product Inventory Products Product Id Inventory Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "products" ], "summary": "Create Product Inventory", "operationId": "create_product_inventory_products__product_id__inventory_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Product Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductInventory" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/products/suggest": { "post": { "tags": [ "products" ], "summary": "Suggest Shopping", "operationId": "suggest_shopping_products_suggest_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ShoppingSuggestionResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/inventory/{inventory_id}": { "get": { "tags": [ "inventory" ], "summary": "Get Inventory", "operationId": "get_inventory_inventory__inventory_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "inventory_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductInventory" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "inventory" ], "summary": "Update Inventory", "operationId": "update_inventory_inventory__inventory_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "inventory_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductInventory" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "inventory" ], "summary": "Delete Inventory", "operationId": "delete_inventory_inventory__inventory_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "inventory_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/profile": { "get": { "tags": [ "profile" ], "summary": "Get Profile", "operationId": "get_profile_profile_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/UserProfilePublic" }, { "type": "null" } ], "title": "Response Get Profile Profile Get" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "patch": { "tags": [ "profile" ], "summary": "Upsert Profile", "operationId": "upsert_profile_profile_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfileUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfilePublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/health/medications": { "get": { "tags": [ "health" ], "summary": "List Medications", "operationId": "list_medications_health_medications_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "kind", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/MedicationKind" }, { "type": "null" } ], "title": "Kind" } }, { "name": "product_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Product Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MedicationEntry" }, "title": "Response List Medications Health Medications Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "health" ], "summary": "Create Medication", "operationId": "create_medication_health_medications_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MedicationCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MedicationEntry" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health/medications/{medication_id}": { "get": { "tags": [ "health" ], "summary": "Get Medication", "operationId": "get_medication_health_medications__medication_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "medication_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Medication Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MedicationEntry" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "health" ], "summary": "Update Medication", "operationId": "update_medication_health_medications__medication_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "medication_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Medication Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MedicationUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MedicationEntry" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "health" ], "summary": "Delete Medication", "operationId": "delete_medication_health_medications__medication_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "medication_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Medication Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health/medications/{medication_id}/usages": { "get": { "tags": [ "health" ], "summary": "List Usages", "operationId": "list_usages_health_medications__medication_id__usages_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "medication_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Medication Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MedicationUsage" }, "title": "Response List Usages Health Medications Medication Id Usages Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "health" ], "summary": "Create Usage", "operationId": "create_usage_health_medications__medication_id__usages_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "medication_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Medication Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MedicationUsage" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health/usages/{usage_id}": { "patch": { "tags": [ "health" ], "summary": "Update Usage", "operationId": "update_usage_health_usages__usage_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "usage_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Usage Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MedicationUsage" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "health" ], "summary": "Delete Usage", "operationId": "delete_usage_health_usages__usage_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "usage_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Usage Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health/lab-results": { "get": { "tags": [ "health" ], "summary": "List Lab Results", "operationId": "list_lab_results_health_lab_results_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "q", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Q" } }, { "name": "test_code", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Code" } }, { "name": "flag", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ResultFlag" }, { "type": "null" } ], "title": "Flag" } }, { "name": "flags", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResultFlag" }, "title": "Flags" } }, { "name": "without_flag", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Without Flag" } }, { "name": "from_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "From Date" } }, { "name": "to_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "To Date" } }, { "name": "latest_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Latest Only" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabResultListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "health" ], "summary": "Create Lab Result", "operationId": "create_lab_result_health_lab_results_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabResultCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabResult" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health/lab-results/{result_id}": { "get": { "tags": [ "health" ], "summary": "Get Lab Result", "operationId": "get_lab_result_health_lab_results__result_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "result_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Result Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabResult" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "health" ], "summary": "Update Lab Result", "operationId": "update_lab_result_health_lab_results__result_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "result_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Result Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabResultUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabResult" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "health" ], "summary": "Delete Lab Result", "operationId": "delete_lab_result_health_lab_results__result_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "result_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Result Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/routines": { "get": { "tags": [ "routines" ], "summary": "List Routines", "operationId": "list_routines_routines_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "from_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "From Date" } }, { "name": "to_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "To Date" } }, { "name": "part_of_day", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/PartOfDay" }, { "type": "null" } ], "title": "Part Of Day" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "routines" ], "summary": "Create Routine", "operationId": "create_routine_routines_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutineCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Routine" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/routines/suggest": { "post": { "tags": [ "routines" ], "summary": "Suggest Routine", "operationId": "suggest_routine_routines_suggest_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuggestRoutineRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutineSuggestion" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/routines/suggest-batch": { "post": { "tags": [ "routines" ], "summary": "Suggest Batch", "operationId": "suggest_batch_routines_suggest_batch_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuggestBatchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchSuggestion" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/routines/grooming-schedule": { "get": { "tags": [ "routines" ], "summary": "List Grooming Schedule", "operationId": "list_grooming_schedule_routines_grooming_schedule_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/GroomingSchedule" }, "type": "array", "title": "Response List Grooming Schedule Routines Grooming Schedule Get" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "routines" ], "summary": "Create Grooming Schedule", "operationId": "create_grooming_schedule_routines_grooming_schedule_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroomingScheduleCreate" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroomingSchedule" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/routines/{routine_id}": { "get": { "tags": [ "routines" ], "summary": "Get Routine", "operationId": "get_routine_routines__routine_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "routine_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Routine Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "routines" ], "summary": "Update Routine", "operationId": "update_routine_routines__routine_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "routine_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Routine Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutineUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Routine" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "routines" ], "summary": "Delete Routine", "operationId": "delete_routine_routines__routine_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "routine_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Routine Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/routines/{routine_id}/steps": { "post": { "tags": [ "routines" ], "summary": "Add Step", "operationId": "add_step_routines__routine_id__steps_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "routine_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Routine Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutineStepCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutineStep" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/routines/steps/{step_id}": { "patch": { "tags": [ "routines" ], "summary": "Update Step", "operationId": "update_step_routines_steps__step_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "step_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Step Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutineStepUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutineStep" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "routines" ], "summary": "Delete Step", "operationId": "delete_step_routines_steps__step_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "step_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Step Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/routines/grooming-schedule/{entry_id}": { "patch": { "tags": [ "routines" ], "summary": "Update Grooming Schedule", "operationId": "update_grooming_schedule_routines_grooming_schedule__entry_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "entry_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Entry Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroomingScheduleUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroomingSchedule" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "routines" ], "summary": "Delete Grooming Schedule", "operationId": "delete_grooming_schedule_routines_grooming_schedule__entry_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "entry_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Entry Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/skincare/analyze-photos": { "post": { "tags": [ "skincare" ], "summary": "Analyze Skin Photos", "operationId": "analyze_skin_photos_skincare_analyze_photos_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_analyze_skin_photos_skincare_analyze_photos_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkinPhotoAnalysisResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/skincare": { "get": { "tags": [ "skincare" ], "summary": "List Snapshots", "operationId": "list_snapshots_skincare_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "from_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "From Date" } }, { "name": "to_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "To Date" } }, { "name": "overall_state", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/OverallSkinState" }, { "type": "null" } ], "title": "Overall State" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SkinConditionSnapshotPublic" }, "title": "Response List Snapshots Skincare Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "skincare" ], "summary": "Create Snapshot", "operationId": "create_snapshot_skincare_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SnapshotCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkinConditionSnapshotPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/skincare/{snapshot_id}": { "get": { "tags": [ "skincare" ], "summary": "Get Snapshot", "operationId": "get_snapshot_skincare__snapshot_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "snapshot_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Snapshot Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkinConditionSnapshotPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "skincare" ], "summary": "Update Snapshot", "operationId": "update_snapshot_skincare__snapshot_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "snapshot_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Snapshot Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SnapshotUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkinConditionSnapshotPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "skincare" ], "summary": "Delete Snapshot", "operationId": "delete_snapshot_skincare__snapshot_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "snapshot_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Snapshot Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ai-logs": { "get": { "tags": [ "ai-logs" ], "summary": "List Ai Logs", "operationId": "list_ai_logs_ai_logs_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "endpoint", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Endpoint" } }, { "name": "success", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Success" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 50, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AICallLogPublic" }, "title": "Response List Ai Logs Ai Logs Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ai-logs/{log_id}": { "get": { "tags": [ "ai-logs" ], "summary": "Get Ai Log", "operationId": "get_ai_log_ai_logs__log_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "log_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Log Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AICallLog" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health-check": { "get": { "summary": "Health Check", "operationId": "health_check_health_check_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } } }, "components": { "schemas": { "AICallLog": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "endpoint": { "type": "string", "title": "Endpoint" }, "model": { "type": "string", "title": "Model" }, "system_prompt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "System Prompt" }, "user_input": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Input" }, "response_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Response Text" }, "prompt_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Prompt Tokens" }, "completion_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Completion Tokens" }, "total_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Tokens" }, "duration_ms": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Ms" }, "finish_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Finish Reason" }, "tool_trace": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Tool Trace" }, "success": { "type": "boolean", "title": "Success", "default": true }, "error_detail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Detail" }, "validation_errors": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Validation Errors" }, "validation_warnings": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Validation Warnings" }, "auto_fixed": { "type": "boolean", "title": "Auto Fixed", "default": false }, "reasoning_chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reasoning Chain", "description": "LLM reasoning/thinking process (MEDIUM thinking level)" }, "thoughts_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Thoughts Tokens", "description": "Thinking tokens (thoughtsTokenCount) - separate from output budget" }, "tool_use_prompt_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tool Use Prompt Tokens", "description": "Tool use prompt tokens (toolUsePromptTokenCount)" }, "cached_content_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Cached Content Tokens", "description": "Cached content tokens (cachedContentTokenCount)" } }, "type": "object", "required": [ "endpoint", "model" ], "title": "AICallLog" }, "AICallLogPublic": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "created_at": { "title": "Created At" }, "endpoint": { "type": "string", "title": "Endpoint" }, "model": { "type": "string", "title": "Model" }, "prompt_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Prompt Tokens" }, "completion_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Completion Tokens" }, "total_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Tokens" }, "duration_ms": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Ms" }, "tool_trace": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Tool Trace" }, "success": { "type": "boolean", "title": "Success" }, "error_detail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Detail" } }, "type": "object", "required": [ "id", "created_at", "endpoint", "model", "success" ], "title": "AICallLogPublic", "description": "List-friendly view: omits large text fields." }, "AbsorptionSpeed": { "type": "string", "enum": [ "very_fast", "fast", "moderate", "slow", "very_slow" ], "title": "AbsorptionSpeed" }, "ActiveIngredient": { "properties": { "name": { "type": "string", "title": "Name" }, "percent": { "anyOf": [ { "type": "number", "maximum": 100.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Percent" }, "functions": { "items": { "$ref": "#/components/schemas/IngredientFunction" }, "type": "array", "title": "Functions" }, "strength_level": { "anyOf": [ { "$ref": "#/components/schemas/StrengthLevel" }, { "type": "null" } ] }, "irritation_potential": { "anyOf": [ { "$ref": "#/components/schemas/StrengthLevel" }, { "type": "null" } ] } }, "type": "object", "required": [ "name" ], "title": "ActiveIngredient" }, "AuthHouseholdMembershipPublic": { "properties": { "household_id": { "type": "string", "format": "uuid", "title": "Household Id" }, "role": { "$ref": "#/components/schemas/HouseholdRole" } }, "type": "object", "required": [ "household_id", "role" ], "title": "AuthHouseholdMembershipPublic" }, "AuthIdentityPublic": { "properties": { "issuer": { "type": "string", "title": "Issuer" }, "subject": { "type": "string", "title": "Subject" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "preferred_username": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Preferred Username" }, "groups": { "items": { "type": "string" }, "type": "array", "title": "Groups" } }, "type": "object", "required": [ "issuer", "subject" ], "title": "AuthIdentityPublic" }, "AuthProfilePublic": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "birth_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Birth Date" }, "sex_at_birth": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sex At Birth" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "id", "user_id", "created_at", "updated_at" ], "title": "AuthProfilePublic" }, "AuthSessionResponse": { "properties": { "user": { "$ref": "#/components/schemas/AuthUserPublic" }, "identity": { "$ref": "#/components/schemas/AuthIdentityPublic" }, "profile": { "anyOf": [ { "$ref": "#/components/schemas/AuthProfilePublic" }, { "type": "null" } ] } }, "type": "object", "required": [ "user", "identity" ], "title": "AuthSessionResponse" }, "AuthUserPublic": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "role": { "$ref": "#/components/schemas/Role" }, "household_membership": { "anyOf": [ { "$ref": "#/components/schemas/AuthHouseholdMembershipPublic" }, { "type": "null" } ] } }, "type": "object", "required": [ "id", "role" ], "title": "AuthUserPublic" }, "BarrierState": { "type": "string", "enum": [ "intact", "mildly_compromised", "compromised" ], "title": "BarrierState" }, "BatchSuggestion": { "properties": { "days": { "items": { "$ref": "#/components/schemas/DayPlan" }, "type": "array", "title": "Days" }, "overall_reasoning": { "type": "string", "title": "Overall Reasoning" }, "validation_warnings": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Validation Warnings" }, "auto_fixes_applied": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Auto Fixes Applied" }, "response_metadata": { "anyOf": [ { "$ref": "#/components/schemas/ResponseMetadata" }, { "type": "null" } ] } }, "type": "object", "required": [ "days", "overall_reasoning" ], "title": "BatchSuggestion" }, "Body_analyze_skin_photos_skincare_analyze_photos_post": { "properties": { "photos": { "items": { "type": "string", "contentMediaType": "application/octet-stream" }, "type": "array", "title": "Photos" } }, "type": "object", "required": [ "photos" ], "title": "Body_analyze_skin_photos_skincare_analyze_photos_post" }, "DayPlan": { "properties": { "date": { "type": "string", "format": "date", "title": "Date" }, "am_steps": { "items": { "$ref": "#/components/schemas/SuggestedStep" }, "type": "array", "title": "Am Steps" }, "pm_steps": { "items": { "$ref": "#/components/schemas/SuggestedStep" }, "type": "array", "title": "Pm Steps" }, "reasoning": { "type": "string", "title": "Reasoning" } }, "type": "object", "required": [ "date", "am_steps", "pm_steps", "reasoning" ], "title": "DayPlan" }, "DayTime": { "type": "string", "enum": [ "am", "pm", "both" ], "title": "DayTime" }, "GroomingAction": { "type": "string", "enum": [ "shaving_razor", "shaving_oneblade", "dermarolling" ], "title": "GroomingAction" }, "GroomingSchedule": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "day_of_week": { "type": "integer", "maximum": 6.0, "minimum": 0.0, "title": "Day Of Week" }, "action": { "$ref": "#/components/schemas/GroomingAction" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "day_of_week", "action" ], "title": "GroomingSchedule" }, "GroomingScheduleCreate": { "properties": { "day_of_week": { "type": "integer", "title": "Day Of Week" }, "action": { "$ref": "#/components/schemas/GroomingAction" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "day_of_week", "action" ], "title": "GroomingScheduleCreate" }, "GroomingScheduleUpdate": { "properties": { "day_of_week": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Day Of Week" }, "action": { "anyOf": [ { "$ref": "#/components/schemas/GroomingAction" }, { "type": "null" } ] }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "GroomingScheduleUpdate" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HouseholdRole": { "type": "string", "enum": [ "owner", "member" ], "title": "HouseholdRole" }, "IngredientFunction": { "type": "string", "enum": [ "humectant", "emollient", "occlusive", "exfoliant_aha", "exfoliant_bha", "exfoliant_pha", "retinoid", "antioxidant", "soothing", "barrier_support", "brightening", "anti_acne", "ceramide", "niacinamide", "sunscreen", "peptide", "hair_growth_stimulant", "prebiotic", "vitamin_c", "anti_aging" ], "title": "IngredientFunction" }, "InventoryCreate": { "properties": { "is_opened": { "type": "boolean", "title": "Is Opened", "default": false }, "opened_at": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Opened At" }, "finished_at": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Finished At" }, "expiry_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Expiry Date" }, "remaining_level": { "anyOf": [ { "$ref": "#/components/schemas/RemainingLevel" }, { "type": "null" } ] }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "InventoryCreate" }, "InventoryUpdate": { "properties": { "is_opened": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Opened" }, "opened_at": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Opened At" }, "finished_at": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Finished At" }, "expiry_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Expiry Date" }, "remaining_level": { "anyOf": [ { "$ref": "#/components/schemas/RemainingLevel" }, { "type": "null" } ] }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "InventoryUpdate" }, "LabResult": { "properties": { "record_id": { "type": "string", "format": "uuid", "title": "Record Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "collected_at": { "type": "string", "format": "date-time", "title": "Collected At" }, "test_code": { "type": "string", "title": "Test Code" }, "test_name_original": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Name Original" }, "test_name_loinc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Name Loinc" }, "value_num": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Value Num" }, "value_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Text" }, "value_bool": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Value Bool" }, "unit_original": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit Original" }, "unit_ucum": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit Ucum" }, "ref_low": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ref Low" }, "ref_high": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ref High" }, "ref_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ref Text" }, "flag": { "anyOf": [ { "$ref": "#/components/schemas/ResultFlag" }, { "type": "null" } ] }, "lab": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lab" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "collected_at", "test_code" ], "title": "LabResult" }, "LabResultCreate": { "properties": { "collected_at": { "type": "string", "format": "date-time", "title": "Collected At" }, "test_code": { "type": "string", "title": "Test Code" }, "test_name_original": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Name Original" }, "test_name_loinc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Name Loinc" }, "value_num": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Value Num" }, "value_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Text" }, "value_bool": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Value Bool" }, "unit_original": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit Original" }, "unit_ucum": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit Ucum" }, "ref_low": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ref Low" }, "ref_high": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ref High" }, "ref_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ref Text" }, "flag": { "anyOf": [ { "$ref": "#/components/schemas/ResultFlag" }, { "type": "null" } ] }, "lab": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lab" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "collected_at", "test_code" ], "title": "LabResultCreate" }, "LabResultListResponse": { "properties": { "items": { "items": { "$ref": "#/components/schemas/LabResult" }, "type": "array", "title": "Items" }, "total": { "type": "integer", "title": "Total" }, "limit": { "type": "integer", "title": "Limit" }, "offset": { "type": "integer", "title": "Offset" } }, "type": "object", "required": [ "items", "total", "limit", "offset" ], "title": "LabResultListResponse" }, "LabResultUpdate": { "properties": { "collected_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Collected At" }, "test_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Code" }, "test_name_original": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Name Original" }, "test_name_loinc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Test Name Loinc" }, "value_num": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Value Num" }, "value_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Text" }, "value_bool": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Value Bool" }, "unit_original": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit Original" }, "unit_ucum": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit Ucum" }, "ref_low": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ref Low" }, "ref_high": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ref High" }, "ref_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ref Text" }, "flag": { "anyOf": [ { "$ref": "#/components/schemas/ResultFlag" }, { "type": "null" } ] }, "lab": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lab" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "LabResultUpdate" }, "MedicationCreate": { "properties": { "kind": { "$ref": "#/components/schemas/MedicationKind" }, "product_name": { "type": "string", "title": "Product Name" }, "active_substance": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Active Substance" }, "formulation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Formulation" }, "route": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Route" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "kind", "product_name" ], "title": "MedicationCreate" }, "MedicationEntry": { "properties": { "record_id": { "type": "string", "format": "uuid", "title": "Record Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "kind": { "$ref": "#/components/schemas/MedicationKind" }, "product_name": { "type": "string", "title": "Product Name" }, "active_substance": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Active Substance" }, "formulation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Formulation" }, "route": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Route" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "kind", "product_name" ], "title": "MedicationEntry" }, "MedicationKind": { "type": "string", "enum": [ "prescription", "otc", "supplement", "herbal", "other" ], "title": "MedicationKind" }, "MedicationUpdate": { "properties": { "kind": { "anyOf": [ { "$ref": "#/components/schemas/MedicationKind" }, { "type": "null" } ] }, "product_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Product Name" }, "active_substance": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Active Substance" }, "formulation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Formulation" }, "route": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Route" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "MedicationUpdate" }, "MedicationUsage": { "properties": { "record_id": { "type": "string", "format": "uuid", "title": "Record Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "medication_record_id": { "type": "string", "format": "uuid", "title": "Medication Record Id" }, "dose_value": { "anyOf": [ { "type": "number", "minimum": 0.0 }, { "type": "null" } ], "title": "Dose Value" }, "dose_unit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dose Unit" }, "frequency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Frequency" }, "schedule_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Schedule Text" }, "as_needed": { "type": "boolean", "title": "As Needed", "default": false }, "valid_from": { "type": "string", "format": "date-time", "title": "Valid From" }, "valid_to": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Valid To" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "medication_record_id", "valid_from" ], "title": "MedicationUsage" }, "OverallSkinState": { "type": "string", "enum": [ "excellent", "good", "fair", "poor" ], "title": "OverallSkinState" }, "PartOfDay": { "type": "string", "enum": [ "am", "pm" ], "title": "PartOfDay" }, "PriceTier": { "type": "string", "enum": [ "budget", "mid", "premium", "luxury" ], "title": "PriceTier" }, "ProductCategory": { "type": "string", "enum": [ "cleanser", "toner", "essence", "serum", "moisturizer", "spf", "mask", "exfoliant", "hair_treatment", "tool", "spot_treatment", "oil" ], "title": "ProductCategory" }, "ProductContext": { "properties": { "safe_after_shaving": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Safe After Shaving" }, "safe_after_acids": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Safe After Acids" }, "safe_after_retinoids": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Safe After Retinoids" }, "safe_with_compromised_barrier": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Safe With Compromised Barrier" }, "low_uv_only": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Low Uv Only" } }, "type": "object", "title": "ProductContext" }, "ProductCreate": { "properties": { "name": { "type": "string", "title": "Name" }, "brand": { "type": "string", "title": "Brand" }, "line_name": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Line Name" }, "sku": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Sku" }, "url": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Url" }, "barcode": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Barcode" }, "category": { "$ref": "#/components/schemas/ProductCategory" }, "recommended_time": { "$ref": "#/components/schemas/DayTime" }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/TextureType" }, { "type": "null" } ] }, "absorption_speed": { "anyOf": [ { "$ref": "#/components/schemas/AbsorptionSpeed" }, { "type": "null" } ] }, "leave_on": { "type": "boolean", "title": "Leave On" }, "price_amount": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Price Amount" }, "price_currency": { "anyOf": [ { "type": "string", "maxLength": 3, "minLength": 3 }, { "type": "null" } ], "title": "Price Currency" }, "size_ml": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Size Ml" }, "pao_months": { "anyOf": [ { "type": "integer", "maximum": 60.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Pao Months" }, "inci": { "items": { "type": "string" }, "type": "array", "title": "Inci" }, "actives": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ActiveIngredient" }, "type": "array" }, { "type": "null" } ], "title": "Actives" }, "recommended_for": { "items": { "$ref": "#/components/schemas/SkinType" }, "type": "array", "title": "Recommended For" }, "targets": { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array", "title": "Targets" }, "fragrance_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fragrance Free" }, "essential_oils_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Essential Oils Free" }, "alcohol_denat_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Alcohol Denat Free" }, "pregnancy_safe": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Pregnancy Safe" }, "product_effect_profile": { "$ref": "#/components/schemas/ProductEffectProfile" }, "ph_min": { "anyOf": [ { "type": "number", "maximum": 14.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Ph Min" }, "ph_max": { "anyOf": [ { "type": "number", "maximum": 14.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Ph Max" }, "context_rules": { "anyOf": [ { "$ref": "#/components/schemas/ProductContext" }, { "type": "null" } ] }, "min_interval_hours": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Min Interval Hours" }, "max_frequency_per_week": { "anyOf": [ { "type": "integer", "maximum": 14.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Max Frequency Per Week" }, "is_medication": { "type": "boolean", "title": "Is Medication", "default": false }, "is_tool": { "type": "boolean", "title": "Is Tool", "default": false }, "needle_length_mm": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Needle Length Mm" }, "personal_tolerance_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Personal Tolerance Notes" } }, "type": "object", "required": [ "name", "brand", "category", "recommended_time", "leave_on" ], "title": "ProductCreate" }, "ProductEffectProfile": { "properties": { "hydration_immediate": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Hydration Immediate", "default": 0 }, "hydration_long_term": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Hydration Long Term", "default": 0 }, "barrier_repair_strength": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Barrier Repair Strength", "default": 0 }, "soothing_strength": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Soothing Strength", "default": 0 }, "exfoliation_strength": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Exfoliation Strength", "default": 0 }, "retinoid_strength": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Retinoid Strength", "default": 0 }, "irritation_risk": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Irritation Risk", "default": 0 }, "comedogenic_risk": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Comedogenic Risk", "default": 0 }, "barrier_disruption_risk": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Barrier Disruption Risk", "default": 0 }, "dryness_risk": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Dryness Risk", "default": 0 }, "brightening_strength": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Brightening Strength", "default": 0 }, "anti_acne_strength": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Anti Acne Strength", "default": 0 }, "anti_aging_strength": { "type": "integer", "maximum": 5.0, "minimum": 0.0, "title": "Anti Aging Strength", "default": 0 } }, "type": "object", "title": "ProductEffectProfile" }, "ProductInventory": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "product_id": { "type": "string", "format": "uuid", "title": "Product Id" }, "is_household_shared": { "type": "boolean", "title": "Is Household Shared", "default": false }, "is_opened": { "type": "boolean", "title": "Is Opened", "default": false }, "opened_at": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Opened At" }, "finished_at": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Finished At" }, "expiry_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Expiry Date" }, "remaining_level": { "anyOf": [ { "$ref": "#/components/schemas/RemainingLevel" }, { "type": "null" } ] }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "product_id" ], "title": "ProductInventory" }, "ProductListItem": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "brand": { "type": "string", "title": "Brand" }, "category": { "$ref": "#/components/schemas/ProductCategory" }, "recommended_time": { "$ref": "#/components/schemas/DayTime" }, "targets": { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array", "title": "Targets" }, "is_owned": { "type": "boolean", "title": "Is Owned" }, "price_tier": { "anyOf": [ { "$ref": "#/components/schemas/PriceTier" }, { "type": "null" } ] }, "price_per_use_pln": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Price Per Use Pln" }, "price_tier_source": { "anyOf": [ { "type": "string", "enum": [ "category", "fallback", "insufficient_data" ] }, { "type": "null" } ], "title": "Price Tier Source" } }, "type": "object", "required": [ "id", "name", "brand", "category", "recommended_time", "is_owned" ], "title": "ProductListItem" }, "ProductParseRequest": { "properties": { "text": { "type": "string", "title": "Text" } }, "type": "object", "required": [ "text" ], "title": "ProductParseRequest" }, "ProductParseResponse": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "brand": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Brand" }, "line_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line Name" }, "sku": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sku" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "barcode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Barcode" }, "category": { "anyOf": [ { "$ref": "#/components/schemas/ProductCategory" }, { "type": "null" } ] }, "recommended_time": { "anyOf": [ { "$ref": "#/components/schemas/DayTime" }, { "type": "null" } ] }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/TextureType" }, { "type": "null" } ] }, "absorption_speed": { "anyOf": [ { "$ref": "#/components/schemas/AbsorptionSpeed" }, { "type": "null" } ] }, "leave_on": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Leave On" }, "price_amount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Price Amount" }, "price_currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Price Currency" }, "size_ml": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Size Ml" }, "pao_months": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Pao Months" }, "inci": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Inci" }, "actives": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ActiveIngredient" }, "type": "array" }, { "type": "null" } ], "title": "Actives" }, "recommended_for": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SkinType" }, "type": "array" }, { "type": "null" } ], "title": "Recommended For" }, "targets": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array" }, { "type": "null" } ], "title": "Targets" }, "fragrance_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fragrance Free" }, "essential_oils_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Essential Oils Free" }, "alcohol_denat_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Alcohol Denat Free" }, "pregnancy_safe": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Pregnancy Safe" }, "product_effect_profile": { "anyOf": [ { "$ref": "#/components/schemas/ProductEffectProfile" }, { "type": "null" } ] }, "ph_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ph Min" }, "ph_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ph Max" }, "context_rules": { "anyOf": [ { "$ref": "#/components/schemas/ProductContext" }, { "type": "null" } ] }, "min_interval_hours": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Interval Hours" }, "max_frequency_per_week": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Frequency Per Week" }, "is_medication": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Medication" }, "is_tool": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Tool" }, "needle_length_mm": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Needle Length Mm" } }, "type": "object", "title": "ProductParseResponse" }, "ProductPublic": { "properties": { "name": { "type": "string", "title": "Name" }, "brand": { "type": "string", "title": "Brand" }, "line_name": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Line Name" }, "sku": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Sku" }, "url": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Url" }, "barcode": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Barcode" }, "category": { "$ref": "#/components/schemas/ProductCategory" }, "recommended_time": { "$ref": "#/components/schemas/DayTime" }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/TextureType" }, { "type": "null" } ] }, "absorption_speed": { "anyOf": [ { "$ref": "#/components/schemas/AbsorptionSpeed" }, { "type": "null" } ] }, "leave_on": { "type": "boolean", "title": "Leave On" }, "price_amount": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Price Amount" }, "price_currency": { "anyOf": [ { "type": "string", "maxLength": 3, "minLength": 3 }, { "type": "null" } ], "title": "Price Currency" }, "size_ml": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Size Ml" }, "pao_months": { "anyOf": [ { "type": "integer", "maximum": 60.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Pao Months" }, "inci": { "items": { "type": "string" }, "type": "array", "title": "Inci" }, "actives": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ActiveIngredient" }, "type": "array" }, { "type": "null" } ], "title": "Actives" }, "recommended_for": { "items": { "$ref": "#/components/schemas/SkinType" }, "type": "array", "title": "Recommended For" }, "targets": { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array", "title": "Targets" }, "fragrance_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fragrance Free" }, "essential_oils_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Essential Oils Free" }, "alcohol_denat_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Alcohol Denat Free" }, "pregnancy_safe": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Pregnancy Safe" }, "product_effect_profile": { "$ref": "#/components/schemas/ProductEffectProfile" }, "ph_min": { "anyOf": [ { "type": "number", "maximum": 14.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Ph Min" }, "ph_max": { "anyOf": [ { "type": "number", "maximum": 14.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Ph Max" }, "context_rules": { "anyOf": [ { "$ref": "#/components/schemas/ProductContext" }, { "type": "null" } ] }, "min_interval_hours": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Min Interval Hours" }, "max_frequency_per_week": { "anyOf": [ { "type": "integer", "maximum": 14.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Max Frequency Per Week" }, "is_medication": { "type": "boolean", "title": "Is Medication", "default": false }, "is_tool": { "type": "boolean", "title": "Is Tool", "default": false }, "needle_length_mm": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Needle Length Mm" }, "personal_tolerance_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Personal Tolerance Notes" }, "id": { "type": "string", "format": "uuid", "title": "Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "price_tier": { "anyOf": [ { "$ref": "#/components/schemas/PriceTier" }, { "type": "null" } ] }, "price_per_use_pln": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Price Per Use Pln" }, "price_tier_source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Price Tier Source" } }, "type": "object", "required": [ "name", "brand", "category", "recommended_time", "leave_on", "id", "created_at", "updated_at" ], "title": "ProductPublic" }, "ProductSuggestion": { "properties": { "category": { "$ref": "#/components/schemas/ProductCategory" }, "product_type": { "type": "string", "title": "Product Type" }, "priority": { "type": "string", "enum": [ "high", "medium", "low" ], "title": "Priority" }, "key_ingredients": { "items": { "type": "string" }, "type": "array", "title": "Key Ingredients" }, "target_concerns": { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array", "title": "Target Concerns" }, "recommended_time": { "$ref": "#/components/schemas/DayTime" }, "frequency": { "type": "string", "title": "Frequency" }, "short_reason": { "type": "string", "title": "Short Reason" }, "reason_to_buy_now": { "type": "string", "title": "Reason To Buy Now" }, "reason_not_needed_if_budget_tight": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason Not Needed If Budget Tight" }, "fit_with_current_routine": { "type": "string", "title": "Fit With Current Routine" }, "usage_cautions": { "items": { "type": "string" }, "type": "array", "title": "Usage Cautions" } }, "type": "object", "required": [ "category", "product_type", "priority", "key_ingredients", "target_concerns", "recommended_time", "frequency", "short_reason", "reason_to_buy_now", "fit_with_current_routine", "usage_cautions" ], "title": "ProductSuggestion" }, "ProductUpdate": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "brand": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Brand" }, "line_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line Name" }, "sku": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sku" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "barcode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Barcode" }, "category": { "anyOf": [ { "$ref": "#/components/schemas/ProductCategory" }, { "type": "null" } ] }, "recommended_time": { "anyOf": [ { "$ref": "#/components/schemas/DayTime" }, { "type": "null" } ] }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/TextureType" }, { "type": "null" } ] }, "absorption_speed": { "anyOf": [ { "$ref": "#/components/schemas/AbsorptionSpeed" }, { "type": "null" } ] }, "leave_on": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Leave On" }, "price_amount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Price Amount" }, "price_currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Price Currency" }, "size_ml": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Size Ml" }, "pao_months": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Pao Months" }, "inci": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Inci" }, "actives": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ActiveIngredient" }, "type": "array" }, { "type": "null" } ], "title": "Actives" }, "recommended_for": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SkinType" }, "type": "array" }, { "type": "null" } ], "title": "Recommended For" }, "targets": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array" }, { "type": "null" } ], "title": "Targets" }, "fragrance_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fragrance Free" }, "essential_oils_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Essential Oils Free" }, "alcohol_denat_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Alcohol Denat Free" }, "pregnancy_safe": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Pregnancy Safe" }, "product_effect_profile": { "anyOf": [ { "$ref": "#/components/schemas/ProductEffectProfile" }, { "type": "null" } ] }, "ph_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ph Min" }, "ph_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ph Max" }, "context_rules": { "anyOf": [ { "$ref": "#/components/schemas/ProductContext" }, { "type": "null" } ] }, "min_interval_hours": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Interval Hours" }, "max_frequency_per_week": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Frequency Per Week" }, "is_medication": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Medication" }, "is_tool": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Tool" }, "needle_length_mm": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Needle Length Mm" }, "personal_tolerance_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Personal Tolerance Notes" } }, "type": "object", "title": "ProductUpdate" }, "ProductWithInventory": { "properties": { "name": { "type": "string", "title": "Name" }, "brand": { "type": "string", "title": "Brand" }, "line_name": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Line Name" }, "sku": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Sku" }, "url": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Url" }, "barcode": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Barcode" }, "category": { "$ref": "#/components/schemas/ProductCategory" }, "recommended_time": { "$ref": "#/components/schemas/DayTime" }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/TextureType" }, { "type": "null" } ] }, "absorption_speed": { "anyOf": [ { "$ref": "#/components/schemas/AbsorptionSpeed" }, { "type": "null" } ] }, "leave_on": { "type": "boolean", "title": "Leave On" }, "price_amount": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Price Amount" }, "price_currency": { "anyOf": [ { "type": "string", "maxLength": 3, "minLength": 3 }, { "type": "null" } ], "title": "Price Currency" }, "size_ml": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Size Ml" }, "pao_months": { "anyOf": [ { "type": "integer", "maximum": 60.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Pao Months" }, "inci": { "items": { "type": "string" }, "type": "array", "title": "Inci" }, "actives": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ActiveIngredient" }, "type": "array" }, { "type": "null" } ], "title": "Actives" }, "recommended_for": { "items": { "$ref": "#/components/schemas/SkinType" }, "type": "array", "title": "Recommended For" }, "targets": { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array", "title": "Targets" }, "fragrance_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fragrance Free" }, "essential_oils_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Essential Oils Free" }, "alcohol_denat_free": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Alcohol Denat Free" }, "pregnancy_safe": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Pregnancy Safe" }, "product_effect_profile": { "$ref": "#/components/schemas/ProductEffectProfile" }, "ph_min": { "anyOf": [ { "type": "number", "maximum": 14.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Ph Min" }, "ph_max": { "anyOf": [ { "type": "number", "maximum": 14.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Ph Max" }, "context_rules": { "anyOf": [ { "$ref": "#/components/schemas/ProductContext" }, { "type": "null" } ] }, "min_interval_hours": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Min Interval Hours" }, "max_frequency_per_week": { "anyOf": [ { "type": "integer", "maximum": 14.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Max Frequency Per Week" }, "is_medication": { "type": "boolean", "title": "Is Medication", "default": false }, "is_tool": { "type": "boolean", "title": "Is Tool", "default": false }, "needle_length_mm": { "anyOf": [ { "type": "number", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Needle Length Mm" }, "personal_tolerance_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Personal Tolerance Notes" }, "id": { "type": "string", "format": "uuid", "title": "Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "price_tier": { "anyOf": [ { "$ref": "#/components/schemas/PriceTier" }, { "type": "null" } ] }, "price_per_use_pln": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Price Per Use Pln" }, "price_tier_source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Price Tier Source" }, "inventory": { "items": { "$ref": "#/components/schemas/ProductInventory" }, "type": "array", "title": "Inventory", "default": [] } }, "type": "object", "required": [ "name", "brand", "category", "recommended_time", "leave_on", "id", "created_at", "updated_at" ], "title": "ProductWithInventory" }, "RemainingLevel": { "type": "string", "enum": [ "high", "medium", "low", "nearly_empty" ], "title": "RemainingLevel" }, "ResponseMetadata": { "properties": { "model_used": { "type": "string", "title": "Model Used" }, "duration_ms": { "type": "integer", "title": "Duration Ms" }, "reasoning_chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reasoning Chain" }, "token_metrics": { "anyOf": [ { "$ref": "#/components/schemas/TokenMetrics" }, { "type": "null" } ] } }, "type": "object", "required": [ "model_used", "duration_ms" ], "title": "ResponseMetadata", "description": "Metadata about the LLM response for observability." }, "ResultFlag": { "type": "string", "enum": [ "N", "ABN", "POS", "NEG", "L", "H" ], "title": "ResultFlag" }, "Role": { "type": "string", "enum": [ "admin", "member" ], "title": "Role" }, "Routine": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "routine_date": { "type": "string", "format": "date", "title": "Routine Date" }, "part_of_day": { "$ref": "#/components/schemas/PartOfDay" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "routine_date", "part_of_day" ], "title": "Routine" }, "RoutineCreate": { "properties": { "routine_date": { "type": "string", "format": "date", "title": "Routine Date" }, "part_of_day": { "$ref": "#/components/schemas/PartOfDay" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "routine_date", "part_of_day" ], "title": "RoutineCreate" }, "RoutineStep": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "user_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "User Id" }, "routine_id": { "type": "string", "format": "uuid", "title": "Routine Id" }, "product_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Product Id" }, "order_index": { "type": "integer", "minimum": 0.0, "title": "Order Index" }, "action_type": { "anyOf": [ { "$ref": "#/components/schemas/GroomingAction" }, { "type": "null" } ] }, "action_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action Notes" }, "dose": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dose" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region" } }, "type": "object", "required": [ "routine_id", "order_index" ], "title": "RoutineStep" }, "RoutineStepCreate": { "properties": { "product_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Product Id" }, "order_index": { "type": "integer", "title": "Order Index" }, "action_type": { "anyOf": [ { "$ref": "#/components/schemas/GroomingAction" }, { "type": "null" } ] }, "action_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action Notes" }, "dose": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dose" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region" } }, "type": "object", "required": [ "order_index" ], "title": "RoutineStepCreate" }, "RoutineStepUpdate": { "properties": { "product_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Product Id" }, "order_index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Order Index" }, "action_type": { "anyOf": [ { "$ref": "#/components/schemas/GroomingAction" }, { "type": "null" } ] }, "action_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action Notes" }, "dose": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dose" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region" } }, "type": "object", "title": "RoutineStepUpdate" }, "RoutineSuggestion": { "properties": { "steps": { "items": { "$ref": "#/components/schemas/SuggestedStep" }, "type": "array", "title": "Steps" }, "reasoning": { "type": "string", "title": "Reasoning" }, "summary": { "anyOf": [ { "$ref": "#/components/schemas/RoutineSuggestionSummary" }, { "type": "null" } ] }, "validation_warnings": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Validation Warnings" }, "auto_fixes_applied": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Auto Fixes Applied" }, "response_metadata": { "anyOf": [ { "$ref": "#/components/schemas/ResponseMetadata" }, { "type": "null" } ] } }, "type": "object", "required": [ "steps", "reasoning" ], "title": "RoutineSuggestion" }, "RoutineSuggestionSummary": { "properties": { "primary_goal": { "type": "string", "title": "Primary Goal", "default": "" }, "constraints_applied": { "items": { "type": "string" }, "type": "array", "title": "Constraints Applied" }, "confidence": { "type": "number", "title": "Confidence", "default": 0.0 } }, "type": "object", "title": "RoutineSuggestionSummary" }, "RoutineUpdate": { "properties": { "routine_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Routine Date" }, "part_of_day": { "anyOf": [ { "$ref": "#/components/schemas/PartOfDay" }, { "type": "null" } ] }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "RoutineUpdate" }, "SessionSyncRequest": { "properties": { "iss": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Iss" }, "sub": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sub" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "preferred_username": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Preferred Username" }, "groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Groups" } }, "type": "object", "title": "SessionSyncRequest" }, "SexAtBirth": { "type": "string", "enum": [ "male", "female", "intersex" ], "title": "SexAtBirth" }, "ShoppingSuggestionResponse": { "properties": { "suggestions": { "items": { "$ref": "#/components/schemas/ProductSuggestion" }, "type": "array", "title": "Suggestions" }, "reasoning": { "type": "string", "title": "Reasoning" }, "validation_warnings": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Validation Warnings" }, "auto_fixes_applied": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Auto Fixes Applied" }, "response_metadata": { "anyOf": [ { "$ref": "#/components/schemas/ResponseMetadata" }, { "type": "null" } ] } }, "type": "object", "required": [ "suggestions", "reasoning" ], "title": "ShoppingSuggestionResponse" }, "SkinConcern": { "type": "string", "enum": [ "acne", "rosacea", "hyperpigmentation", "aging", "dehydration", "redness", "damaged_barrier", "pore_visibility", "uneven_texture", "hair_growth", "sebum_excess" ], "title": "SkinConcern" }, "SkinConditionSnapshotPublic": { "properties": { "snapshot_date": { "type": "string", "format": "date", "title": "Snapshot Date" }, "overall_state": { "anyOf": [ { "$ref": "#/components/schemas/OverallSkinState" }, { "type": "null" } ] }, "skin_type": { "anyOf": [ { "$ref": "#/components/schemas/SkinType" }, { "type": "null" } ] }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/SkinTexture" }, { "type": "null" } ] }, "hydration_level": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Hydration Level" }, "sebum_tzone": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Sebum Tzone" }, "sebum_cheeks": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Sebum Cheeks" }, "sensitivity_level": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Sensitivity Level" }, "barrier_state": { "anyOf": [ { "$ref": "#/components/schemas/BarrierState" }, { "type": "null" } ] }, "active_concerns": { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array", "title": "Active Concerns" }, "risks": { "items": { "type": "string" }, "type": "array", "title": "Risks" }, "priorities": { "items": { "type": "string" }, "type": "array", "title": "Priorities" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "id": { "type": "string", "format": "uuid", "title": "Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "snapshot_date", "id", "created_at" ], "title": "SkinConditionSnapshotPublic" }, "SkinPhotoAnalysisResponse": { "properties": { "overall_state": { "anyOf": [ { "$ref": "#/components/schemas/OverallSkinState" }, { "type": "null" } ] }, "skin_type": { "anyOf": [ { "$ref": "#/components/schemas/SkinType" }, { "type": "null" } ] }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/SkinTexture" }, { "type": "null" } ] }, "hydration_level": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Hydration Level" }, "sebum_tzone": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Sebum Tzone" }, "sebum_cheeks": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Sebum Cheeks" }, "sensitivity_level": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Sensitivity Level" }, "barrier_state": { "anyOf": [ { "$ref": "#/components/schemas/BarrierState" }, { "type": "null" } ] }, "active_concerns": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array" }, { "type": "null" } ], "title": "Active Concerns" }, "risks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Risks" }, "priorities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Priorities" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "SkinPhotoAnalysisResponse" }, "SkinTexture": { "type": "string", "enum": [ "smooth", "rough", "flaky", "bumpy" ], "title": "SkinTexture" }, "SkinType": { "type": "string", "enum": [ "dry", "oily", "combination", "sensitive", "normal", "acne_prone" ], "title": "SkinType" }, "SnapshotCreate": { "properties": { "snapshot_date": { "type": "string", "format": "date", "title": "Snapshot Date" }, "overall_state": { "anyOf": [ { "$ref": "#/components/schemas/OverallSkinState" }, { "type": "null" } ] }, "skin_type": { "anyOf": [ { "$ref": "#/components/schemas/SkinType" }, { "type": "null" } ] }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/SkinTexture" }, { "type": "null" } ] }, "hydration_level": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Hydration Level" }, "sebum_tzone": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Sebum Tzone" }, "sebum_cheeks": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Sebum Cheeks" }, "sensitivity_level": { "anyOf": [ { "type": "integer", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Sensitivity Level" }, "barrier_state": { "anyOf": [ { "$ref": "#/components/schemas/BarrierState" }, { "type": "null" } ] }, "active_concerns": { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array", "title": "Active Concerns" }, "risks": { "items": { "type": "string" }, "type": "array", "title": "Risks" }, "priorities": { "items": { "type": "string" }, "type": "array", "title": "Priorities" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "snapshot_date" ], "title": "SnapshotCreate" }, "SnapshotUpdate": { "properties": { "snapshot_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Snapshot Date" }, "overall_state": { "anyOf": [ { "$ref": "#/components/schemas/OverallSkinState" }, { "type": "null" } ] }, "skin_type": { "anyOf": [ { "$ref": "#/components/schemas/SkinType" }, { "type": "null" } ] }, "texture": { "anyOf": [ { "$ref": "#/components/schemas/SkinTexture" }, { "type": "null" } ] }, "hydration_level": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Hydration Level" }, "sebum_tzone": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Sebum Tzone" }, "sebum_cheeks": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Sebum Cheeks" }, "sensitivity_level": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Sensitivity Level" }, "barrier_state": { "anyOf": [ { "$ref": "#/components/schemas/BarrierState" }, { "type": "null" } ] }, "active_concerns": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SkinConcern" }, "type": "array" }, { "type": "null" } ], "title": "Active Concerns" }, "risks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Risks" }, "priorities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Priorities" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "SnapshotUpdate" }, "StrengthLevel": { "type": "integer", "enum": [ 1, 2, 3 ], "title": "StrengthLevel" }, "SuggestBatchRequest": { "properties": { "from_date": { "type": "string", "format": "date", "title": "From Date" }, "to_date": { "type": "string", "format": "date", "title": "To Date" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "include_minoxidil_beard": { "type": "boolean", "title": "Include Minoxidil Beard", "default": false }, "minimize_products": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Minimize Products" } }, "type": "object", "required": [ "from_date", "to_date" ], "title": "SuggestBatchRequest" }, "SuggestRoutineRequest": { "properties": { "routine_date": { "type": "string", "format": "date", "title": "Routine Date" }, "part_of_day": { "$ref": "#/components/schemas/PartOfDay" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "include_minoxidil_beard": { "type": "boolean", "title": "Include Minoxidil Beard", "default": false }, "leaving_home": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Leaving Home" } }, "type": "object", "required": [ "routine_date", "part_of_day" ], "title": "SuggestRoutineRequest" }, "SuggestedStep": { "properties": { "product_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Product Id" }, "action_type": { "anyOf": [ { "$ref": "#/components/schemas/GroomingAction" }, { "type": "null" } ] }, "action_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action Notes" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region" }, "why_this_step": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Why This Step" }, "optional": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Optional" } }, "type": "object", "title": "SuggestedStep" }, "TextureType": { "type": "string", "enum": [ "watery", "gel", "emulsion", "cream", "oil", "balm", "foam", "fluid" ], "title": "TextureType" }, "TokenMetrics": { "properties": { "prompt_tokens": { "type": "integer", "title": "Prompt Tokens" }, "completion_tokens": { "type": "integer", "title": "Completion Tokens" }, "thoughts_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Thoughts Tokens" }, "total_tokens": { "type": "integer", "title": "Total Tokens" } }, "type": "object", "required": [ "prompt_tokens", "completion_tokens", "total_tokens" ], "title": "TokenMetrics", "description": "Token usage metrics from LLM call." }, "UsageCreate": { "properties": { "dose_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Dose Value" }, "dose_unit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dose Unit" }, "frequency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Frequency" }, "schedule_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Schedule Text" }, "as_needed": { "type": "boolean", "title": "As Needed", "default": false }, "valid_from": { "type": "string", "format": "date-time", "title": "Valid From" }, "valid_to": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Valid To" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "valid_from" ], "title": "UsageCreate" }, "UsageUpdate": { "properties": { "dose_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Dose Value" }, "dose_unit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dose Unit" }, "frequency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Frequency" }, "schedule_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Schedule Text" }, "as_needed": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "As Needed" }, "valid_from": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Valid From" }, "valid_to": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Valid To" }, "source_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source File" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "UsageUpdate" }, "UserProfilePublic": { "properties": { "id": { "type": "string", "title": "Id" }, "birth_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Birth Date" }, "sex_at_birth": { "anyOf": [ { "$ref": "#/components/schemas/SexAtBirth" }, { "type": "null" } ] }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "id", "birth_date", "sex_at_birth", "created_at", "updated_at" ], "title": "UserProfilePublic" }, "UserProfileUpdate": { "properties": { "birth_date": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Birth Date" }, "sex_at_birth": { "anyOf": [ { "$ref": "#/components/schemas/SexAtBirth" }, { "type": "null" } ] } }, "type": "object", "title": "UserProfileUpdate" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" }, "input": { "title": "Input" }, "ctx": { "type": "object", "title": "Context" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" } }, "securitySchemes": { "HTTPBearer": { "type": "http", "scheme": "bearer" } } } }