{"openapi":"3.1.0","info":{"title":"Smart Cabinet Backend","version":"0.1.0"},"paths":{"/api/v1/auth/device-credentials/create":{"post":{"tags":["auth"],"summary":"Create Device Credentials","operationId":"create_device_credentials_api_v1_auth_device_credentials_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceCredentialCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceCredentialCreateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/device-credentials":{"get":{"tags":["auth"],"summary":"List Device Credentials","operationId":"list_device_credentials_api_v1_auth_device_credentials_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeviceListItemOut"},"type":"array","title":"Response List Device Credentials Api V1 Auth Device Credentials Get"}}}}}}},"/api/v1/auth/token":{"post":{"tags":["auth"],"summary":"Create Device Token","operationId":"create_device_token_api_v1_auth_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/google/client-config":{"get":{"tags":["auth"],"summary":"Google Client Config","operationId":"google_client_config_api_v1_auth_google_client_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleClientConfigOut"}}}}}}},"/api/v1/auth/google/signup":{"post":{"tags":["auth"],"summary":"Google Signup","operationId":"google_signup_api_v1_auth_google_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleSignupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleSignupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/session/refresh":{"post":{"tags":["auth"],"summary":"Refresh Member Session","description":"Geçerli bir üye oturumunu yeni bir süreyle yeniler (aktif kullanıcılar çıkış yapmak zorunda kalmaz).","operationId":"refresh_member_session_api_v1_auth_session_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberSessionOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/google/members":{"get":{"tags":["auth"],"summary":"List Google Members","operationId":"list_google_members_api_v1_auth_google_members_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserOut"},"type":"array","title":"Response List Google Members Api V1 Auth Google Members Get"}}}}}}},"/api/v1/events/ingest":{"post":{"tags":["events"],"summary":"Ingest Event","operationId":"ingest_event_api_v1_events_ingest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionEventIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionEventOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/events/logs":{"get":{"tags":["events"],"summary":"List Event Logs","operationId":"list_event_logs_api_v1_events_logs_get","parameters":[{"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/VisionEventLog"},"title":"Response List Event Logs Api V1 Events Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cabinets/machines/heartbeat":{"post":{"tags":["cabinets"],"summary":"Machine Heartbeat","operationId":"machine_heartbeat_api_v1_cabinets_machines_heartbeat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MachineHeartbeatOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cabinets/machines/dynamic":{"get":{"tags":["cabinets"],"summary":"List Dynamic Machines","operationId":"list_dynamic_machines_api_v1_cabinets_machines_dynamic_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DynamicMachineOut"},"type":"array","title":"Response List Dynamic Machines Api V1 Cabinets Machines Dynamic Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cabinets/dashboard/summary":{"get":{"tags":["cabinets"],"summary":"Dashboard Summary","operationId":"dashboard_summary_api_v1_cabinets_dashboard_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardSummaryOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cabinets/customers":{"get":{"tags":["cabinets"],"summary":"List Customers","operationId":"list_customers_api_v1_cabinets_customers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CustomerOut"},"type":"array","title":"Response List Customers Api V1 Cabinets Customers Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["cabinets"],"summary":"Create Customer","operationId":"create_customer_api_v1_cabinets_customers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cabinets/machines":{"get":{"tags":["cabinets"],"summary":"List Machines","operationId":"list_machines_api_v1_cabinets_machines_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MachineOut"},"type":"array","title":"Response List Machines Api V1 Cabinets Machines Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["cabinets"],"summary":"Create Machine","operationId":"create_machine_api_v1_cabinets_machines_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MachineCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MachineOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cabinets/machines/{device_id}":{"put":{"tags":["cabinets"],"summary":"Update Machine","operationId":"update_machine_api_v1_cabinets_machines__device_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","title":"Device Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MachineUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MachineOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cabinets/customers/{customer_id}/machines":{"get":{"tags":["cabinets"],"summary":"List Customer Machines","operationId":"list_customer_machines_api_v1_cabinets_customers__customer_id__machines_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MachineOut"},"title":"Response List Customer Machines Api V1 Cabinets Customers  Customer Id  Machines Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cabinets/prices":{"post":{"tags":["cabinets"],"summary":"Upsert Price","operationId":"upsert_price_api_v1_cabinets_prices_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpsertIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cabinets/customers/{customer_id}/prices":{"get":{"tags":["cabinets"],"summary":"List Customer Prices","operationId":"list_customer_prices_api_v1_cabinets_customers__customer_id__prices_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceItemOut"},"title":"Response List Customer Prices Api V1 Cabinets Customers  Customer Id  Prices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cabinets/machines/{device_id}/prices":{"put":{"tags":["cabinets"],"summary":"Replace Machine Prices","operationId":"replace_machine_prices_api_v1_cabinets_machines__device_id__prices_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","title":"Device Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MachinePricesReplaceIn"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cabinets/machines/{device_id}/slot-regions":{"put":{"tags":["cabinets"],"summary":"Replace Slot Regions","description":"One-time-per-install calibration: shelf/slot -> camera-frame region, used later to\nscope bbox pre-labeling candidates instead of searching the whole frame.","operationId":"replace_slot_regions_api_v1_cabinets_machines__device_id__slot_regions_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","title":"Device Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotRegionsReplaceIn"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["cabinets"],"summary":"List Slot Regions","operationId":"list_slot_regions_api_v1_cabinets_machines__device_id__slot_regions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","title":"Device Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SlotRegionOut"},"title":"Response List Slot Regions Api V1 Cabinets Machines  Device Id  Slot Regions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cabinets/barcode-lookup/{barcode}":{"get":{"tags":["cabinets"],"summary":"Lookup Barcode","description":"Best-effort Open Food Facts lookup to help fill in a product's name/thumbnail\nwhile its barcode is being entered. A miss is normal (OFF doesn't catalogue every\nregional/private-label product) — the caller still saves the product manually,\nwith no image. Any authenticated member may call this; it only ever reads a\npublic third-party catalog, nothing account-specific.","operationId":"lookup_barcode_api_v1_cabinets_barcode_lookup__barcode__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"barcode","in":"path","required":true,"schema":{"type":"string","title":"Barcode"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BarcodeLookupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prepaid/lists":{"get":{"tags":["prepaid"],"summary":"List Lists","operationId":"list_lists_api_v1_prepaid_lists_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserListOut"},"type":"array","title":"Response List Lists Api V1 Prepaid Lists Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["prepaid"],"summary":"Create List","operationId":"create_list_api_v1_prepaid_lists_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/prepaid/associations":{"get":{"tags":["prepaid"],"summary":"List Associations","operationId":"list_associations_api_v1_prepaid_associations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserListAssociationOut"},"type":"array","title":"Response List Associations Api V1 Prepaid Associations Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/prepaid/lists/{list_id}/association":{"put":{"tags":["prepaid"],"summary":"Associate List","operationId":"associate_list_api_v1_prepaid_lists__list_id__association_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"string","title":"List Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListAssociationIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListAssociationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["prepaid"],"summary":"Delete Association","operationId":"delete_association_api_v1_prepaid_lists__list_id__association_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"string","title":"List Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prepaid/lists/{list_id}/association/deploy":{"post":{"tags":["prepaid"],"summary":"Deploy Association","operationId":"deploy_association_api_v1_prepaid_lists__list_id__association_deploy_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"string","title":"List Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssociationDeployIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssociationDeployOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prepaid/lists/{list_id}/users":{"post":{"tags":["prepaid"],"summary":"Create User","operationId":"create_user_api_v1_prepaid_lists__list_id__users_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"string","title":"List Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepaidUserCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepaidUserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["prepaid"],"summary":"List Users","operationId":"list_users_api_v1_prepaid_lists__list_id__users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"string","title":"List Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PrepaidUserOut"},"title":"Response List Users Api V1 Prepaid Lists  List Id  Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prepaid/cards":{"get":{"tags":["prepaid"],"summary":"List Cards","operationId":"list_cards_api_v1_prepaid_cards_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CardOut"},"type":"array","title":"Response List Cards Api V1 Prepaid Cards Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["prepaid"],"summary":"Create Card","operationId":"create_card_api_v1_prepaid_cards_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/prepaid/cards/{card_id}/status":{"patch":{"tags":["prepaid"],"summary":"Change Card Status","operationId":"change_card_status_api_v1_prepaid_cards__card_id__status_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"card_id","in":"path","required":true,"schema":{"type":"string","title":"Card Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardStatusIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prepaid/cards/{card_id}":{"delete":{"tags":["prepaid"],"summary":"Delete Card","operationId":"delete_card_api_v1_prepaid_cards__card_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"card_id","in":"path","required":true,"schema":{"type":"string","title":"Card Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prepaid/cards/{card_id}/top-ups":{"post":{"tags":["prepaid"],"summary":"Top Up","operationId":"top_up_api_v1_prepaid_cards__card_id__top_ups_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"card_id","in":"path","required":true,"schema":{"type":"string","title":"Card Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopUpIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardTransactionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prepaid/transactions":{"get":{"tags":["prepaid"],"summary":"List Transactions","operationId":"list_transactions_api_v1_prepaid_transactions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"card_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Card Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CardTransactionOut"},"title":"Response List Transactions Api V1 Prepaid Transactions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["prepaid"],"summary":"Purchase","operationId":"purchase_api_v1_prepaid_transactions_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardTransactionIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardTransactionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/start":{"post":{"tags":["sales"],"summary":"Start Sale","operationId":"start_sale_api_v1_sales_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaleSessionStartIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaleSessionStartOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/items":{"post":{"tags":["sales"],"summary":"Add Item","operationId":"add_item_api_v1_sales_items_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaleItemIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaleItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/items/return":{"post":{"tags":["sales"],"summary":"Return Item","operationId":"return_item_api_v1_sales_items_return_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaleItemReturnIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaleItemReturnOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/door-locked":{"post":{"tags":["sales"],"summary":"Door Locked","operationId":"door_locked_api_v1_sales_door_locked_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoorLockedIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoorLockedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/payment-complete":{"post":{"tags":["sales"],"summary":"Payment Complete","operationId":"payment_complete_api_v1_sales_payment_complete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentCompleteIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentCompleteOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/logs":{"get":{"tags":["sales"],"summary":"Sales Logs","operationId":"sales_logs_api_v1_sales_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"}},{"name":"status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Filter"}},{"name":"transaction_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Number"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SaleLogOut"},"title":"Response Sales Logs Api V1 Sales Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test-broadcast/start":{"post":{"tags":["test-broadcast"],"summary":"Start Test Broadcast","operationId":"start_test_broadcast_api_v1_test_broadcast_start_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TestBroadcastStartIn"},{"type":"null"}],"title":"Payload"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestBroadcastStartOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test-broadcast/stop":{"post":{"tags":["test-broadcast"],"summary":"Stop Test Broadcast","operationId":"stop_test_broadcast_api_v1_test_broadcast_stop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestBroadcastStopIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestBroadcastStopOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test-broadcast/current":{"get":{"tags":["test-broadcast"],"summary":"Get Current Test Broadcast","operationId":"get_current_test_broadcast_api_v1_test_broadcast_current_get","parameters":[{"name":"stream_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestBroadcastFrame"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test-broadcast/streams":{"get":{"tags":["test-broadcast"],"summary":"List Test Broadcast Streams","operationId":"list_test_broadcast_streams_api_v1_test_broadcast_streams_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TestBroadcastFrame"},"type":"array","title":"Response List Test Broadcast Streams Api V1 Test Broadcast Streams Get"}}}}}}},"/api/v1/test-broadcast/stream":{"get":{"tags":["test-broadcast"],"summary":"Stream Test Broadcast","operationId":"stream_test_broadcast_api_v1_test_broadcast_stream_get","parameters":[{"name":"stream_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/video-labels/context":{"get":{"tags":["video-labels"],"summary":"Video Label Context","description":"Return one timestamped snapshot so the UI can synchronize its clock and sale.","operationId":"video_label_context_api_v1_video_labels_context_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"transaction_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Number"}},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoLabelContext"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/video-labels/segments":{"get":{"tags":["video-labels"],"summary":"Recording Segments","operationId":"recording_segments_api_v1_video_labels_segments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"stream_path","in":"query","required":true,"schema":{"type":"string","title":"Stream Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RecordingSegmentOut"},"title":"Response Recording Segments Api V1 Video Labels Segments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/video-labels":{"post":{"tags":["video-labels"],"summary":"Create Video Label","operationId":"create_video_label_api_v1_video_labels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoLabelCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoLabelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/video-labels/{label_id}/clip-job":{"get":{"tags":["video-labels"],"summary":"Get Dataset Clip Job","operationId":"get_dataset_clip_job_api_v1_video_labels__label_id__clip_job_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Label Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetClipJobOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/video-labels/{label_id}":{"patch":{"tags":["video-labels"],"summary":"Correct Video Label","operationId":"correct_video_label_api_v1_video_labels__label_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Label Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoLabelCorrection"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoLabelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["video-labels"],"summary":"Cancel Video Label","operationId":"cancel_video_label_api_v1_video_labels__label_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Label Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VideoLabelCancel"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoLabelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/video-labels/transactions/{transaction_number}":{"get":{"tags":["video-labels"],"summary":"List Transaction Video Labels","operationId":"list_transaction_video_labels_api_v1_video_labels_transactions__transaction_number__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"transaction_number","in":"path","required":true,"schema":{"type":"string","title":"Transaction Number"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"alignment_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(aligned|uncertain)$"},{"type":"null"}],"title":"Alignment Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoLabelList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/video-labels/transactions/{transaction_number}/download":{"get":{"tags":["video-labels"],"summary":"Download Transaction Dataset","description":"Download owned transaction labels and ready clips without exposing S3 credentials.","operationId":"download_transaction_dataset_api_v1_video_labels_transactions__transaction_number__download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"transaction_number","in":"path","required":true,"schema":{"type":"string","title":"Transaction Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/video-labels/transactions/{transaction_number}/dataset":{"get":{"tags":["video-labels"],"summary":"Export Transaction Dataset","operationId":"export_transaction_dataset_api_v1_video_labels_transactions__transaction_number__dataset_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"transaction_number","in":"path","required":true,"schema":{"type":"string","title":"Transaction Number"}},{"name":"negative_count","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":0,"default":10,"title":"Negative Count"}},{"name":"negative_clip_seconds","in":"query","required":false,"schema":{"type":"number","maximum":30,"exclusiveMinimum":0,"default":4,"title":"Negative Clip Seconds"}},{"name":"exclusion_margin_seconds","in":"query","required":false,"schema":{"type":"number","maximum":30,"minimum":0,"default":2,"title":"Exclusion Margin Seconds"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoDatasetExport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dataset-exports":{"post":{"tags":["dataset-exports"],"summary":"Create Dataset Export","description":"Create an immutable version immediately and queue its manifest build.","operationId":"create_dataset_export_api_v1_dataset_exports_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetExportCreate"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetExportOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/dataset-exports/{dataset_version}":{"get":{"tags":["dataset-exports"],"summary":"Get Dataset Export","operationId":"get_dataset_export_api_v1_dataset_exports__dataset_version__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_version","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetExportOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dataset-exports/{dataset_version}/training-manifest":{"get":{"tags":["dataset-exports"],"summary":"Get Training Manifest","description":"Fail closed unless both export completion and checksum verification are recorded.","operationId":"get_training_manifest_api_v1_dataset_exports__dataset_version__training_manifest_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_version","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingDatasetManifest"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dataset-exports/{dataset_version}/purge-clips":{"post":{"tags":["dataset-exports"],"summary":"Purge Dataset Export Clips","description":"Delete this version's clip files from object storage once a consumer has a\nchecksum-verified local copy. video_labels rows and their audit trail are\nuntouched — only dataset_clip_jobs' cached artifact is reclaimed.","operationId":"purge_dataset_export_clips_api_v1_dataset_exports__dataset_version__purge_clips_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_version","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurgeClipsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/demo-requests":{"post":{"tags":["demo-requests"],"summary":"Create Demo Request","operationId":"create_demo_request_api_v1_demo_requests_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoRequestIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quote-requests":{"post":{"tags":["demo-requests"],"summary":"Create Quote Request","operationId":"create_quote_request_api_v1_quote_requests_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequestIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}}}}},"components":{"schemas":{"AssociationDeployIn":{"properties":{"price_list_name":{"type":"string","maxLength":100,"minLength":1,"title":"Price List Name"},"products":{"items":{"$ref":"#/components/schemas/AssociationPriceItemIn"},"type":"array","minItems":1,"title":"Products"}},"type":"object","required":["price_list_name","products"],"title":"AssociationDeployIn"},"AssociationDeployOut":{"properties":{"device_ids":{"items":{"type":"string"},"type":"array","title":"Device Ids"},"product_count":{"type":"integer","title":"Product Count"},"user_count":{"type":"integer","title":"User Count"},"card_count":{"type":"integer","title":"Card Count"}},"type":"object","required":["device_ids","product_count","user_count","card_count"],"title":"AssociationDeployOut"},"AssociationPriceItemIn":{"properties":{"product_code":{"type":"string","maxLength":100,"minLength":1,"title":"Product Code"},"product_name":{"type":"string","maxLength":200,"minLength":1,"title":"Product Name"},"price":{"type":"number","exclusiveMinimum":0.0,"title":"Price"}},"type":"object","required":["product_code","product_name","price"],"title":"AssociationPriceItemIn"},"BarcodeLookupOut":{"properties":{"checksum_valid":{"type":"boolean","title":"Checksum Valid"},"found":{"type":"boolean","title":"Found"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"brands":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brands"}},"type":"object","required":["checksum_valid","found"],"title":"BarcodeLookupOut"},"CardCreateIn":{"properties":{"user_id":{"type":"string","title":"User Id"},"card_number":{"anyOf":[{"type":"string","maxLength":32,"minLength":4,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"title":"Card Number"},"initial_balance":{"type":"number","maximum":1000000.0,"minimum":0.0,"title":"Initial Balance","default":0}},"type":"object","required":["user_id"],"title":"CardCreateIn"},"CardOut":{"properties":{"card_id":{"type":"string","title":"Card Id"},"card_number":{"type":"string","title":"Card Number"},"user_id":{"type":"string","title":"User Id"},"user_full_name":{"type":"string","title":"User Full Name"},"list_id":{"type":"string","title":"List Id"},"balance":{"type":"number","title":"Balance"},"currency":{"type":"string","title":"Currency"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["card_id","card_number","user_id","user_full_name","list_id","balance","currency","status","created_at"],"title":"CardOut"},"CardStatusIn":{"properties":{"status":{"type":"string","pattern":"^(active|blocked)$","title":"Status"}},"type":"object","required":["status"],"title":"CardStatusIn"},"CardTransactionIn":{"properties":{"card_number":{"type":"string","maxLength":32,"minLength":4,"pattern":"^[A-Za-z0-9_-]+$","title":"Card Number"},"amount":{"type":"number","maximum":1000000.0,"exclusiveMinimum":0.0,"title":"Amount"},"idempotency_key":{"type":"string","maxLength":100,"minLength":8,"title":"Idempotency Key"},"description":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Description"}},"type":"object","required":["card_number","amount","idempotency_key"],"title":"CardTransactionIn"},"CardTransactionOut":{"properties":{"transaction_id":{"type":"string","title":"Transaction Id"},"card_id":{"type":"string","title":"Card Id"},"transaction_type":{"type":"string","title":"Transaction Type"},"amount":{"type":"number","title":"Amount"},"balance_after":{"type":"number","title":"Balance After"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["transaction_id","card_id","transaction_type","amount","balance_after","device_id","idempotency_key","description","created_at"],"title":"CardTransactionOut"},"CustomerCreateIn":{"properties":{"full_name":{"type":"string","maxLength":120,"minLength":2,"title":"Full Name"},"email":{"type":"string","maxLength":120,"minLength":5,"title":"Email"}},"type":"object","required":["full_name","email"],"title":"CustomerCreateIn"},"CustomerOut":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"full_name":{"type":"string","title":"Full Name"},"email":{"type":"string","title":"Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["customer_id","full_name","email","created_at"],"title":"CustomerOut"},"DashboardSummaryOut":{"properties":{"total_customers":{"type":"integer","title":"Total Customers"},"total_machines":{"type":"integer","title":"Total Machines"},"total_products":{"type":"integer","title":"Total Products"}},"type":"object","required":["total_customers","total_machines","total_products"],"title":"DashboardSummaryOut"},"DatasetClip":{"properties":{"kind":{"type":"string","enum":["positive","negative"],"title":"Kind"},"clip_start_utc":{"type":"string","format":"date-time","title":"Clip Start Utc"},"clip_end_utc":{"type":"string","format":"date-time","title":"Clip End Utc"},"action_type":{"anyOf":[{"type":"string","enum":["take","return","no_product","uncertain","correction"]},{"type":"string","const":"background"}],"title":"Action Type"},"label_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Label Id"},"event_group_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Group Id"},"product_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"},"quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity"}},"type":"object","required":["kind","clip_start_utc","clip_end_utc","action_type"],"title":"DatasetClip"},"DatasetClipJobOut":{"properties":{"label_id":{"type":"string","format":"uuid","title":"Label Id"},"status":{"type":"string","enum":["pending","processing","ready","failed"],"title":"Status"},"attempt_count":{"type":"integer","title":"Attempt Count"},"object_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Key"},"source_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Sha256"},"clip_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Clip Sha256"},"media_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Media Metadata"},"processing_version":{"type":"string","title":"Processing Version"},"processing_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Processing Started At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["label_id","status","attempt_count","object_key","source_sha256","clip_sha256","media_metadata","processing_version","processing_started_at","last_error","created_at","updated_at"],"title":"DatasetClipJobOut"},"DatasetExportCreate":{"properties":{"owner_user_id":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Owner User Id"},"manifest_format":{"type":"string","enum":["jsonl","parquet"],"title":"Manifest Format","default":"jsonl"},"filters":{"$ref":"#/components/schemas/DatasetExportFilters"},"split":{"$ref":"#/components/schemas/DatasetSplitConfig"}},"type":"object","title":"DatasetExportCreate"},"DatasetExportFilters":{"properties":{"start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"ready_after":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ready After"},"ready_before":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ready Before"},"machine_ids":{"items":{"type":"string"},"type":"array","title":"Machine Ids"},"camera_ids":{"items":{"type":"string"},"type":"array","title":"Camera Ids"},"product_codes":{"items":{"type":"string"},"type":"array","title":"Product Codes"},"label_statuses":{"items":{"type":"string","enum":["active","cancelled"]},"type":"array","title":"Label Statuses"},"minimum_quality":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Minimum Quality","default":0.0}},"type":"object","title":"DatasetExportFilters"},"DatasetExportOut":{"properties":{"dataset_version":{"type":"string","format":"uuid","title":"Dataset Version"},"owner_user_id":{"type":"string","title":"Owner User Id"},"requested_by_user_id":{"type":"string","title":"Requested By User Id"},"status":{"type":"string","enum":["pending","processing","completed","failed"],"title":"Status"},"manifest_format":{"type":"string","enum":["jsonl","parquet"],"title":"Manifest Format"},"schema_version":{"type":"string","title":"Schema Version"},"filters":{"additionalProperties":true,"type":"object","title":"Filters"},"split_config":{"additionalProperties":true,"type":"object","title":"Split Config"},"manifest_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Uri"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"},"checksum_verified":{"type":"boolean","title":"Checksum Verified"},"record_count":{"type":"integer","title":"Record Count"},"product_dictionary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Product Dictionary"},"class_indices":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Class Indices"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["dataset_version","owner_user_id","requested_by_user_id","status","manifest_format","schema_version","filters","split_config","manifest_uri","manifest_sha256","checksum_verified","record_count","product_dictionary","class_indices","error","created_at","completed_at"],"title":"DatasetExportOut"},"DatasetSplitConfig":{"properties":{"train":{"type":"number","exclusiveMaximum":1.0,"exclusiveMinimum":0.0,"title":"Train","default":0.8},"validation":{"type":"number","exclusiveMaximum":1.0,"minimum":0.0,"title":"Validation","default":0.1},"test":{"type":"number","exclusiveMaximum":1.0,"minimum":0.0,"title":"Test","default":0.1},"seed":{"type":"string","maxLength":128,"minLength":1,"title":"Seed","default":"smart-cabinet-v1"}},"type":"object","title":"DatasetSplitConfig"},"DemoRequestIn":{"properties":{"full_name":{"type":"string","maxLength":100,"minLength":2,"title":"Full Name"},"company":{"type":"string","maxLength":120,"minLength":2,"title":"Company"},"phone":{"type":"string","maxLength":30,"minLength":7,"pattern":"^[0-9+()\\s-]+$","title":"Phone"},"email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Email"},"location_type":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Location Type"},"message":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Message"},"kvkk_consent":{"type":"boolean","title":"Kvkk Consent"},"website":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Website"}},"type":"object","required":["full_name","company","phone","kvkk_consent"],"title":"DemoRequestIn"},"DemoRequestOut":{"properties":{"request_id":{"type":"string","title":"Request Id"},"message":{"type":"string","title":"Message"}},"type":"object","required":["request_id","message"],"title":"DemoRequestOut"},"DeviceCredentialCreateIn":{"properties":{"device_name":{"type":"string","maxLength":100,"minLength":2,"title":"Device Name","examples":["Kadıköy Merkez Dolap"]}},"type":"object","required":["device_name"],"title":"DeviceCredentialCreateIn"},"DeviceCredentialCreateOut":{"properties":{"device_name":{"type":"string","title":"Device Name"},"device_id":{"type":"string","title":"Device Id"},"device_screet":{"type":"string","title":"Device Screet"}},"type":"object","required":["device_name","device_id","device_screet"],"title":"DeviceCredentialCreateOut"},"DeviceListItemOut":{"properties":{"device_name":{"type":"string","title":"Device Name"},"device_id":{"type":"string","title":"Device Id"},"device_screet":{"type":"string","title":"Device Screet"},"latest_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Token"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["device_name","device_id","device_screet","created_at"],"title":"DeviceListItemOut"},"DeviceTokenOut":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds"}},"type":"object","required":["access_token","expires_in_seconds"],"title":"DeviceTokenOut"},"DeviceTokenRequest":{"properties":{"device_id":{"type":"string","title":"Device Id","examples":["dev_01HXYZ123"]},"device_secret":{"type":"string","title":"Device Secret","examples":["sc_01HXYZ456"]}},"type":"object","required":["device_id","device_secret"],"title":"DeviceTokenRequest"},"DoorLockedIn":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"}},"type":"object","required":["transaction_number"],"title":"DoorLockedIn"},"DoorLockedOut":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"status":{"type":"string","title":"Status"},"final_amount":{"type":"number","title":"Final Amount"}},"type":"object","required":["transaction_number","status","final_amount"],"title":"DoorLockedOut"},"DynamicMachineOut":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"customer_name":{"type":"string","title":"Customer Name"},"machine_name":{"type":"string","title":"Machine Name"},"device_id":{"type":"string","title":"Device Id"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"last_seen_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen At"},"seconds_since_last_seen":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seconds Since Last Seen"},"status":{"type":"string","title":"Status"}},"type":"object","required":["customer_id","customer_name","machine_name","device_id","alias","last_seen_at","seconds_since_last_seen","status"],"title":"DynamicMachineOut"},"GoogleClientConfigOut":{"properties":{"google_client_id":{"type":"string","title":"Google Client Id"}},"type":"object","required":["google_client_id"],"title":"GoogleClientConfigOut"},"GoogleSignupRequest":{"properties":{"google_id_token":{"type":"string","minLength":20,"title":"Google Id Token"}},"type":"object","required":["google_id_token"],"title":"GoogleSignupRequest"},"GoogleSignupResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds"},"user":{"$ref":"#/components/schemas/UserOut"},"is_new_user":{"type":"boolean","title":"Is New User"}},"type":"object","required":["access_token","expires_in_seconds","user","is_new_user"],"title":"GoogleSignupResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MachineCreateIn":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"machine_name":{"type":"string","maxLength":120,"minLength":2,"title":"Machine Name"},"device_id":{"type":"string","maxLength":120,"minLength":4,"title":"Device Id"},"alias":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Alias"},"parameters":{"additionalProperties":{"type":"string"},"type":"object","title":"Parameters"}},"type":"object","required":["customer_id","machine_name","device_id"],"title":"MachineCreateIn"},"MachineHeartbeatOut":{"properties":{"device_id":{"type":"string","title":"Device Id"},"last_seen_at":{"type":"string","format":"date-time","title":"Last Seen At"}},"type":"object","required":["device_id","last_seen_at"],"title":"MachineHeartbeatOut"},"MachineOut":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"customer_name":{"type":"string","title":"Customer Name"},"machine_name":{"type":"string","title":"Machine Name"},"device_id":{"type":"string","title":"Device Id"},"device_screet":{"type":"string","title":"Device Screet"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"parameters":{"additionalProperties":{"type":"string"},"type":"object","title":"Parameters"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["customer_id","customer_name","machine_name","device_id","device_screet","alias","parameters","created_at"],"title":"MachineOut"},"MachinePriceInput":{"properties":{"barcode":{"type":"string","maxLength":64,"minLength":6,"title":"Barcode"},"product_code":{"type":"string","maxLength":64,"minLength":2,"title":"Product Code"},"product_name":{"type":"string","maxLength":120,"minLength":2,"title":"Product Name"},"price":{"type":"number","exclusiveMinimum":0.0,"title":"Price"},"shelf_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shelf No"},"slot_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slot No"},"stock":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stock"},"active":{"type":"boolean","title":"Active","default":true},"category":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Category"},"image_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Image Url"}},"type":"object","required":["barcode","product_code","product_name","price"],"title":"MachinePriceInput"},"MachinePricesReplaceIn":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"products":{"items":{"$ref":"#/components/schemas/MachinePriceInput"},"type":"array","title":"Products"}},"type":"object","required":["customer_id"],"title":"MachinePricesReplaceIn"},"MachineUpdateIn":{"properties":{"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"machine_name":{"type":"string","maxLength":120,"minLength":2,"title":"Machine Name"},"alias":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Alias"},"parameters":{"additionalProperties":{"type":"string"},"type":"object","title":"Parameters"}},"type":"object","required":["machine_name"],"title":"MachineUpdateIn"},"MemberSessionOut":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds"},"user":{"$ref":"#/components/schemas/UserOut"}},"type":"object","required":["access_token","expires_in_seconds","user"],"title":"MemberSessionOut"},"PaymentCompleteIn":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"provider_reference":{"anyOf":[{"type":"string","minLength":3},{"type":"null"}],"title":"Provider Reference"}},"type":"object","required":["transaction_number"],"title":"PaymentCompleteIn"},"PaymentCompleteOut":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"status":{"type":"string","title":"Status"},"charged_amount":{"type":"number","title":"Charged Amount"},"provider_reference":{"type":"string","title":"Provider Reference"},"completed_at":{"type":"string","format":"date-time","title":"Completed At"}},"type":"object","required":["transaction_number","status","charged_amount","provider_reference","completed_at"],"title":"PaymentCompleteOut"},"PrepaidUserCreateIn":{"properties":{"full_name":{"type":"string","maxLength":120,"minLength":2,"title":"Full Name"},"email":{"anyOf":[{"type":"string","maxLength":254,"minLength":3},{"type":"null"}],"title":"Email"}},"type":"object","required":["full_name"],"title":"PrepaidUserCreateIn"},"PrepaidUserOut":{"properties":{"user_id":{"type":"string","title":"User Id"},"list_id":{"type":"string","title":"List Id"},"full_name":{"type":"string","title":"Full Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["user_id","list_id","full_name","email","created_at"],"title":"PrepaidUserOut"},"PriceItemOut":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"device_id":{"type":"string","title":"Device Id"},"machine_name":{"type":"string","title":"Machine Name"},"product_code":{"type":"string","title":"Product Code"},"product_name":{"type":"string","title":"Product Name"},"price":{"type":"number","title":"Price"},"shelf_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shelf No"},"slot_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slot No"},"stock":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stock"},"barcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Barcode"},"active":{"type":"boolean","title":"Active","default":true},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"}},"type":"object","required":["customer_id","device_id","machine_name","product_code","product_name","price"],"title":"PriceItemOut"},"PriceUpsertIn":{"properties":{"barcode":{"type":"string","maxLength":64,"minLength":6,"title":"Barcode"},"customer_id":{"type":"string","title":"Customer Id"},"device_id":{"type":"string","title":"Device Id"},"product_code":{"type":"string","maxLength":64,"minLength":2,"title":"Product Code"},"product_name":{"type":"string","maxLength":120,"minLength":2,"title":"Product Name"},"price":{"type":"number","exclusiveMinimum":0.0,"title":"Price"},"shelf_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shelf No"},"slot_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slot No"},"stock":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stock"},"active":{"type":"boolean","title":"Active","default":true},"category":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Category"},"image_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Image Url"}},"type":"object","required":["barcode","customer_id","device_id","product_code","product_name","price"],"title":"PriceUpsertIn"},"PurgeClipsOut":{"properties":{"purged_count":{"type":"integer","title":"Purged Count"},"total_candidates":{"type":"integer","title":"Total Candidates"}},"type":"object","required":["purged_count","total_candidates"],"title":"PurgeClipsOut"},"QuoteRequestIn":{"properties":{"full_name":{"type":"string","maxLength":100,"minLength":2,"title":"Full Name"},"company":{"type":"string","maxLength":120,"minLength":2,"title":"Company"},"phone":{"type":"string","maxLength":30,"minLength":7,"pattern":"^[0-9+()\\s-]+$","title":"Phone"},"email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Email"},"location_type":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Location Type"},"message":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Message"},"kvkk_consent":{"type":"boolean","title":"Kvkk Consent"},"website":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Website"},"model":{"type":"string","maxLength":60,"minLength":2,"title":"Model"},"quantity":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Quantity"}},"type":"object","required":["full_name","company","phone","kvkk_consent","model","quantity"],"title":"QuoteRequestIn"},"RecordingSegmentOut":{"properties":{"stream_path":{"type":"string","title":"Stream Path"},"path":{"type":"string","title":"Path"},"started_at":{"type":"string","format":"date-time","title":"Started At"}},"type":"object","required":["stream_path","path","started_at"],"title":"RecordingSegmentOut"},"SaleItemIn":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"product_code":{"type":"string","title":"Product Code"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1},"idempotency_key":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["transaction_number","product_code"],"title":"SaleItemIn"},"SaleItemOut":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"product_code":{"type":"string","title":"Product Code"},"quantity":{"type":"integer","title":"Quantity"},"unit_price":{"type":"number","title":"Unit Price"},"line_total":{"type":"number","title":"Line Total"},"running_total":{"type":"number","title":"Running Total"}},"type":"object","required":["transaction_number","product_code","quantity","unit_price","line_total","running_total"],"title":"SaleItemOut"},"SaleItemReturnIn":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"product_code":{"type":"string","title":"Product Code"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1},"idempotency_key":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["transaction_number","product_code"],"title":"SaleItemReturnIn"},"SaleItemReturnOut":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"product_code":{"type":"string","title":"Product Code"},"quantity":{"type":"integer","title":"Quantity"},"unit_price":{"type":"number","title":"Unit Price"},"line_total":{"type":"number","title":"Line Total"},"running_total":{"type":"number","title":"Running Total"}},"type":"object","required":["transaction_number","product_code","quantity","unit_price","line_total","running_total"],"title":"SaleItemReturnOut"},"SaleLogOut":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"device_id":{"type":"string","title":"Device Id"},"payment_method":{"type":"string","title":"Payment Method"},"status":{"type":"string","title":"Status"},"item_count":{"type":"integer","title":"Item Count"},"returned_item_count":{"type":"integer","title":"Returned Item Count","default":0},"final_amount":{"type":"number","title":"Final Amount"},"provider_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Reference"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"transaction_mqtt_topic":{"type":"string","title":"Transaction Mqtt Topic"},"stream_publish_url":{"type":"string","title":"Stream Publish Url"},"hls_playback_url":{"type":"string","title":"Hls Playback Url"},"stream_viewer_url":{"type":"string","title":"Stream Viewer Url"},"webrtc_viewer_url":{"type":"string","title":"Webrtc Viewer Url"},"recording_download_url":{"type":"string","title":"Recording Download Url"}},"type":"object","required":["transaction_number","device_id","payment_method","status","item_count","final_amount","created_at","transaction_mqtt_topic","stream_publish_url","hls_playback_url","stream_viewer_url","webrtc_viewer_url","recording_download_url"],"title":"SaleLogOut"},"SaleSessionStartIn":{"properties":{"device_id":{"type":"string","minLength":5,"title":"Device Id"},"payment_method":{"type":"string","pattern":"^(credit_card|prepaid_card)$","title":"Payment Method","default":"credit_card"},"card_number":{"anyOf":[{"type":"string","maxLength":32,"minLength":4,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"title":"Card Number"},"simulate_test_broadcast":{"type":"boolean","title":"Simulate Test Broadcast","default":false}},"type":"object","required":["device_id"],"title":"SaleSessionStartIn"},"SaleSessionStartOut":{"properties":{"transaction_number":{"type":"string","title":"Transaction Number"},"payment_method":{"type":"string","title":"Payment Method"},"transaction_mqtt_topic":{"type":"string","title":"Transaction Mqtt Topic"},"stream_publish_url":{"type":"string","title":"Stream Publish Url"},"stream_key":{"type":"string","title":"Stream Key"},"hls_playback_url":{"type":"string","title":"Hls Playback Url"},"stream_viewer_url":{"type":"string","title":"Stream Viewer Url"},"webrtc_viewer_url":{"type":"string","title":"Webrtc Viewer Url"},"recording_download_url":{"type":"string","title":"Recording Download Url"},"lock_timeout_seconds":{"type":"integer","title":"Lock Timeout Seconds"},"preauth_amount":{"type":"number","title":"Preauth Amount"},"currency":{"type":"string","title":"Currency"}},"type":"object","required":["transaction_number","payment_method","transaction_mqtt_topic","stream_publish_url","stream_key","hls_playback_url","stream_viewer_url","webrtc_viewer_url","recording_download_url","lock_timeout_seconds","preauth_amount","currency"],"title":"SaleSessionStartOut"},"SlotRegionInput":{"properties":{"camera_id":{"type":"string","maxLength":128,"minLength":1,"title":"Camera Id"},"shelf_no":{"type":"integer","minimum":0.0,"title":"Shelf No"},"slot_no":{"type":"integer","minimum":0.0,"title":"Slot No"},"x_min":{"type":"number","maximum":1.0,"minimum":0.0,"title":"X Min"},"y_min":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Y Min"},"x_max":{"type":"number","maximum":1.0,"minimum":0.0,"title":"X Max"},"y_max":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Y Max"}},"type":"object","required":["camera_id","shelf_no","slot_no","x_min","y_min","x_max","y_max"],"title":"SlotRegionInput"},"SlotRegionOut":{"properties":{"device_id":{"type":"string","title":"Device Id"},"camera_id":{"type":"string","title":"Camera Id"},"shelf_no":{"type":"integer","title":"Shelf No"},"slot_no":{"type":"integer","title":"Slot No"},"x_min":{"type":"number","title":"X Min"},"y_min":{"type":"number","title":"Y Min"},"x_max":{"type":"number","title":"X Max"},"y_max":{"type":"number","title":"Y Max"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["device_id","camera_id","shelf_no","slot_no","x_min","y_min","x_max","y_max","updated_at"],"title":"SlotRegionOut"},"SlotRegionsReplaceIn":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"regions":{"items":{"$ref":"#/components/schemas/SlotRegionInput"},"type":"array","title":"Regions"}},"type":"object","required":["customer_id"],"title":"SlotRegionsReplaceIn"},"TestBroadcastFrame":{"properties":{"device_id":{"type":"string","title":"Device Id","default":"android-test-001"},"stream_id":{"type":"string","title":"Stream Id","default":"android-test-001-camera-main"},"camera_id":{"type":"string","title":"Camera Id","default":"camera-main"},"source_type":{"type":"string","title":"Source Type","default":"simulated_android_device"},"ingest_protocol":{"type":"string","title":"Ingest Protocol","default":"rtsp"},"playback_protocol":{"type":"string","title":"Playback Protocol","default":"hls"},"rtsp_publish_url":{"type":"string","title":"Rtsp Publish Url"},"hls_playback_url":{"type":"string","title":"Hls Playback Url"},"is_live":{"type":"boolean","title":"Is Live"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"elapsed_seconds":{"type":"integer","title":"Elapsed Seconds","default":0},"pattern":{"type":"string","title":"Pattern","default":"classic-three-color"},"colors":{"items":{"type":"string"},"type":"array","title":"Colors"}},"type":"object","required":["rtsp_publish_url","hls_playback_url","is_live"],"title":"TestBroadcastFrame"},"TestBroadcastStartIn":{"properties":{"device_id":{"type":"string","title":"Device Id","default":"android-test-001","examples":["android-test-001"]},"stream_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Id","examples":["android-test-001-camera-main"]},"camera_id":{"type":"string","title":"Camera Id","default":"camera-main","examples":["camera-main"]},"source_type":{"type":"string","title":"Source Type","default":"simulated_android_device"}},"type":"object","title":"TestBroadcastStartIn"},"TestBroadcastStartOut":{"properties":{"status":{"type":"string","title":"Status"},"stream_url":{"type":"string","title":"Stream Url"},"viewer_url":{"type":"string","title":"Viewer Url"},"rtsp_publish_url":{"type":"string","title":"Rtsp Publish Url"},"hls_playback_url":{"type":"string","title":"Hls Playback Url"},"frame":{"$ref":"#/components/schemas/TestBroadcastFrame"}},"type":"object","required":["status","stream_url","viewer_url","rtsp_publish_url","hls_playback_url","frame"],"title":"TestBroadcastStartOut"},"TestBroadcastStopIn":{"properties":{"stream_id":{"type":"string","maxLength":512,"minLength":1,"title":"Stream Id"}},"type":"object","required":["stream_id"],"title":"TestBroadcastStopIn"},"TestBroadcastStopOut":{"properties":{"status":{"type":"string","title":"Status"},"stream_id":{"type":"string","title":"Stream Id"},"frame":{"$ref":"#/components/schemas/TestBroadcastFrame"}},"type":"object","required":["status","stream_id","frame"],"title":"TestBroadcastStopOut"},"TopUpIn":{"properties":{"amount":{"type":"number","maximum":1000000.0,"exclusiveMinimum":0.0,"title":"Amount"},"description":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Description"}},"type":"object","required":["amount"],"title":"TopUpIn"},"TrainingDatasetManifest":{"properties":{"dataset_version":{"type":"string","format":"uuid","title":"Dataset Version"},"manifest_uri":{"type":"string","title":"Manifest Uri"},"manifest_format":{"type":"string","enum":["jsonl","parquet"],"title":"Manifest Format"},"manifest_sha256":{"type":"string","title":"Manifest Sha256"},"schema_version":{"type":"string","title":"Schema Version"},"product_dictionary":{"additionalProperties":true,"type":"object","title":"Product Dictionary"},"class_indices":{"additionalProperties":true,"type":"object","title":"Class Indices"},"filters":{"additionalProperties":true,"type":"object","title":"Filters"}},"type":"object","required":["dataset_version","manifest_uri","manifest_format","manifest_sha256","schema_version","product_dictionary","class_indices","filters"],"title":"TrainingDatasetManifest"},"UserListAssociationIn":{"properties":{"association_name":{"type":"string","maxLength":100,"minLength":2,"title":"Association Name"},"customer_id":{"type":"string","title":"Customer Id"},"device_ids":{"items":{"type":"string"},"type":"array","title":"Device Ids"},"price_list_name":{"type":"string","maxLength":100,"minLength":1,"title":"Price List Name"}},"type":"object","required":["association_name","customer_id","price_list_name"],"title":"UserListAssociationIn"},"UserListAssociationOut":{"properties":{"association_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Association Name"},"list_id":{"type":"string","title":"List Id"},"list_name":{"type":"string","title":"List Name"},"customer_id":{"type":"string","title":"Customer Id"},"customer_name":{"type":"string","title":"Customer Name"},"device_ids":{"items":{"type":"string"},"type":"array","title":"Device Ids"},"machine_names":{"items":{"type":"string"},"type":"array","title":"Machine Names"},"price_list_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price List Name"}},"type":"object","required":["association_name","list_id","list_name","customer_id","customer_name","device_ids","machine_names","price_list_name"],"title":"UserListAssociationOut"},"UserListCreateIn":{"properties":{"name":{"type":"string","maxLength":100,"minLength":2,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"UserListCreateIn"},"UserListOut":{"properties":{"list_id":{"type":"string","title":"List Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"user_count":{"type":"integer","title":"User Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["list_id","name","description","user_count","created_at"],"title":"UserListOut"},"UserOut":{"properties":{"user_id":{"type":"string","title":"User Id"},"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_login_at":{"type":"string","format":"date-time","title":"Last Login At"}},"type":"object","required":["user_id","email","full_name","created_at","last_login_at"],"title":"UserOut"},"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"},"VideoDatasetExport":{"properties":{"training":{"items":{"$ref":"#/components/schemas/DatasetClip"},"type":"array","title":"Training"},"review_queue":{"items":{"$ref":"#/components/schemas/DatasetClip"},"type":"array","title":"Review Queue"}},"type":"object","required":["training","review_queue"],"title":"VideoDatasetExport"},"VideoLabelCancel":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Reason"}},"type":"object","title":"VideoLabelCancel"},"VideoLabelContext":{"properties":{"server_utc":{"type":"string","format":"date-time","title":"Server Utc"},"transaction_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Number"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"machine_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Machine Name"},"stream_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Path"},"transaction_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Status"},"products":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Products"},"default_pre_roll_seconds":{"type":"number","title":"Default Pre Roll Seconds"},"default_post_roll_seconds":{"type":"number","title":"Default Post Roll Seconds"}},"type":"object","required":["server_utc","transaction_number","device_id","machine_name","stream_path","transaction_status","products","default_pre_roll_seconds","default_post_roll_seconds"],"title":"VideoLabelContext"},"VideoLabelCorrection":{"properties":{"product_code":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Product Code"},"camera_id":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Camera Id"},"stream_path":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1},{"type":"null"}],"title":"Stream Path"},"event_time_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Event Time Utc"},"quantity":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Quantity"},"action_type":{"anyOf":[{"type":"string","enum":["take","return","no_product","uncertain","correction"]},{"type":"null"}],"title":"Action Type"},"event_group_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Group Id"},"comment":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Comment"}},"type":"object","title":"VideoLabelCorrection"},"VideoLabelCreate":{"properties":{"transaction_number":{"type":"string","maxLength":128,"minLength":1,"title":"Transaction Number"},"device_id":{"type":"string","maxLength":128,"minLength":1,"title":"Device Id"},"camera_id":{"type":"string","maxLength":128,"minLength":1,"title":"Camera Id"},"stream_path":{"type":"string","maxLength":2048,"minLength":1,"title":"Stream Path"},"product_code":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Product Code"},"action_type":{"type":"string","enum":["take","return","no_product","uncertain","correction"],"title":"Action Type","default":"take"},"event_group_id":{"type":"string","format":"uuid","title":"Event Group Id"},"client_clicked_at":{"type":"string","format":"date-time","title":"Client Clicked At"},"server_received_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Server Received At"},"player_media_time_seconds":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Player Media Time Seconds"},"estimated_live_latency_seconds":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Estimated Live Latency Seconds"},"pre_roll_seconds":{"type":"number","maximum":30.0,"minimum":0.0,"title":"Pre Roll Seconds","default":3.0},"post_roll_seconds":{"type":"number","maximum":30.0,"minimum":0.0,"title":"Post Roll Seconds","default":4.0},"client_event_id":{"type":"string","maxLength":128,"minLength":1,"title":"Client Event Id"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1},"comment":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Comment"}},"type":"object","required":["transaction_number","device_id","camera_id","stream_path","event_group_id","client_clicked_at","client_event_id"],"title":"VideoLabelCreate"},"VideoLabelList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VideoLabelOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"VideoLabelList"},"VideoLabelOut":{"properties":{"label_id":{"type":"string","format":"uuid","title":"Label Id"},"owner_user_id":{"type":"string","title":"Owner User Id"},"operator_user_id":{"type":"string","title":"Operator User Id"},"transaction_number":{"type":"string","title":"Transaction Number"},"device_id":{"type":"string","title":"Device Id"},"camera_id":{"type":"string","title":"Camera Id"},"stream_path":{"type":"string","title":"Stream Path"},"product_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"},"product_name_snapshot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Name Snapshot"},"product_category_snapshot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Category Snapshot"},"product_barcode_snapshot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Barcode Snapshot"},"client_clicked_at":{"type":"string","format":"date-time","title":"Client Clicked At"},"server_received_at":{"type":"string","format":"date-time","title":"Server Received At"},"player_media_time_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Player Media Time Seconds"},"estimated_live_latency_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Live Latency Seconds"},"event_time_utc":{"type":"string","format":"date-time","title":"Event Time Utc"},"alignment_status":{"type":"string","enum":["aligned","uncertain"],"title":"Alignment Status"},"recording_segment_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Segment Path"},"recording_segment_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Recording Segment Started At"},"clip_start_utc":{"type":"string","format":"date-time","title":"Clip Start Utc"},"clip_end_utc":{"type":"string","format":"date-time","title":"Clip End Utc"},"clip_url":{"type":"string","title":"Clip Url"},"pre_roll_seconds":{"type":"number","title":"Pre Roll Seconds"},"post_roll_seconds":{"type":"number","title":"Post Roll Seconds"},"received_at_utc":{"type":"string","format":"date-time","title":"Received At Utc"},"client_event_id":{"type":"string","title":"Client Event Id"},"action_type":{"type":"string","enum":["take","return","no_product","uncertain","correction"],"title":"Action Type"},"event_group_id":{"type":"string","format":"uuid","title":"Event Group Id"},"label_status":{"type":"string","enum":["active","cancelled"],"title":"Label Status"},"quantity":{"type":"integer","title":"Quantity"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["label_id","owner_user_id","operator_user_id","transaction_number","device_id","camera_id","stream_path","product_code","product_name_snapshot","product_category_snapshot","product_barcode_snapshot","client_clicked_at","server_received_at","player_media_time_seconds","estimated_live_latency_seconds","event_time_utc","alignment_status","recording_segment_path","recording_segment_started_at","clip_start_utc","clip_end_utc","clip_url","pre_roll_seconds","post_roll_seconds","received_at_utc","client_event_id","action_type","event_group_id","label_status","quantity","comment","created_at","updated_at"],"title":"VideoLabelOut"},"VisionEventIn":{"properties":{"device_id":{"type":"string","title":"Device Id","examples":["cabinet-001"]},"stream_id":{"type":"string","title":"Stream Id","examples":["camera-main"]},"event_type":{"type":"string","title":"Event Type","examples":["object_detected"]},"event_ts":{"type":"string","format":"date-time","title":"Event Ts"},"confidence":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence"},"tracking_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tracking Id"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["device_id","stream_id","event_type","event_ts"],"title":"VisionEventIn"},"VisionEventLog":{"properties":{"event_id":{"type":"string","title":"Event Id"},"source":{"type":"string","title":"Source"},"device_id":{"type":"string","title":"Device Id"},"stream_id":{"type":"string","title":"Stream Id"},"event_type":{"type":"string","title":"Event Type"},"event_ts":{"type":"string","format":"date-time","title":"Event Ts"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["event_id","source","device_id","stream_id","event_type","event_ts"],"title":"VisionEventLog"},"VisionEventOut":{"properties":{"status":{"type":"string","title":"Status"},"event_id":{"type":"string","title":"Event Id"}},"type":"object","required":["status","event_id"],"title":"VisionEventOut"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}