{"openapi":"3.1.0","info":{"title":"API OakBerry Loyalty","description":"API do sistema de fidelidade da OAKBERRY","version":"1.0.0"},"paths":{"/api/v1/authorization":{"post":{"tags":["Authorization"],"summary":"Generate Authorization Token","operationId":"generate_authorization_token_api_v1_authorization_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users":{"get":{"tags":["Users"],"summary":"Get Users","operationId":"get_users_api_v1_users_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserResponse"},"title":"Response Get Users Api V1 Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Users"],"summary":"Create User","operationId":"create_user_api_v1_users_post","security":[{"OAuth2PasswordBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customer/{document}":{"get":{"tags":["Customers"],"summary":"Get Customer","operationId":"get_customer_api_v1_customer__document__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"document","in":"path","required":true,"schema":{"type":"string","title":"Document"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Customers"],"summary":"Update Customer","operationId":"update_customer_api_v1_customer__document__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"document","in":"path","required":true,"schema":{"type":"string","title":"Document"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customer/{document}/store/{store_code}":{"get":{"tags":["Customers"],"summary":"Get Customer By Store","description":"Busca um customer por documento e verifica se a loja existe e está ativa","operationId":"get_customer_by_store_api_v1_customer__document__store__store_code__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"document","in":"path","required":true,"schema":{"type":"string","title":"Document"}},{"name":"store_code","in":"path","required":true,"schema":{"type":"string","title":"Store Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers":{"get":{"tags":["Customers"],"summary":"Get Customers","operationId":"get_customers_api_v1_customers_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerResponse"},"title":"Response Get Customers Api V1 Customers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customer":{"post":{"tags":["Customers"],"summary":"Create Customer","operationId":"create_customer_api_v1_customer_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/customers/search":{"get":{"tags":["Customers"],"summary":"Search Customers","operationId":"search_customers_api_v1_customers_search_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"search_doc","in":"query","required":false,"schema":{"type":"string","title":"Search Doc"}},{"name":"search_name","in":"query","required":false,"schema":{"type":"string","title":"Search Name"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerResponse"},"title":"Response Search Customers Api V1 Customers Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers/list":{"get":{"tags":["Customers"],"summary":"List Customers With Filters Endpoint","description":"Lista customers com paginação e filtros de data de criação.\n\n- limit: número de registros por página (padrão: 10)\n- offset: número de registros para pular (padrão: 0)\n- start_date: data inicial no formato YYYY-MM-DD (opcional)\n- end_date: data final no formato YYYY-MM-DD (opcional)\n- search_doc: busca por documento (opcional)\n- search_name: busca por nome (opcional)\n- store_code_owner_name: filtro exato por nome da loja proprietária (opcional)\n\nOrdenação: do registro mais novo para o mais antigo","operationId":"list_customers_with_filters_endpoint_api_v1_customers_list_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"start_date","in":"query","required":false,"schema":{"type":"string","title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"type":"string","title":"End Date"}},{"name":"search_doc","in":"query","required":false,"schema":{"type":"string","title":"Search Doc"}},{"name":"search_name","in":"query","required":false,"schema":{"type":"string","title":"Search Name"}},{"name":"store_code_owner_name","in":"query","required":false,"schema":{"type":"string","title":"Store Code Owner Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerResponse"},"title":"Response List Customers With Filters Endpoint Api V1 Customers List Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers/export":{"get":{"tags":["Customers"],"summary":"Export Customers Endpoint","description":"Exporta customers em Excel ou CSV.\n\n- format: formato de exportação (excel, xlsx, csv) - padrão: excel\n- start_date: data inicial no formato YYYY-MM-DD (opcional)\n- end_date: data final no formato YYYY-MM-DD (opcional)\n- limit: limite de registros (opcional, se não informado exporta todos)\n- timezone: fuso horário no formato ISO (ex: America/Sao_Paulo) - padrão: America/Sao_Paulo\n\nOrdenação: do registro mais novo para o mais antigo","operationId":"export_customers_endpoint_api_v1_customers_export_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"excel","title":"Format"}},{"name":"start_date","in":"query","required":false,"schema":{"type":"string","title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"type":"string","title":"End Date"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","title":"Limit"}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","default":"America/Sao_Paulo","title":"Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customer/{customer_id}/coupons":{"get":{"tags":["Customers"],"summary":"Get Customer Coupons","description":"Lista os cupons (DataTransaction) de um cliente específico com paginação.\n\n- customer_id: ID do cliente\n- limit: número de registros por página (padrão: 10)\n- offset: número de registros para pular (padrão: 0)\n\nRetorna no header X-Total-Count o total de cupons do cliente.\nOrdenação: do cupom mais novo para o mais antigo","operationId":"get_customer_coupons_api_v1_customer__customer_id__coupons_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Customer Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataTransactionResponse"},"title":"Response Get Customer Coupons Api V1 Customer  Customer Id  Coupons Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customer/{customer_id}/coupons/search":{"get":{"tags":["Customers"],"summary":"Get Customer Coupon By Identifier","description":"Busca um cupom específico de um cliente pelo coupon_identifier.\n\n- customer_id: ID do cliente\n- coupon_identifier: identificador único do cupom\n\nRetorna o cupom específico se encontrado.","operationId":"get_customer_coupon_by_identifier_api_v1_customer__customer_id__coupons_search_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Customer Id"}},{"name":"coupon_identifier","in":"query","required":true,"schema":{"type":"string","title":"Coupon Identifier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataTransactionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customer/{customer_id}":{"delete":{"tags":["Customers"],"summary":"Delete Customer","description":"Deleta um customer e todos os registros vinculados.\n\n- customer_id: ID do customer a ser deletado\n\nEsta operação é irreversível e deletará:\n- Todos os registros de pontos do customer\n- Todos os registros de resgate (redeem_items)\n- Todas as transações de dados\n- O próprio customer\n\nApenas usuários com role 'admin' podem executar esta operação.","operationId":"delete_customer_api_v1_customer__customer_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers/sales-coupons/export":{"get":{"tags":["Customers"],"summary":"Export Sales Coupons Endpoint","description":"Exporta cupons de venda por customer em Excel ou CSV.\n\n- format: formato de exportação (excel, xlsx, csv) - padrão: excel\n- start_date: data inicial no formato YYYY-MM-DD (opcional)\n- end_date: data final no formato YYYY-MM-DD (opcional)\n- search_doc: busca por documento (opcional)\n- search_name: busca por nome (opcional)\n- store_code_owner_name: filtro exato por nome da loja proprietária (opcional)\n- timezone: fuso horário no formato ISO (ex: America/Sao_Paulo) - padrão: America/Sao_Paulo\n\nCampos exportados:\n- id, nome, doc, coupon_identifier, transaction_date, payment_type, payment_type_description, value, store_code, store_name, store_document\n\nOrdenação: do cupom mais novo para o mais antigo","operationId":"export_sales_coupons_endpoint_api_v1_customers_sales_coupons_export_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"excel","title":"Format"}},{"name":"start_date","in":"query","required":false,"schema":{"type":"string","title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"type":"string","title":"End Date"}},{"name":"search_doc","in":"query","required":false,"schema":{"type":"string","title":"Search Doc"}},{"name":"search_name","in":"query","required":false,"schema":{"type":"string","title":"Search Name"}},{"name":"store_code_owner_name","in":"query","required":false,"schema":{"type":"string","title":"Store Code Owner Name"}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","default":"America/Sao_Paulo","title":"Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers/reprocess-store-code-owner":{"post":{"tags":["Customers"],"summary":"Reprocess Store Code Owner Endpoint","description":"Reprocessa todos os customers que não têm store_code_owner para preencher o campo.\n\nPara cada customer sem store_code_owner, busca o primeiro registro de Points onde:\n- transaction_type = 'C' (Crédito)\n- store_code is not null\n- coupon_identifier is not null\nE atualiza o store_code_owner com o store_code encontrado.\n\nApenas usuários com role 'admin' podem executar esta operação.\n\nRetorna estatísticas do reprocessamento:\n- total_customers: Total de customers sem store_code_owner processados\n- updated: Quantidade de customers atualizados\n- not_found: Quantidade de customers sem registro válido\n- errors: Quantidade de erros encontrados","operationId":"reprocess_store_code_owner_endpoint_api_v1_customers_reprocess_store_code_owner_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/customers/process-external-data":{"post":{"tags":["Customers"],"summary":"Process External Customer Data Endpoint","description":"Processa dados externos de customers ativos com app_user null e origin diferente de APP.\n\nO serviço buscará customers ativos que têm:\n- app_user = null\n- origin != 'APP'\n\nPara cada customer encontrado, fará uma chamada para a API do superapp buscando pelo documento.\nSe o customer for encontrado no superapp, o campo app_user será atualizado como True.\nCaso contrário, será atualizado como False.\n\nParâmetros:\n- limit: Limite de customers a processar por requisição (padrão: 100)\n- offset: Número de customers a pular antes de começar o processamento (padrão: 0)\n\nRetorna estatísticas do processamento:\n- total_customers: Total de customers que atendem aos critérios\n- processed: Quantidade de customers processados com sucesso nesta requisição\n- updated_to_true: Quantidade de customers atualizados para True\n- updated_to_false: Quantidade de customers atualizados para False\n- errors: Quantidade de erros encontrados\n- offset: Offset usado nesta requisição\n- limit: Limit usado nesta requisição\n- next_offset: Próximo offset para continuar o processamento (None se não houver mais)\n- remaining: Quantidade de customers restantes para processar","operationId":"process_external_customer_data_endpoint_api_v1_customers_process_external_data_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/points/credit":{"post":{"tags":["Points"],"summary":"Create Points C","operationId":"create_points_c_api_v1_points_credit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/points/debit":{"post":{"tags":["Points"],"summary":"Create Points D","operationId":"create_points_d_api_v1_points_debit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/points/statement/{customer_id}":{"get":{"tags":["Points"],"summary":"History Points","operationId":"history_points_api_v1_points_statement__customer_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PointsStatementResponse"},"title":"Response History Points Api V1 Points Statement  Customer Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/points/store/redeem-statement":{"get":{"tags":["Points"],"summary":"Get Redeem Statement","description":"Get redeem statement filtered by store document and period\n\nArgs:\n    store_document: Store document (CNPJ) to filter, or 'ALL'/'all' to get data from all stores\n    period: Period in MM-YYYY or MM/YYYY format\n    status: Filter by status - 'redeemed' (default, only Points with store_code) or 'all' (all Points)\n    page: Page number (starts from 1)\n    limit: Number of records per page\n\nReturns:\n    RedeemStatementResponse with paginated results and customer statistics","operationId":"get_redeem_statement_api_v1_points_store_redeem_statement_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"store_document","in":"query","required":true,"schema":{"type":"string","description":"Store document (CNPJ) to filter, or 'ALL'/'all' for all stores","title":"Store Document"},"description":"Store document (CNPJ) to filter, or 'ALL'/'all' for all stores"},{"name":"period","in":"query","required":true,"schema":{"type":"string","description":"Period in MM-YYYY or MM/YYYY format","title":"Period"},"description":"Period in MM-YYYY or MM/YYYY format"},{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"Filter by status: 'redeemed' (default - only with store_code) or 'all' (all Points)","default":"redeemed","title":"Status"},"description":"Filter by status: 'redeemed' (default - only with store_code) or 'all' (all Points)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (starts from 1)","default":1,"title":"Page"},"description":"Page number (starts from 1)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of records per page","default":100,"title":"Limit"},"description":"Number of records per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemStatementResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/transaction":{"post":{"tags":["Transactions"],"summary":"Create Transaction","operationId":"create_transaction_api_v1_transaction_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/transaction/cancel/{point_id}":{"post":{"tags":["Transactions"],"summary":"Rollback Transaction","operationId":"rollback_transaction_api_v1_transaction_cancel__point_id__post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"point_id","in":"path","required":true,"schema":{"type":"string","title":"Point Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/transaction/cancel/coupon/{coupon_identifier}":{"post":{"tags":["Transactions"],"summary":"Rollback Transaction By Coupon","operationId":"rollback_transaction_by_coupon_api_v1_transaction_cancel_coupon__coupon_identifier__post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"coupon_identifier","in":"path","required":true,"schema":{"type":"string","title":"Coupon Identifier"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/product":{"post":{"tags":["Products"],"summary":"Create Product","operationId":"create_product_api_v1_product_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/product/all":{"get":{"tags":["Products"],"summary":"List Products Endpoint","operationId":"list_products_endpoint_api_v1_product_all_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductsResponse"},"title":"Response List Products Endpoint Api V1 Product All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/product/{product_id}":{"patch":{"tags":["Products"],"summary":"Patch Product Endpoint","operationId":"patch_product_endpoint_api_v1_product__product_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Products"],"summary":"Get Product Endpoint","operationId":"get_product_endpoint_api_v1_product__product_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/promotion":{"post":{"tags":["Promotion"],"summary":"Create Promotion","operationId":"create_promotion_api_v1_promotion_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/promotion/all":{"get":{"tags":["Promotion"],"summary":"List Promotions Endpoint","operationId":"list_promotions_endpoint_api_v1_promotion_all_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PromotionResponse"},"title":"Response List Promotions Endpoint Api V1 Promotion All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/promotion/{promotion_id}":{"patch":{"tags":["Promotion"],"summary":"Patch Promotion Endpoint","operationId":"patch_promotion_endpoint_api_v1_promotion__promotion_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"promotion_id","in":"path","required":true,"schema":{"type":"string","title":"Promotion Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Promotion"],"summary":"Get Promotion Endpoint","operationId":"get_promotion_endpoint_api_v1_promotion__promotion_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"promotion_id","in":"path","required":true,"schema":{"type":"string","title":"Promotion Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/points/redeem/block":{"post":{"tags":["Redeem"],"summary":"Redeem Points","operationId":"redeem_points_api_v1_points_redeem_block_post","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RedeemCreate"},"type":"array","title":"Redeem"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemIdResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/points/redeem/cancel/{redeem_id}":{"post":{"tags":["Redeem"],"summary":"Cancel Points Redeem","operationId":"cancel_points_redeem_api_v1_points_redeem_cancel__redeem_id__post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"redeem_id","in":"path","required":true,"schema":{"type":"string","title":"Redeem Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/points/redeem/apply":{"post":{"tags":["Redeem"],"summary":"Apply Points Redeem","description":"Aplica os redeem_items pelo points_id, setando applied_at e coupon_identifier","operationId":"apply_points_redeem_api_v1_points_redeem_apply_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemApplyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemApplyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/points/redeem/rollback":{"post":{"tags":["Redeem"],"summary":"Rollback Points Redeem","description":"Faz rollback da aplicação dos redeem_items pelo points_id, removendo applied_at e coupon_identifier","operationId":"rollback_points_redeem_api_v1_points_redeem_rollback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemRollbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemRollbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/store/{store_id}":{"get":{"tags":["Store"],"summary":"Get Store By Id","description":"Busca uma loja pelo ID","operationId":"get_store_by_id_api_v1_store__store_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Store"],"summary":"Update Store","description":"Atualiza uma loja existente","operationId":"update_store_api_v1_store__store_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Store"],"summary":"Delete Store","description":"Desativa uma loja (soft delete)","operationId":"delete_store_api_v1_store__store_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store/code/{store_code}":{"get":{"tags":["Store"],"summary":"Get Store By Code","description":"Busca uma loja pelo código","operationId":"get_store_by_code_api_v1_store_code__store_code__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"store_code","in":"path","required":true,"schema":{"type":"string","title":"Store Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store/document/{document}":{"get":{"tags":["Store"],"summary":"Get Store By Document","description":"Busca uma loja pelo documento","operationId":"get_store_by_document_api_v1_store_document__document__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"document","in":"path","required":true,"schema":{"type":"string","title":"Document"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stores":{"get":{"tags":["Store"],"summary":"Get Stores","description":"Lista todas as lojas com paginação","operationId":"get_stores_api_v1_stores_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StoreResponse"},"title":"Response Get Stores Api V1 Stores Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store":{"post":{"tags":["Store"],"summary":"Create Store","description":"Cria uma nova loja","operationId":"create_store_api_v1_store_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/stores/search":{"get":{"tags":["Store"],"summary":"Search Stores","description":"Busca lojas por diferentes critérios","operationId":"search_stores_api_v1_stores_search_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"search_name","in":"query","required":false,"schema":{"type":"string","title":"Search Name"}},{"name":"search_code","in":"query","required":false,"schema":{"type":"string","title":"Search Code"}},{"name":"search_document","in":"query","required":false,"schema":{"type":"string","title":"Search Document"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StoreResponse"},"title":"Response Search Stores Api V1 Stores Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/generate-query":{"post":{"tags":["AI Query"],"summary":"Generate Query Endpoint","description":"Endpoint que recebe uma pergunta do usuário e retorna uma query SQL gerada pela IA.\n\nA IA analisa a pergunta, entende o contexto do banco de dados e gera uma query SQL SELECT\napropriada para buscar os dados solicitados.","operationId":"generate_query_endpoint_api_v1_ai_generate_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIQueryGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIQueryGenerateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/ai/execute-query":{"post":{"tags":["AI Query"],"summary":"Execute Query Endpoint","description":"Endpoint que executa uma query SQL e retorna o resultado.\n\n- Se o resultado for apenas 1 linha: retorna resposta em texto\n- Se o resultado for múltiplas linhas: retorna arquivo Excel para download","operationId":"execute_query_endpoint_api_v1_ai_execute_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIQueryExecuteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/ai/queries":{"get":{"tags":["AI Query"],"summary":"Get User Queries Endpoint","description":"Endpoint que retorna o histórico de queries geradas pelo usuário autenticado.\n\nAs queries são retornadas ordenadas por data de criação (mais recentes primeiro).\nPermite paginação através dos parâmetros limit e offset.","operationId":"get_user_queries_endpoint_api_v1_ai_queries_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Número máximo de resultados","default":50,"title":"Limit"},"description":"Número máximo de resultados"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Número de resultados para pular","default":0,"title":"Offset"},"description":"Número de resultados para pular"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AIQueryHistoryResponse"},"title":"Response Get User Queries Endpoint Api V1 Ai Queries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/queries/all":{"get":{"tags":["AI Query"],"summary":"Get All Ai Query History Endpoint","description":"Endpoint que retorna todo o histórico de queries com filtros.\n\n- Por padrão, filtra os últimos 7 dias se não houver filtros de data\n- Permite filtros por data inicial, data final e report_name\n- Retorna o nome do usuário junto com os dados\n- Permite paginação através dos parâmetros limit e offset\n- Apenas para administradores","operationId":"get_all_ai_query_history_endpoint_api_v1_ai_queries_all_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Número máximo de resultados","default":50,"title":"Limit"},"description":"Número máximo de resultados"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Número de resultados para pular","default":0,"title":"Offset"},"description":"Número de resultados para pular"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data inicial no formato YYYY-MM-DD","title":"Start Date"},"description":"Data inicial no formato YYYY-MM-DD"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data final no formato YYYY-MM-DD","title":"End Date"},"description":"Data final no formato YYYY-MM-DD"},{"name":"report_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtro por nome do relatório","title":"Report Name"},"description":"Filtro por nome do relatório"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AIQueryHistoryResponse"},"title":"Response Get All Ai Query History Endpoint Api V1 Ai Queries All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/queries/{query_id}":{"patch":{"tags":["AI Query"],"summary":"Update Ai Query History Endpoint","description":"Endpoint para editar uma AIQueryHistory.\n\nPermite alterar o user_question ou o report_name.\nSe o user_question for alterado, o sistema reprocessa a query pela IA para gerar uma nova query SQL.","operationId":"update_ai_query_history_endpoint_api_v1_ai_queries__query_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"query_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Query Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIQueryHistoryUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIQueryHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["AI Query"],"summary":"Delete Ai Query History Endpoint","description":"Endpoint para deletar uma AIQueryHistory específica.","operationId":"delete_ai_query_history_endpoint_api_v1_ai_queries__query_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"query_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Query Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/docs/readme":{"get":{"summary":"Read Root","operationId":"read_root_docs_readme_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AIQueryExecuteRequest":{"properties":{"query":{"type":"string","title":"Query"}},"type":"object","required":["query"],"title":"AIQueryExecuteRequest"},"AIQueryGenerateRequest":{"properties":{"question":{"type":"string","title":"Question"},"report_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Name"}},"type":"object","required":["question"],"title":"AIQueryGenerateRequest"},"AIQueryGenerateResponse":{"properties":{"query":{"type":"string","title":"Query"},"report_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Name"}},"type":"object","required":["query"],"title":"AIQueryGenerateResponse"},"AIQueryHistoryResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","title":"User Id"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"user_question":{"type":"string","title":"User Question"},"report_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Name"},"generated_query":{"type":"string","title":"Generated Query"},"records_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Records Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","user_id","user_question","generated_query","created_at","updated_at"],"title":"AIQueryHistoryResponse"},"AIQueryHistoryUpdateRequest":{"properties":{"user_question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Question"},"report_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Name"}},"type":"object","title":"AIQueryHistoryUpdateRequest"},"CustomerCreate":{"properties":{"name":{"type":"string","title":"Name"},"doc":{"type":"string","title":"Doc"},"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone"},"gender_identity":{"anyOf":[{"type":"string","enum":["M","F","X"]},{"type":"null"}],"title":"Gender Identity"},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date"},"short_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Code"},"origin":{"anyOf":[{"type":"string","enum":["PDV","SITE","BACKOFFICE","APP","TOTEM"]},{"type":"null"}],"title":"Origin","default":"PDV"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"email_optin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Email Optin","default":true},"whatsapp_optin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Whatsapp Optin","default":true},"sms_optin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sms Optin","default":true},"app_user":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"App User"}},"type":"object","required":["name","doc","email","phone"],"title":"CustomerCreate"},"CustomerProductsResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"sku":{"type":"string","title":"Sku"},"name":{"type":"string","title":"Name"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"validity_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Validity Days"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price","default":0},"discount_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Price","default":0},"minimum_purchase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Purchase","default":0},"min_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Qty","default":0},"max_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Qty","default":0},"is_redeemed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Redeemed","default":false},"redeemed_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Redeemed Qty","default":0},"toppings":{"anyOf":[{"items":{"$ref":"#/components/schemas/CustomerToppingsResponse"},"type":"array"},{"type":"null"}],"title":"Toppings"}},"type":"object","required":["id","sku","name"],"title":"CustomerProductsResponse"},"CustomerResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"doc":{"type":"string","title":"Doc"},"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone"},"gender_identity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender Identity"},"short_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Code"},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date"},"points_balance":{"type":"integer","title":"Points Balance"},"last_purchase":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Purchase"},"is_active":{"type":"boolean","title":"Is Active"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin","default":"PDV"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"store_code_owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code Owner"},"store_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Name"},"store_code_owner_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code Owner Name"},"email_optin":{"type":"boolean","title":"Email Optin","default":true},"whatsapp_optin":{"type":"boolean","title":"Whatsapp Optin","default":true},"sms_optin":{"type":"boolean","title":"Sms Optin","default":true},"app_user":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"App User"},"rewards":{"anyOf":[{"items":{"$ref":"#/components/schemas/CustomerProductsResponse"},"type":"array"},{"type":"null"}],"title":"Rewards"},"promotion":{"anyOf":[{"items":{"$ref":"#/components/schemas/PromotionResponse"},"type":"array"},{"type":"null"}],"title":"Promotion"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","doc","email","phone","points_balance","is_active","created_at","updated_at"],"title":"CustomerResponse"},"CustomerToppingsResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"sku":{"type":"string","title":"Sku"},"name":{"type":"string","title":"Name"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points"},"validity_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Validity Days"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price","default":0},"discount_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Price","default":0},"min_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Qty","default":0},"max_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Qty","default":0},"is_redeemed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Redeemed","default":false},"redeemed_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Redeemed Qty","default":0}},"type":"object","required":["id","sku","name"],"title":"CustomerToppingsResponse"},"CustomerUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date"},"gender_identity":{"anyOf":[{"type":"string","enum":["M","F","X"]},{"type":"null"}],"title":"Gender Identity"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"points_balance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Points Balance"},"last_purchase":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Purchase"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"store_code_owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code Owner"},"email_optin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Email Optin","default":true},"whatsapp_optin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Whatsapp Optin","default":true},"sms_optin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sms Optin","default":true},"app_user":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"App User"}},"type":"object","title":"CustomerUpdate"},"DataTransactionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"data":{"type":"object","title":"Data"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"store_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Name"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","customer_id","data","created_at","updated_at"],"title":"DataTransactionResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PointsCreate":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"transaction_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Identifier"},"coupon_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Identifier"},"vendor_document":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Document"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"points":{"type":"integer","title":"Points"},"transaction_date":{"type":"string","format":"date-time","title":"Transaction Date"},"description":{"type":"string","title":"Description"},"transaction_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Type"},"user_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User At"},"redeem_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Redeem Id"}},"type":"object","required":["customer_id","points","transaction_date","description"],"title":"PointsCreate"},"PointsResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"vendor_document":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Document"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"points":{"type":"integer","title":"Points"},"transaction_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Identifier"},"description":{"type":"string","title":"Description"},"user_at":{"type":"string","title":"User At"},"transaction_date":{"type":"string","format":"date-time","title":"Transaction Date"},"coupon_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Identifier"},"redeem_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Redeem Id"},"transaction_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","customer_id","points","description","user_at","transaction_date","created_at","updated_at"],"title":"PointsResponse"},"PointsStatementResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"vendor_document":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Document"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"store_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Name"},"points":{"type":"integer","title":"Points"},"transaction_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Identifier"},"description":{"type":"string","title":"Description"},"user_at":{"type":"string","title":"User At"},"transaction_date":{"type":"string","format":"date-time","title":"Transaction Date"},"coupon_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Identifier"},"redeem_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Redeem Id"},"transaction_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","customer_id","points","description","user_at","transaction_date","created_at","updated_at"],"title":"PointsStatementResponse"},"ProductCreate":{"properties":{"sku":{"type":"string","title":"Sku"},"name":{"type":"string","title":"Name"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points","default":0},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price","default":0},"discount_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Price"},"validity_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Validity Days","default":2},"minimum_purchase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Purchase"},"has_toppings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Toppings","default":false},"is_addon":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Addon","default":false},"max_qty":{"type":"integer","title":"Max Qty","default":0}},"type":"object","required":["sku","name"],"title":"ProductCreate"},"ProductUpdate":{"properties":{"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"discount_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Price"},"validity_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Validity Days"},"minimum_purchase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Purchase"},"has_toppings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Toppings"},"is_addon":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Addon"},"max_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Qty"}},"type":"object","title":"ProductUpdate"},"ProductsResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"sku":{"type":"string","title":"Sku"},"name":{"type":"string","title":"Name"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"is_active":{"type":"boolean","title":"Is Active"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"discount_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Price"},"validity_days":{"type":"integer","title":"Validity Days"},"minimum_purchase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Purchase"},"has_toppings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Toppings"},"is_addon":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Addon"},"max_qty":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Qty"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","sku","name","is_active","validity_days"],"title":"ProductsResponse"},"PromotionCreate":{"properties":{"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"},"discount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount","default":0},"minimum_purchase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Purchase","default":0},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true}},"type":"object","required":["name","code"],"title":"PromotionCreate"},"PromotionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"},"discount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount","default":0},"minimum_purchase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Purchase","default":0},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","code"],"title":"PromotionResponse"},"PromotionUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"discount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount"},"minimum_purchase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Purchase"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"PromotionUpdate"},"RedeemApplyRequest":{"properties":{"points_id":{"type":"string","format":"uuid","title":"Points Id"},"coupon_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Identifier"}},"type":"object","required":["points_id"],"title":"RedeemApplyRequest"},"RedeemApplyResponse":{"properties":{"status":{"type":"string","title":"Status","default":"OK"},"message":{"type":"string","title":"Message"},"applied_count":{"type":"integer","title":"Applied Count"}},"type":"object","required":["message","applied_count"],"title":"RedeemApplyResponse"},"RedeemCreate":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"points_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Points Id"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"sku":{"type":"string","title":"Sku"},"points":{"type":"integer","title":"Points"},"quantity":{"type":"integer","title":"Quantity","default":1},"coupon_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Identifier"},"applied_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Applied At"}},"type":"object","required":["customer_id","sku","points"],"title":"RedeemCreate"},"RedeemIdResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","customer_id"],"title":"RedeemIdResponse"},"RedeemRollbackRequest":{"properties":{"points_id":{"type":"string","format":"uuid","title":"Points Id"}},"type":"object","required":["points_id"],"title":"RedeemRollbackRequest"},"RedeemRollbackResponse":{"properties":{"status":{"type":"string","title":"Status","default":"OK"},"message":{"type":"string","title":"Message"},"rollback_count":{"type":"integer","title":"Rollback Count"}},"type":"object","required":["message","rollback_count"],"title":"RedeemRollbackResponse"},"RedeemStatementItem":{"properties":{"customer_name":{"type":"string","title":"Customer Name"},"customer_doc":{"type":"string","title":"Customer Doc"},"transaction_date":{"type":"string","format":"date-time","title":"Transaction Date"},"points":{"type":"integer","title":"Points"},"store":{"type":"string","title":"Store"},"total_purchases_last_90_days":{"type":"integer","title":"Total Purchases Last 90 Days"},"percentage_purchases_in_store":{"type":"number","title":"Percentage Purchases In Store"},"day_with_most_purchases":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Day With Most Purchases"},"purchases_count_on_best_day":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Purchases Count On Best Day"}},"type":"object","required":["customer_name","customer_doc","transaction_date","points","store","total_purchases_last_90_days","percentage_purchases_in_store"],"title":"RedeemStatementItem"},"RedeemStatementResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RedeemStatementItem"},"type":"array","title":"Items"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["items","total_count","page","limit"],"title":"RedeemStatementResponse"},"StoreCreate":{"properties":{"name":{"type":"string","title":"Name"},"document":{"type":"string","title":"Document"},"store_code":{"type":"string","title":"Store Code"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"complement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Complement"},"neighborhood":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neighborhood"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Code"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true}},"type":"object","required":["name","document","store_code"],"title":"StoreCreate"},"StoreResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"document":{"type":"string","title":"Document"},"store_code":{"type":"string","title":"Store Code"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"complement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Complement"},"neighborhood":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neighborhood"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Code"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","document","store_code","is_active","created_at","updated_at"],"title":"StoreResponse"},"StoreUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"document":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"complement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Complement"},"neighborhood":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neighborhood"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Code"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"StoreUpdate"},"TokenRequest":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"api_key":{"type":"string","title":"Api Key"},"secret":{"type":"string","title":"Secret"}},"type":"object","required":["username","password","api_key","secret"],"title":"TokenRequest"},"TokenResponse":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"TokenResponse"},"TransactionCreate":{"properties":{"order":{"type":"string","title":"Order"},"pdv_id":{"type":"string","title":"Pdv Id"},"transaction_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Identifier"},"coupon_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Identifier"},"value":{"type":"number","title":"Value"},"discounted_value":{"type":"number","title":"Discounted Value"},"status":{"type":"string","enum":["invoiced","canceled"],"title":"Status"},"transaction_date":{"type":"string","format":"date-time","title":"Transaction Date"},"customer_document":{"type":"string","title":"Customer Document"},"vendor_document":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Document"},"store_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Code"},"redeem_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Redeem Id"},"voucher_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voucher Code"},"payment_type":{"type":"string","title":"Payment Type"},"order_origin":{"type":"string","title":"Order Origin"},"items":{"items":{"$ref":"#/components/schemas/TransactionItemsCreate"},"type":"array","title":"Items"}},"type":"object","required":["order","pdv_id","value","discounted_value","status","transaction_date","customer_document","payment_type","order_origin","items"],"title":"TransactionCreate"},"TransactionItemsCreate":{"properties":{"product_identifier":{"type":"string","title":"Product Identifier"},"quantity":{"type":"integer","title":"Quantity"},"unit_price":{"type":"number","title":"Unit Price"},"discount_value":{"type":"number","title":"Discount Value"},"total_value":{"type":"number","title":"Total Value"},"total_discount_value":{"type":"number","title":"Total Discount Value"},"is_gift":{"type":"boolean","title":"Is Gift"}},"type":"object","required":["product_identifier","quantity","unit_price","discount_value","total_value","total_discount_value","is_gift"],"title":"TransactionItemsCreate"},"UserCreate":{"properties":{"name":{"type":"string","title":"Name"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["name","username","password"],"title":"UserCreate"},"UserResponse":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"type":"string","title":"Username"},"api_key":{"type":"string","title":"Api Key"},"secret":{"type":"string","title":"Secret"}},"type":"object","required":["id","username","api_key","secret"],"title":"UserResponse"},"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":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/authorization"}}}}}}