{"openapi":"3.1.0","info":{"title":"Perapi Backend App - Swagger UI","description":"Perapi Backend App with JWT authentication","version":"1.0.0"},"paths":{"/api/v1/auth/login":{"post":{"tags":["auth"],"summary":"User Login","description":"Authenticates a user and returns access and refresh tokens.","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/integration/login":{"post":{"tags":["auth"],"summary":"Integration Login","operationId":"integration_login_api_v1_auth_integration_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationLoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/register":{"post":{"tags":["auth"],"summary":"User Registration","description":"Registers a new user and returns access and refresh tokens.","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["auth"],"summary":"Refresh Access Token","description":"Provides a new access token using a valid refresh token.","operationId":"refresh_token_api_v1_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/account":{"delete":{"tags":["auth"],"summary":"Delete current user's account","description":"Soft-deletes the currently authenticated user's account and invalidates all sessions.","operationId":"delete_account_api_v1_auth_account_delete","responses":{"204":{"description":"Successful Response"}},"security":[{"Authorization":[]}]}},"/api/v1/integration/quick-rfx":{"post":{"tags":["integration"],"summary":"Create a new quick RFX","description":"Create a new quick RFX, its request header, items, bidders and invitation items.","operationId":"create_quick_rfx_api_v1_integration_quick_rfx_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickRFXCreatePayload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickRFXResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Authorization":[]}]}},"/api/v1/integration/quick-rfx/{global_rfx_id}":{"get":{"tags":["integration"],"summary":"Get quick RFX details by global RFX ID","description":"Retrieve details for a specific quick RFX, including items and invitations.","operationId":"get_quick_rfx_details_api_v1_integration_quick_rfx__global_rfx_id__get","security":[{"Authorization":[]}],"parameters":[{"name":"global_rfx_id","in":"path","required":true,"schema":{"type":"integer","title":"Global Rfx Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickRFXDetailsEnvelope"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["integration"],"summary":"Update an existing quick RFX","description":"Update an existing quick RFX, its items, bidders and invitation items.","operationId":"update_quick_rfx_api_v1_integration_quick_rfx__global_rfx_id__put","security":[{"Authorization":[]}],"parameters":[{"name":"global_rfx_id","in":"path","required":true,"schema":{"type":"integer","title":"Global Rfx Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickRFXUpdatePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickRFXResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/request/header":{"post":{"tags":["integration"],"summary":"Create a new request header","description":"Creates a new request header.","operationId":"create_request_header_api_v1_integration_request_header_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestHeaderCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestHeaderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Authorization":[]}]}},"/api/v1/integration/request/header/{global_request_id}":{"get":{"tags":["integration"],"summary":"Get a request header by global request id","description":"Gets a request header by global request id.","operationId":"get_request_header_api_v1_integration_request_header__global_request_id__get","security":[{"Authorization":[]}],"parameters":[{"name":"global_request_id","in":"path","required":true,"schema":{"type":"integer","title":"Global Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestHeaderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["integration"],"summary":"Update a request header by global request id","description":"Updates a request header by global request id.","operationId":"update_request_header_api_v1_integration_request_header__global_request_id__put","security":[{"Authorization":[]}],"parameters":[{"name":"global_request_id","in":"path","required":true,"schema":{"type":"integer","title":"Global Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestHeaderUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestHeaderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integration"],"summary":"Delete a request header by global request id","description":"Deletes a request header by global request id.","operationId":"delete_request_header_api_v1_integration_request_header__global_request_id__delete","security":[{"Authorization":[]}],"parameters":[{"name":"global_request_id","in":"path","required":true,"schema":{"type":"integer","title":"Global Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestHeaderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/countries":{"get":{"tags":["integration"],"summary":"List countries (public)","operationId":"list_countries_api_v1_integration_countries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CountryResponse"},"type":"array","title":"Response List Countries Api V1 Integration Countries Get"}}}}}}},"/api/v1/integration/cities":{"get":{"tags":["integration"],"summary":"List cities (public)","operationId":"list_cities_api_v1_integration_cities_get","parameters":[{"name":"country_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by country id","title":"Country Id"},"description":"Filter by country id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CityResponse"},"title":"Response List Cities Api V1 Integration Cities Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/currencies":{"get":{"tags":["integration"],"summary":"List currencies (public)","operationId":"list_currencies_api_v1_integration_currencies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CurrencyResponse"},"type":"array","title":"Response List Currencies Api V1 Integration Currencies Get"}}}}}}},"/api/v1/integration/users":{"post":{"tags":["integration"],"summary":"Create user (integration company scoped)","operationId":"create_user_api_v1_integration_users_post","security":[{"Authorization":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["integration"],"summary":"List users (integration company scoped)","operationId":"list_users_api_v1_integration_users_get","security":[{"Authorization":[]}],"parameters":[{"name":"department_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"}},{"name":"location_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},{"name":"role_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Key"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","default":"id","title":"Order By"}},{"name":"order_desc","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Order Desc"}},{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/users/{user_id}":{"get":{"tags":["integration"],"summary":"Get user by id (integration company scoped)","operationId":"get_user_api_v1_integration_users__user_id__get","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["integration"],"summary":"Update user (integration company scoped)","operationId":"update_user_api_v1_integration_users__user_id__patch","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integration"],"summary":"Soft delete user (integration company scoped)","operationId":"deactivate_user_api_v1_integration_users__user_id__delete","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/users/{user_id}/restore":{"post":{"tags":["integration"],"summary":"Restore user (integration company scoped)","operationId":"restore_user_api_v1_integration_users__user_id__restore_post","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"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/integration/users/{user_id}/active":{"patch":{"tags":["integration"],"summary":"Set user active state (integration company scoped)","operationId":"set_active_state_api_v1_integration_users__user_id__active_patch","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserActiveStateUpdateRequest"}}}},"responses":{"200":{"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/integration/users/{user_id}/roles":{"get":{"tags":["integration"],"summary":"List user roles (integration company scoped)","operationId":"get_user_roles_api_v1_integration_users__user_id__roles_get","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRoleResponse"},"title":"Response Get User Roles Api V1 Integration Users  User Id  Roles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["integration"],"summary":"Replace user roles (integration company scoped)","operationId":"set_user_roles_api_v1_integration_users__user_id__roles_put","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRoleResponse"},"title":"Response Set User Roles Api V1 Integration Users  User Id  Roles Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/users/{user_id}/roles/{role_id}":{"post":{"tags":["integration"],"summary":"Add role to user (integration company scoped)","operationId":"add_user_role_api_v1_integration_users__user_id__roles__role_id__post","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRoleResponse"},"title":"Response Add User Role Api V1 Integration Users  User Id  Roles  Role Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integration"],"summary":"Remove role from user (integration company scoped)","operationId":"remove_user_role_api_v1_integration_users__user_id__roles__role_id__delete","security":[{"Authorization":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRoleResponse"},"title":"Response Remove User Role Api V1 Integration Users  User Id  Roles  Role Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/products":{"post":{"tags":["integration"],"summary":"Create a product (integration company scoped)","operationId":"create_product_api_v1_integration_products_post","security":[{"Authorization":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["integration"],"summary":"List products (integration company scoped)","operationId":"list_products_api_v1_integration_products_get","security":[{"Authorization":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"status_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Id"}},{"name":"unit_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Unit Id"}},{"name":"department_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"}},{"name":"top_product_category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top Product Category Id"}},{"name":"brand_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Name"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","default":"id","title":"Order By"}},{"name":"order_desc","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Order Desc"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/products/bulk":{"post":{"tags":["integration"],"summary":"Bulk create products (integration company scoped)","operationId":"bulk_create_products_api_v1_integration_products_bulk_post","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductCreate"},"type":"array","title":"Payload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Authorization":[]}]}},"/api/v1/integration/products/{product_id}/attachment":{"post":{"tags":["integration"],"summary":"Upload attachment to product","operationId":"upload_product_attachment_api_v1_integration_products__product_id__attachment_post","security":[{"Authorization":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_product_attachment_api_v1_integration_products__product_id__attachment_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/supplier-invitations":{"post":{"tags":["integration"],"summary":"Create a single supplier invitation (integration company scoped)","description":"Create one supplier invitation for the integration client's company.","operationId":"create_single_supplier_invitation_api_v1_integration_supplier_invitations_post","security":[{"Authorization":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleSupplierInvitationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["integration"],"summary":"List supplier invitations (paginated, no items detail)","description":"Return invitation headers for the company (paginated). Use GET /{id} for full detail.","operationId":"list_supplier_invitations_api_v1_integration_supplier_invitations_get","security":[{"Authorization":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Records per page","default":50,"title":"Limit"},"description":"Records per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (starts at 1)","default":1,"title":"Page"},"description":"Page number (starts at 1)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InvitationListResponse"},"title":"Response List Supplier Invitations Api V1 Integration Supplier Invitations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/supplier-invitations/bulk":{"post":{"tags":["integration"],"summary":"Create bulk supplier invitations (integration company scoped)","description":"Create supplier invitations for multiple contacts in bulk.\n\nItems where the user is already registered or already invited are\nskipped and reported in the `errors` list of the response.","operationId":"create_bulk_supplier_invitations_api_v1_integration_supplier_invitations_bulk_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkSupplierInvitationCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkInvitationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Authorization":[]}]}},"/api/v1/integration/supplier-invitations/{invitation_id}":{"get":{"tags":["integration"],"summary":"Get a single supplier invitation details (integration company scoped)","description":"Return full invitation details including individual invitation items (emails, status).","operationId":"get_supplier_invitation_api_v1_integration_supplier_invitations__invitation_id__get","security":[{"Authorization":[]}],"parameters":[{"name":"invitation_id","in":"path","required":true,"schema":{"type":"integer","title":"Invitation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/companies/{supplier_id}":{"patch":{"tags":["integration"],"summary":"Update a supplier company (integration scoped)","description":"Update details of a supplier company.\n\nVerifies that the supplier was invited by the requesting customer company.","operationId":"update_supplier_api_v1_integration_companies__supplier_id__patch","security":[{"Authorization":[]}],"parameters":[{"name":"supplier_id","in":"path","required":true,"schema":{"type":"integer","title":"Supplier Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/sectors":{"get":{"tags":["integration"],"summary":"List parent sectors with i18n support","description":"Return a list of parent sectors translated according to the Accept-Language header.\nDefaults to Turkish (\"tr\") if not specified, falls back to English (\"en\") or requested code.","operationId":"list_sectors_api_v1_integration_sectors_get","parameters":[{"name":"Accept-Language","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept-Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SectorResponse"},"title":"Response List Sectors Api V1 Integration Sectors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Read Root","operationId":"read_root__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AccessTokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["access_token"],"title":"AccessTokenResponse"},"Body_upload_product_attachment_api_v1_integration_products__product_id__attachment_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_product_attachment_api_v1_integration_products__product_id__attachment_post"},"BulkInvitationResult":{"properties":{"message":{"type":"string","title":"Message"},"invited":{"type":"integer","title":"Invited"},"linked":{"type":"integer","title":"Linked","default":0},"errors":{"items":{"type":"object"},"type":"array","title":"Errors","default":[]}},"type":"object","required":["message","invited"],"title":"BulkInvitationResult","description":"Result schema for bulk invitation creation."},"BulkSupplierInvitationCreate":{"properties":{"title":{"type":"string","title":"Title"},"invitation_items":{"items":{"$ref":"#/components/schemas/SupplierInvitationItemCreate"},"type":"array","title":"Invitation Items"}},"type":"object","required":["title","invitation_items"],"title":"BulkSupplierInvitationCreate","description":"Schema for creating a bulk supplier invitation (multiple items)."},"CityResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"City id"},"name":{"type":"string","title":"Name","description":"City name"},"country_id":{"type":"integer","title":"Country Id","description":"Country id"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"State"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude","description":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude","description":"Longitude"}},"type":"object","required":["id","name","country_id"],"title":"CityResponse"},"CompanyResponse":{"properties":{"name":{"type":"string","maxLength":1000,"minLength":1,"title":"Name"},"country_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Country Id"},"city_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"City Id"},"address":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Address"},"phone":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Phone"},"website":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Website"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"rem":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Rem"},"tax_office":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Tax Office"},"tax_no":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Tax No"},"about":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"About"},"zip_code":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Zip Code"},"default_compare_price_sort_type":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}],"title":"Default Compare Price Sort Type","default":"min"},"is_price_deviation_allowed":{"type":"boolean","title":"Is Price Deviation Allowed","default":true},"is_contact_show":{"type":"boolean","title":"Is Contact Show","default":false},"show_my_info_to_silver_members":{"type":"boolean","title":"Show My Info To Silver Members","default":true},"status":{"type":"string","title":"Status","default":"active"},"is_ai_invitation_enabled":{"type":"boolean","title":"Is Ai Invitation Enabled","default":false},"is_see_other_departments_allowed":{"type":"boolean","title":"Is See Other Departments Allowed","default":true},"is_sealed_bid_method_mandatory":{"type":"boolean","title":"Is Sealed Bid Method Mandatory","default":false},"id":{"type":"integer","title":"Id"},"inviter_company_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Inviter Company Id"}},"type":"object","required":["name","id"],"title":"CompanyResponse","description":"Response schema for company data."},"CompanyUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"title":"Name"},"country_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Country Id"},"city_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"City Id"},"address":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Address"},"phone":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Phone"},"website":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Website"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"rem":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Rem"},"tax_office":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Tax Office"},"tax_no":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Tax No"},"about":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"About"},"zip_code":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Zip Code"},"default_compare_price_sort_type":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}],"title":"Default Compare Price Sort Type"},"is_price_deviation_allowed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Price Deviation Allowed"},"is_contact_show":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Contact Show"},"show_my_info_to_silver_members":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show My Info To Silver Members"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"is_ai_invitation_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Ai Invitation Enabled"},"is_see_other_departments_allowed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is See Other Departments Allowed"},"is_sealed_bid_method_mandatory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sealed Bid Method Mandatory"}},"type":"object","title":"CompanyUpdate","description":"Schema for updating an existing company."},"CountryResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Country id"},"name":{"type":"string","title":"Name","description":"Country name"}},"type":"object","required":["id","name"],"title":"CountryResponse"},"CurrencyResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Currency id"},"name":{"type":"string","title":"Name","description":"Currency name"}},"type":"object","required":["id","name"],"title":"CurrencyResponse"},"DetailResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"A detail message"}},"type":"object","required":["detail"],"title":"DetailResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntegrationLoginRequest":{"properties":{"client_id":{"type":"string","title":"Client Id"},"client_secret":{"type":"string","title":"Client Secret"}},"type":"object","required":["client_id","client_secret"],"title":"IntegrationLoginRequest"},"InvitationItemResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_name":{"type":"string","title":"Company Name"},"responsible_person_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Responsible Person Full Name"},"responsible_person_email":{"type":"string","title":"Responsible Person Email"},"company_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Phone"},"sector_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sector Id"},"invitation_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invitation Code"},"invitation_guid":{"type":"string","title":"Invitation Guid"},"is_confirm":{"type":"boolean","title":"Is Confirm"},"is_supplier":{"type":"boolean","title":"Is Supplier"},"invitor_company_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Invitor Company Id"}},"type":"object","required":["id","company_name","responsible_person_full_name","responsible_person_email","company_phone","sector_id","invitation_code","invitation_guid","is_confirm","is_supplier","invitor_company_id"],"title":"InvitationItemResponse","description":"Response schema for a single invitation item."},"InvitationListResponse":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"company_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Company Id"},"item_count":{"type":"integer","title":"Item Count","default":0}},"type":"object","required":["id","title","company_id"],"title":"InvitationListResponse","description":"Lightweight response schema for list endpoints — no items included."},"InvitationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"company_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Company Id"},"invitation_items":{"items":{"$ref":"#/components/schemas/InvitationItemResponse"},"type":"array","title":"Invitation Items","default":[]}},"type":"object","required":["id","title","company_id"],"title":"InvitationResponse","description":"Full response schema for a single invitation (includes items)."},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest","description":"Schema for user login request."},"ProductCreate":{"properties":{"short_text":{"type":"string","maxLength":1000,"title":"Short Text","description":"Product name or short description"},"customer_product_id":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Customer Product Id"},"mpn_id":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Mpn Id"},"price":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Price"},"currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Currency Id"},"unit_id":{"type":"integer","title":"Unit Id","description":"ID of the unit of measure"},"brand_name":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Brand Name"},"model_name":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Model Name"},"dimensions":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Dimensions"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attachment_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Url"},"external_code":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"External Code"},"external_code_2":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"External Code 2"},"vat_percentage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vat Percentage"},"status_id":{"type":"integer","title":"Status Id","description":"Status ID (e.g., active, passive)"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"},"top_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top Product Category Id"},"middle_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Middle Product Category Id"},"bottom_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bottom Product Category Id"}},"type":"object","required":["short_text","unit_id","status_id"],"title":"ProductCreate","description":"Schema for creating a new product."},"ProductListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ProductResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ProductListResponse","description":"Paginated response for product lists."},"ProductResponse":{"properties":{"short_text":{"type":"string","maxLength":1000,"title":"Short Text","description":"Product name or short description"},"customer_product_id":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Customer Product Id"},"mpn_id":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Mpn Id"},"price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price"},"currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Currency Id"},"unit_id":{"type":"integer","title":"Unit Id","description":"ID of the unit of measure"},"brand_name":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Brand Name"},"model_name":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Model Name"},"dimensions":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Dimensions"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attachment_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Url"},"external_code":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"External Code"},"external_code_2":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"External Code 2"},"vat_percentage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vat Percentage"},"status_id":{"type":"integer","title":"Status Id","description":"Status ID (e.g., active, passive)"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"},"top_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top Product Category Id"},"middle_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Middle Product Category Id"},"bottom_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bottom Product Category Id"},"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"created_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Created Date"}},"type":"object","required":["short_text","unit_id","status_id","id","company_id"],"title":"ProductResponse","description":"Schema for returning a product."},"QuickRFXCreatePayload":{"properties":{"rfx_detail":{"$ref":"#/components/schemas/QuickRFXDetailCreate"},"invitation_list":{"items":{"type":"string"},"type":"array","title":"Invitation List","description":"Emails of suppliers to invite"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id","description":"Department ID"},"is_draft":{"type":"boolean","title":"Is Draft","description":"Save as draft","default":false}},"type":"object","required":["rfx_detail"],"title":"QuickRFXCreatePayload","description":"Payload to create a new quick RFX."},"QuickRFXDetailCreate":{"properties":{"document_name":{"type":"string","maxLength":1000,"minLength":1,"title":"Document Name","description":"Name of the RFX document"},"submission_deadline_date":{"type":"string","format":"date","title":"Submission Deadline Date","description":"Deadline date for bids"},"submission_deadline_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","title":"Submission Deadline Time","description":"Deadline time for bids (HH:MM)"},"delivery_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Date","description":"Requested delivery date"},"is_partial":{"type":"boolean","title":"Is Partial","description":"Whether partial bids are allowed","default":true},"is_sealed_bid":{"type":"boolean","title":"Is Sealed Bid","description":"Whether it is a sealed bid tender","default":false},"offer_direction":{"type":"string","title":"Offer Direction","description":"Offer sort type ('min' or 'max')","default":"min"},"payment_type_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Payment Type Id","description":"Payment type ID"},"header_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Header Notes","description":"Public notes in the header"},"delivery_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Notes","description":"Delivery notes"},"currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Currency Id","description":"Currency ID for the RFX"},"is_supplier_doc_allowed":{"type":"boolean","title":"Is Supplier Doc Allowed","description":"Whether suppliers can upload documents","default":false},"is_delivery_info_required":{"type":"boolean","title":"Is Delivery Info Required","description":"Whether delivery info is mandatory from bidders","default":false},"prevent_up_down_ward_price_revise":{"type":"boolean","title":"Prevent Up Down Ward Price Revise","description":"Restrict price revisions","default":false},"supplier_ranking_display_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplier Ranking Display Type","description":"How ranking is displayed to suppliers","default":"numeric"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id","description":"Location ID for delivery"},"sector_ids":{"items":{"type":"integer"},"type":"array","title":"Sector Ids","description":"Sectors related to the RFX"},"selected_suppliers":{"items":{"type":"integer"},"type":"array","title":"Selected Suppliers","description":"Specifically selected supplier company IDs"},"items":{"items":{"$ref":"#/components/schemas/QuickRFXItemCreate"},"type":"array","minItems":1,"title":"Items","description":"List of items in the RFX"}},"type":"object","required":["document_name","submission_deadline_date","submission_deadline_time","items"],"title":"QuickRFXDetailCreate","description":"Schema for quick RFX details payload during creation."},"QuickRFXDetailResponse":{"properties":{"document_name":{"type":"string","title":"Document Name"},"is_partial":{"type":"boolean","title":"Is Partial"},"submission_deadline_type":{"type":"string","title":"Submission Deadline Type"},"submission_deadline_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Submission Deadline Date"},"submission_deadline_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submission Deadline Time"},"delivery_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Date"},"delivery_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Notes"},"is_sealed_bid":{"type":"boolean","title":"Is Sealed Bid"},"offer_direction":{"type":"string","title":"Offer Direction"},"payment_type_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Payment Type Id"},"header_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Header Notes"},"currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Currency Id"},"is_supplier_doc_allowed":{"type":"boolean","title":"Is Supplier Doc Allowed"},"is_delivery_info_required":{"type":"boolean","title":"Is Delivery Info Required"},"prevent_up_down_ward_price_revise":{"type":"boolean","title":"Prevent Up Down Ward Price Revise"},"sector_ids":{"items":{"type":"integer"},"type":"array","title":"Sector Ids"},"selected_suppliers":{"items":{"type":"integer"},"type":"array","title":"Selected Suppliers"},"internal_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Note"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"supplier_ranking_display_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplier Ranking Display Type"},"request_type":{"type":"string","title":"Request Type"},"items":{"items":{"$ref":"#/components/schemas/QuickRFXItemResponse"},"type":"array","title":"Items"},"is_draft":{"type":"boolean","title":"Is Draft"},"country_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Country Id"},"customer_id":{"type":"integer","title":"Customer Id"},"created_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["document_name","is_partial","submission_deadline_type","is_sealed_bid","offer_direction","is_supplier_doc_allowed","is_delivery_info_required","prevent_up_down_ward_price_revise","request_type","is_draft","customer_id"],"title":"QuickRFXDetailResponse","description":"Schema for serializing quick RFX details."},"QuickRFXDetailsEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/QuickRFXDetailsOuterResponse"}},"type":"object","required":["data"],"title":"QuickRFXDetailsEnvelope","description":"Envelope wrapper for RFX details response."},"QuickRFXDetailsOuterResponse":{"properties":{"rfx_detail":{"$ref":"#/components/schemas/QuickRFXDetailResponse"},"invitation_list":{"items":{"type":"string"},"type":"array","title":"Invitation List"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"},"supplier_group_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Supplier Group Ids"},"supplier_list_filters":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Supplier List Filters"}},"type":"object","required":["rfx_detail"],"title":"QuickRFXDetailsOuterResponse","description":"Outer schema containing quick RFX details and metadata."},"QuickRFXItemCreate":{"properties":{"product_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Product Id","description":"Product identifier if it exists"},"short_text":{"type":"string","maxLength":1000,"minLength":1,"title":"Short Text","description":"Short description of the item"},"quantity":{"type":"integer","exclusiveMinimum":0.0,"title":"Quantity","description":"Quantity required"},"unit_id":{"type":"integer","title":"Unit Id","description":"Unit of measure ID"},"request_price":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Request Price","description":"Reference price for the item"},"currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Currency Id","description":"Currency ID for the item price"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Detailed item notes"}},"type":"object","required":["short_text","quantity","unit_id"],"title":"QuickRFXItemCreate","description":"Schema for creating an item within a quick RFX."},"QuickRFXItemResponse":{"properties":{"product_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Product Id"},"short_text":{"type":"string","title":"Short Text"},"quantity":{"type":"number","title":"Quantity"},"unit_id":{"type":"integer","title":"Unit Id"},"request_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Request Price"},"currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Currency Id"},"brand_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Name"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attachment_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Url"},"new_attachments":{"items":{},"type":"array","title":"New Attachments"},"mpn_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mpn Id"},"sector_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Sector Ids"},"top_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top Product Category Id"},"middle_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Middle Product Category Id"},"bottom_product_category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bottom Product Category Id"}},"type":"object","required":["short_text","quantity","unit_id"],"title":"QuickRFXItemResponse","description":"Schema for serializing a quick RFX item response."},"QuickRFXResponse":{"properties":{"message":{"type":"string","title":"Message"},"remain":{"type":"string","title":"Remain"},"global_rfx_id":{"type":"integer","title":"Global Rfx Id"}},"type":"object","required":["message","remain","global_rfx_id"],"title":"QuickRFXResponse","description":"Unified response schema for quick RFX creation and update."},"QuickRFXUpdatePayload":{"properties":{"rfx_detail":{"$ref":"#/components/schemas/QuickRFXDetailCreate"},"invitation_list":{"items":{"type":"string"},"type":"array","title":"Invitation List","description":"Emails of suppliers to invite"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id","description":"Department ID"},"is_draft":{"type":"boolean","title":"Is Draft","description":"Save as draft","default":false}},"type":"object","required":["rfx_detail"],"title":"QuickRFXUpdatePayload","description":"Payload to update an existing quick RFX."},"RefreshTokenRequest":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"RefreshTokenRequest","description":"Schema for token refresh request."},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"name":{"type":"string","title":"Name"},"surname":{"type":"string","title":"Surname"},"phone":{"type":"string","title":"Phone"}},"type":"object","required":["email","password","name","surname","phone"],"title":"RegisterRequest","description":"Schema for user registration request."},"RequestHeaderCreate":{"properties":{"request_id":{"type":"integer","title":"Request Id","description":"Request identifier"},"customer_id":{"type":"integer","title":"Customer Id","description":"Customer company id"},"document_name":{"type":"string","maxLength":1000,"minLength":1,"title":"Document Name","description":"Document name"},"request_date":{"type":"string","format":"date","title":"Request Date","description":"Request date"},"location_id":{"type":"integer","title":"Location Id","description":"Location id"},"delivery_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Date","description":"Planned delivery date"},"status_id":{"type":"integer","title":"Status Id","description":"Status id"},"request_type":{"type":"string","maxLength":4,"minLength":1,"title":"Request Type","description":"Request type"},"internal_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Note","description":"Internal note"},"approval_rule_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Approval Rule Id","description":"Approval rule id"},"description_for_approver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description For Approver","description":"Description for approver"},"delivery_started_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Started Date","description":"Delivery started date"}},"type":"object","required":["request_id","customer_id","document_name","request_date","location_id","status_id","request_type"],"title":"RequestHeaderCreate"},"RequestHeaderResponse":{"properties":{"request_id":{"type":"integer","title":"Request Id","description":"Request identifier"},"customer_id":{"type":"integer","title":"Customer Id","description":"Customer company id"},"document_name":{"type":"string","maxLength":1000,"minLength":1,"title":"Document Name","description":"Document name"},"request_date":{"type":"string","format":"date","title":"Request Date","description":"Request date"},"location_id":{"type":"integer","title":"Location Id","description":"Location id"},"delivery_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Date","description":"Planned delivery date"},"status_id":{"type":"integer","title":"Status Id","description":"Status id"},"request_type":{"type":"string","maxLength":4,"minLength":1,"title":"Request Type","description":"Request type"},"internal_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Note","description":"Internal note"},"approval_rule_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Approval Rule Id","description":"Approval rule id"},"description_for_approver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description For Approver","description":"Description for approver"},"delivery_started_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Started Date","description":"Delivery started date"},"global_request_id":{"type":"integer","title":"Global Request Id","description":"Global request identifier"},"location":{"anyOf":[{},{"type":"null"}],"title":"Location","description":"Location relation"},"status":{"anyOf":[{},{"type":"null"}],"title":"Status","description":"Status relation"},"created_by_rel":{"anyOf":[{},{"type":"null"}],"title":"Created By Rel","description":"Created by relation"},"updated_by_rel":{"anyOf":[{},{"type":"null"}],"title":"Updated By Rel","description":"Updated by relation"},"approval_rule":{"anyOf":[{},{"type":"null"}],"title":"Approval Rule","description":"Approval rule relation"}},"type":"object","required":["request_id","customer_id","document_name","request_date","location_id","status_id","request_type","global_request_id"],"title":"RequestHeaderResponse"},"RequestHeaderUpdate":{"properties":{"document_name":{"anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"title":"Document Name"},"request_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Request Date"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"delivery_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Date"},"status_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Id"},"request_type":{"anyOf":[{"type":"string","maxLength":4,"minLength":1},{"type":"null"}],"title":"Request Type"},"internal_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Note"},"approval_rule_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Approval Rule Id"},"description_for_approver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description For Approver"},"delivery_started_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Delivery Started Date"}},"type":"object","title":"RequestHeaderUpdate"},"SectorResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Sector id"},"text":{"type":"string","title":"Text","description":"Sector translated name"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Sector code"}},"type":"object","required":["id","text"],"title":"SectorResponse","description":"Response schema for Sector information with translated text."},"SingleSupplierInvitationCreate":{"properties":{"title":{"type":"string","title":"Title"},"invitation_item":{"$ref":"#/components/schemas/SupplierInvitationItemCreate"}},"type":"object","required":["title","invitation_item"],"title":"SingleSupplierInvitationCreate","description":"Schema for creating a single supplier invitation (one item)."},"SupplierInvitationItemCreate":{"properties":{"company_name":{"type":"string","title":"Company Name"},"responsible_person_full_name":{"type":"string","title":"Responsible Person Full Name"},"responsible_person_email":{"type":"string","format":"email","title":"Responsible Person Email"},"company_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Phone"},"sector_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sector Id"}},"type":"object","required":["company_name","responsible_person_full_name","responsible_person_email"],"title":"SupplierInvitationItemCreate","description":"Schema for a single supplier invitation item."},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["access_token","refresh_token"],"title":"Token","description":"Schema for access and refresh tokens."},"UserActiveStateUpdateRequest":{"properties":{"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["is_active"],"title":"UserActiveStateUpdateRequest"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"type":"string","title":"Name"},"surname":{"type":"string","title":"Surname"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"gsm_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gsm Number"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"},"company_id":{"type":"integer","title":"Company Id"},"is_active":{"type":"boolean","title":"Is Active","default":true},"sms_notification_permission":{"type":"boolean","title":"Sms Notification Permission","default":true},"email_notification_permission":{"type":"boolean","title":"Email Notification Permission","default":true},"browser_notification_permission":{"type":"boolean","title":"Browser Notification Permission","default":true},"default_language":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Default Language"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"sap_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sap Username"},"two_factor_enabled":{"type":"boolean","title":"Two Factor Enabled","default":false},"gsm_verified":{"type":"boolean","title":"Gsm Verified","default":false},"selected_currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Selected Currency Id"},"preferred_currencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Currencies"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","name","surname","company_id","password"],"title":"UserCreate","description":"Schema for creating a new user (reflects DB structure, includes password)."},"UserListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UserResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"skip":{"type":"integer","title":"Skip"},"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["items","total","skip","limit"],"title":"UserListResponse"},"UserResponse":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"type":"string","title":"Name"},"surname":{"type":"string","title":"Surname"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"gsm_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gsm Number"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"},"company_id":{"type":"integer","title":"Company Id"},"is_active":{"type":"boolean","title":"Is Active","default":true},"sms_notification_permission":{"type":"boolean","title":"Sms Notification Permission","default":true},"email_notification_permission":{"type":"boolean","title":"Email Notification Permission","default":true},"browser_notification_permission":{"type":"boolean","title":"Browser Notification Permission","default":true},"default_language":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Default Language"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"sap_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sap Username"},"two_factor_enabled":{"type":"boolean","title":"Two Factor Enabled","default":false},"gsm_verified":{"type":"boolean","title":"Gsm Verified","default":false},"selected_currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Selected Currency Id"},"preferred_currencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Currencies"},"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["email","name","surname","company_id","id","created_at","updated_at"],"title":"UserResponse","description":"Schema for user responses reflecting the DB model (without password)."},"UserRoleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"key":{"type":"string","title":"Key"},"domain":{"type":"string","title":"Domain"}},"type":"object","required":["id","key","domain"],"title":"UserRoleResponse"},"UserRoleUpdateRequest":{"properties":{"role_ids":{"items":{"type":"integer"},"type":"array","title":"Role Ids"}},"type":"object","title":"UserRoleUpdateRequest"},"UserUpdate":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"surname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Surname"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"gsm_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gsm Number"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Department Id"},"company_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Company Id"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"sms_notification_permission":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sms Notification Permission"},"email_notification_permission":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Email Notification Permission"},"browser_notification_permission":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Browser Notification Permission"},"default_language":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Default Language"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"location_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Id"},"sap_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sap Username"},"two_factor_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Two Factor Enabled"},"gsm_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Gsm Verified"},"selected_currency_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Selected Currency Id"},"preferred_currencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Currencies"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"type":"object","title":"UserUpdate","description":"Schema for updating an existing user. All fields are optional."},"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":{"Authorization":{"type":"http","scheme":"bearer"}}}}