{"openapi":"3.1.0","info":{"title":"Casa Aurora — API da loja de testes","description":"Dados exclusivamente sintéticos. A API /api/v1 é somente de leitura e usa X-API-Key. As operações /api/store alteram apenas a loja fictícia e usam cookie de sessão + CSRF. Todos os montantes são cêntimos de EUR com IVA incluído. Timestamps UTC ISO 8601. Esta aplicação não implementa nem presume endpoints do Cartchrono.","version":"1.0.0"},"servers":[{"url":"https://aurora.medfacts.pt","description":"Loja Casa Aurora configurada"}],"paths":{"/health":{"get":{"tags":["Saúde"],"summary":"Saúde da aplicação e ligação SQLite","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/store/session":{"get":{"tags":["Loja — leitura"],"summary":"Iniciar ou consultar sessão sintética","operationId":"store_session_api_store_session_get","parameters":[{"name":"source","in":"query","required":false,"schema":{"enum":["store","simulator"],"type":"string","default":"store","title":"Source"}},{"name":"device_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["desktop","mobile","tablet"],"type":"string"},{"type":"null"}],"title":"Device Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/widget-config":{"get":{"tags":["Loja — leitura"],"summary":"Configuração pública dos espaços do widget","operationId":"widget_config_api_store_widget_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/store/catalog-meta":{"get":{"tags":["Loja — leitura"],"summary":"Catalog Meta","operationId":"catalog_meta_api_store_catalog_meta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/store/products":{"get":{"tags":["Loja — leitura"],"summary":"Catálogo com pesquisa, filtros e ordenação","operationId":"store_products_api_store_products_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Category"}},{"name":"subcategory","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Subcategory"}},{"name":"style","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Style"}},{"name":"min_price_cents","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Price Cents"}},{"name":"max_price_cents","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Max Price Cents"}},{"name":"in_stock","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"In Stock"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["popular","price_asc","price_desc","name","newest"],"type":"string","default":"popular","title":"Sort"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":120,"minimum":1,"default":24,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Product_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/products/{product_id}":{"get":{"tags":["Loja — leitura"],"summary":"Store Product","operationId":"store_product_api_store_products__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/test-customers":{"get":{"tags":["Loja — leitura"],"summary":"Seletor de identidades exclusivamente fictícias","operationId":"test_customers_api_store_test_customers_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Q"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/identify":{"post":{"tags":["Loja — simulação"],"summary":"Store Identify","operationId":"store_identify_api_store_identify_post","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Csrf-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentifyInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/logout":{"post":{"tags":["Loja — simulação"],"summary":"Store Logout","operationId":"store_logout_api_store_logout_post","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Csrf-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/cart":{"get":{"tags":["Loja — leitura"],"summary":"Store Cart","operationId":"store_cart_api_store_cart_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Loja — simulação"],"summary":"Store Add Cart","operationId":"store_add_cart_api_store_cart_post","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Csrf-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/cart/{product_id}":{"patch":{"tags":["Loja — simulação"],"summary":"Store Set Cart","operationId":"store_set_cart_api_store_cart__product_id__patch","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Csrf-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartQuantityInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Loja — simulação"],"summary":"Store Remove Cart","operationId":"store_remove_cart_api_store_cart__product_id__delete","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Csrf-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/events":{"post":{"tags":["Loja — simulação"],"summary":"Recolha local de navegação; eventos de compra só pelo servidor","operationId":"store_events_api_store_events_post","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Csrf-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/checkout":{"post":{"tags":["Loja — simulação"],"summary":"Compra fictícia transacional e idempotente","operationId":"store_checkout_api_store_checkout_post","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Csrf-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/orders":{"get":{"tags":["Loja — leitura"],"summary":"Store Orders","operationId":"store_orders_api_store_orders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/admin/summary":{"get":{"tags":["Administração"],"summary":"Admin Summary","operationId":"admin_summary_api_admin_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"SyntheticAdmin":[]}]}},"/api/admin/diagnostics":{"get":{"tags":["Administração"],"summary":"Admin Diagnostics","operationId":"admin_diagnostics_api_admin_diagnostics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"SyntheticAdmin":[]}]}},"/api/admin/{dataset}":{"get":{"tags":["Administração"],"summary":"Admin Dataset","operationId":"admin_dataset_api_admin__dataset__get","security":[{"SyntheticAdmin":[]}],"parameters":[{"name":"dataset","in":"path","required":true,"schema":{"enum":["products","customers","orders","order_items","events","sessions","searches","stock_movements","refunds"],"type":"string","title":"Dataset"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/products":{"get":{"tags":["Integração — leitura"],"summary":"Listar products","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_products","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Product_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/products/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar products por identificador","operationId":"get_products","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers":{"get":{"tags":["Integração — leitura"],"summary":"Listar customers","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_customers","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Customer_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar customers por identificador","operationId":"get_customers","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orders":{"get":{"tags":["Integração — leitura"],"summary":"Listar orders","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_orders","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Order_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orders/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar orders por identificador","operationId":"get_orders","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/order_items":{"get":{"tags":["Integração — leitura"],"summary":"Listar order_items","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_order_items","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_OrderItem_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/order_items/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar order_items por identificador","operationId":"get_order_items","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events":{"get":{"tags":["Integração — leitura"],"summary":"Listar events","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_events","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Event_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar events por identificador","operationId":"get_events","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sessions":{"get":{"tags":["Integração — leitura"],"summary":"Listar sessions","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_sessions","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Session_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sessions/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar sessions por identificador","operationId":"get_sessions","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/searches":{"get":{"tags":["Integração — leitura"],"summary":"Listar searches","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_searches","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Search_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/searches/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar searches por identificador","operationId":"get_searches","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock_movements":{"get":{"tags":["Integração — leitura"],"summary":"Listar stock_movements","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_stock_movements","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_StockMovement_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock_movements/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar stock_movements por identificador","operationId":"get_stock_movements","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StockMovement"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/refunds":{"get":{"tags":["Integração — leitura"],"summary":"Listar refunds","description":"Paginação por updated_at e ID. Campos monetários em cêntimos. Sem efeitos na loja. Nunca expõe avaliação/segmentos, tokens de sessão ou chaves.","operationId":"list_refunds","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Page Size"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC.","title":"Updated Since"},"description":"Data inclusiva ISO 8601 com timezone; normalizada para UTC."},{"name":"updated_until","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inclusiva ISO 8601 com timezone.","title":"Updated Until"},"description":"Data inclusiva ISO 8601 com timezone."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["historical","runtime"],"type":"string"},{"type":"null"}],"description":"Apenas recursos que têm campo origin.","title":"Origin"},"description":"Apenas recursos que têm campo origin."},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"order_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_Refund_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/refunds/{record_id}":{"get":{"tags":["Integração — leitura"],"summary":"Consultar refunds por identificador","operationId":"get_refunds","security":[{"IntegrationReadKey":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Refund"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CartInput":{"properties":{"product_id":{"type":"string","maxLength":80,"minLength":1,"title":"Product Id"},"quantity":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Quantity"}},"additionalProperties":false,"type":"object","required":["product_id","quantity"],"title":"CartInput"},"CartQuantityInput":{"properties":{"quantity":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Quantity"}},"additionalProperties":false,"type":"object","required":["quantity"],"title":"CartQuantityInput"},"CheckoutInput":{"properties":{"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"pattern":"^[A-Za-z0-9_.:-]+$","title":"Idempotency Key"},"simulation_confirmed":{"type":"boolean","const":true,"title":"Simulation Confirmed","description":"Confirmação explícita de que a compra é fictícia."}},"additionalProperties":false,"type":"object","required":["idempotency_key","simulation_confirmed"],"title":"CheckoutInput"},"Customer":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email","description":"Endereço sintético no domínio reservado example.com."},"city":{"type":"string","title":"City"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"is_test":{"type":"integer","title":"Is Test"}},"additionalProperties":true,"type":"object","required":["customer_id","name","email","city","created_at","updated_at","is_test"],"title":"Customer"},"Event":{"properties":{"event_id":{"type":"string","title":"Event Id"},"event_type":{"type":"string","enum":["session_start","page_view","category_view","search","product_view","add_to_cart","remove_from_cart","checkout_start","purchase"],"title":"Event Type"},"timestamp":{"type":"string","title":"Timestamp"},"session_id":{"type":"string","title":"Session Id"},"anonymous_id":{"type":"string","title":"Anonymous Id"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"},"order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"},"search_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Query"},"quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity"},"page_url":{"type":"string","title":"Page Url"},"referrer":{"type":"string","title":"Referrer"},"device_type":{"type":"string","title":"Device Type"},"source":{"type":"string","title":"Source"},"metadata_json":{"type":"string","title":"Metadata Json"},"origin":{"type":"string","enum":["historical","runtime"],"title":"Origin"},"updated_at":{"type":"string","title":"Updated At"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","default":{}}},"additionalProperties":true,"type":"object","required":["event_id","event_type","timestamp","session_id","anonymous_id","customer_id","product_id","order_id","search_query","quantity","page_url","referrer","device_type","source","metadata_json","origin","updated_at"],"title":"Event"},"EventInput":{"properties":{"event_type":{"type":"string","enum":["page_view","category_view","search","product_view","checkout_start"],"title":"Event Type"},"page_url":{"type":"string","maxLength":2048,"title":"Page Url","default":"/"},"product_id":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Product Id"},"search_query":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Search Query"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":false,"type":"object","required":["event_type"],"title":"EventInput"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IdentifyInput":{"properties":{"customer_id":{"type":"string","maxLength":80,"minLength":1,"title":"Customer Id"}},"additionalProperties":false,"type":"object","required":["customer_id"],"title":"IdentifyInput"},"Order":{"properties":{"order_id":{"type":"string","title":"Order Id"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","enum":["completed","cancelled","partially_refunded"],"title":"Status"},"subtotal_cents":{"type":"integer","title":"Subtotal Cents"},"discount_cents":{"type":"integer","title":"Discount Cents"},"shipping_cents":{"type":"integer","title":"Shipping Cents"},"tax_cents":{"type":"integer","title":"Tax Cents","description":"IVA já incluído nos artigos e portes; não somar de novo."},"total_cents":{"type":"integer","title":"Total Cents"},"refunded_cents":{"type":"integer","title":"Refunded Cents"},"currency":{"type":"string","const":"EUR","title":"Currency"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"origin":{"type":"string","enum":["historical","runtime"],"title":"Origin"}},"additionalProperties":true,"type":"object","required":["order_id","customer_id","session_id","status","subtotal_cents","discount_cents","shipping_cents","tax_cents","total_cents","refunded_cents","currency","created_at","updated_at","origin"],"title":"Order"},"OrderItem":{"properties":{"order_item_id":{"type":"string","title":"Order Item Id"},"order_id":{"type":"string","title":"Order Id"},"product_id":{"type":"string","title":"Product Id"},"quantity":{"type":"integer","title":"Quantity"},"unit_price_cents":{"type":"integer","title":"Unit Price Cents","description":"Preço de tabela histórico no momento da encomenda."},"discount_cents":{"type":"integer","title":"Discount Cents"},"subtotal_cents":{"type":"integer","title":"Subtotal Cents"},"tax_cents":{"type":"integer","title":"Tax Cents"},"total_cents":{"type":"integer","title":"Total Cents"},"vat_rate_bps":{"type":"integer","title":"Vat Rate Bps"},"refunded_quantity":{"type":"integer","title":"Refunded Quantity"},"updated_at":{"type":"string","title":"Updated At"},"origin":{"type":"string","enum":["historical","runtime"],"title":"Origin"}},"additionalProperties":true,"type":"object","required":["order_item_id","order_id","product_id","quantity","unit_price_cents","discount_cents","subtotal_cents","tax_cents","total_cents","vat_rate_bps","refunded_quantity","updated_at","origin"],"title":"OrderItem"},"Page_Customer_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Customer"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[Customer]"},"Page_Event_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Event"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[Event]"},"Page_OrderItem_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OrderItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[OrderItem]"},"Page_Order_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Order"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[Order]"},"Page_Product_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Product"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[Product]"},"Page_Refund_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Refund"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[Refund]"},"Page_Search_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Search"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[Search]"},"Page_Session_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Session"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[Session]"},"Page_StockMovement_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StockMovement"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","description":"Número total de registos que respeitam os filtros."},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"},"has_next":{"type":"boolean","title":"Has Next"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"next_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Url"}},"type":"object","required":["items","total","page","page_size","total_pages","has_next","next_page"],"title":"Page[StockMovement]"},"Product":{"properties":{"product_id":{"type":"string","title":"Product Id"},"sku":{"type":"string","title":"Sku"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"category":{"type":"string","title":"Category"},"subcategory":{"type":"string","title":"Subcategory"},"brand":{"type":"string","title":"Brand"},"style":{"type":"string","title":"Style"},"colors_json":{"type":"string","title":"Colors Json"},"materials_json":{"type":"string","title":"Materials Json"},"tags_json":{"type":"string","title":"Tags Json"},"price_cents":{"type":"integer","title":"Price Cents","description":"Preço de tabela em cêntimos de EUR, IVA incluído."},"promo_price_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Promo Price Cents","description":"Preço promocional atual em cêntimos; null quando não há promoção."},"vat_rate_bps":{"type":"integer","title":"Vat Rate Bps","description":"Taxa de IVA em pontos base: 2300 corresponde a 23%."},"cost_cents":{"type":"integer","title":"Cost Cents","description":"Custo inteiramente fictício em cêntimos."},"stock_quantity":{"type":"integer","title":"Stock Quantity","description":"Stock atual; consultar stock_movements para o histórico."},"is_active":{"type":"integer","title":"Is Active"},"availability":{"type":"string","enum":["in_stock","out_of_stock"],"title":"Availability"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"product_url":{"type":"string","title":"Product Url"},"image_url":{"type":"string","title":"Image Url"},"product_path":{"type":"string","title":"Product Path"},"image_path":{"type":"string","title":"Image Path"},"variant_group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Group Id"},"variant_attributes_json":{"type":"string","title":"Variant Attributes Json"},"colors":{"items":{"type":"string"},"type":"array","title":"Colors","default":[]},"materials":{"items":{"type":"string"},"type":"array","title":"Materials","default":[]},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"variant_attributes":{"additionalProperties":true,"type":"object","title":"Variant Attributes","default":{}}},"additionalProperties":true,"type":"object","required":["product_id","sku","name","description","category","subcategory","brand","style","colors_json","materials_json","tags_json","price_cents","promo_price_cents","vat_rate_bps","cost_cents","stock_quantity","is_active","availability","created_at","updated_at","product_url","image_url","product_path","image_path","variant_group_id","variant_attributes_json"],"title":"Product"},"Refund":{"properties":{"refund_id":{"type":"string","title":"Refund Id"},"order_id":{"type":"string","title":"Order Id"},"order_item_id":{"type":"string","title":"Order Item Id"},"quantity":{"type":"integer","title":"Quantity"},"amount_cents":{"type":"integer","title":"Amount Cents"},"tax_cents":{"type":"integer","title":"Tax Cents"},"reason":{"type":"string","title":"Reason"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"origin":{"type":"string","enum":["historical","runtime"],"title":"Origin"}},"additionalProperties":true,"type":"object","required":["refund_id","order_id","order_item_id","quantity","amount_cents","tax_cents","reason","created_at","updated_at","origin"],"title":"Refund"},"Search":{"properties":{"search_id":{"type":"string","title":"Search Id"},"event_id":{"type":"string","title":"Event Id"},"session_id":{"type":"string","title":"Session Id"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"query":{"type":"string","title":"Query"},"result_count":{"type":"integer","title":"Result Count"},"timestamp":{"type":"string","title":"Timestamp"},"updated_at":{"type":"string","title":"Updated At"},"origin":{"type":"string","enum":["historical","runtime"],"title":"Origin"}},"additionalProperties":true,"type":"object","required":["search_id","event_id","session_id","customer_id","query","result_count","timestamp","updated_at","origin"],"title":"Search"},"Session":{"properties":{"session_id":{"type":"string","title":"Session Id"},"anonymous_id":{"type":"string","title":"Anonymous Id"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"started_at":{"type":"string","title":"Started At"},"ended_at":{"type":"string","title":"Ended At"},"device_type":{"type":"string","title":"Device Type"},"source":{"type":"string","title":"Source"},"referrer":{"type":"string","title":"Referrer"},"origin":{"type":"string","enum":["historical","runtime"],"title":"Origin"},"updated_at":{"type":"string","title":"Updated At"}},"additionalProperties":true,"type":"object","required":["session_id","anonymous_id","customer_id","started_at","ended_at","device_type","source","referrer","origin","updated_at"],"title":"Session"},"StockMovement":{"properties":{"movement_id":{"type":"string","title":"Movement Id"},"product_id":{"type":"string","title":"Product Id"},"order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id"},"order_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Item Id"},"movement_type":{"type":"string","enum":["receipt","sale","return","adjustment"],"title":"Movement Type"},"quantity_delta":{"type":"integer","title":"Quantity Delta"},"balance_after":{"type":"integer","title":"Balance After"},"occurred_at":{"type":"string","title":"Occurred At"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"origin":{"type":"string","enum":["historical","runtime"],"title":"Origin"}},"additionalProperties":true,"type":"object","required":["movement_id","product_id","order_id","order_item_id","movement_type","quantity_delta","balance_after","occurred_at","created_at","updated_at","origin"],"title":"StockMovement"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"SyntheticAdmin":{"type":"http","description":"Administrador da loja fictícia; credenciais configuráveis no .env.","scheme":"basic"},"IntegrationReadKey":{"type":"apiKey","description":"Chave apenas de leitura, definida no servidor em INTEGRATION_API_KEY.","in":"header","name":"X-API-Key"}}},"tags":[{"name":"Integração — leitura","description":"Base configurada: https://aurora.medfacts.pt/api/v1. Paginação estável por updated_at e ID. Datas inclusivas."},{"name":"Loja — leitura","description":"Catálogo e dados da sessão de teste."},{"name":"Loja — simulação","description":"Operações com efeitos apenas na base sintética; cookie e X-CSRF-Token obrigatórios."},{"name":"Administração","description":"Consulta protegida por HTTP Basic; não é autenticação de clientes reais."},{"name":"Saúde","description":"Verificação local; não verifica o Cartchrono."}]}