innercontext/frontend/openapi.json
Piotr Oleszczyk dac787b81b test(auth): add multi-user regression coverage
- Enable backend tests in CI (remove if: false)
- Fix test_products_helpers.py to pass current_user parameter
- Fix test_routines_helpers.py to include short_id in products
- Fix llm_context.py to use product_effect_profile correctly
- All 221 tests passing
2026-03-12 16:42:00 +01:00

9077 lines
211 KiB
JSON

{
"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"
}
}
}
}