{"openapi":"3.1.0","info":{"title":"Микротон Tender","version":"0.1.0"},"paths":{"/privacy":{"get":{"summary":"Privacy","description":"Privacy policy page (Политика обработки персональных данных).","operationId":"privacy_privacy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/contacts":{"get":{"summary":"Contacts","description":"Contacts/support page (Контакты / Поддержка).","operationId":"contacts_contacts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Contacts Post","description":"Handle feedback form submission from contacts page.","operationId":"contacts_post_contacts_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/contacts/captcha":{"get":{"summary":"Contacts Captcha Image","operationId":"contacts_captcha_image_contacts_captcha_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/captcha":{"get":{"summary":"Captcha Image","operationId":"captcha_image_captcha_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/register/captcha":{"get":{"summary":"Register Captcha Image","operationId":"register_captcha_image_register_captcha_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/forgot-password":{"get":{"summary":"Forgot Password Get","description":"Show password reset request form.","operationId":"forgot_password_get_forgot_password_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Forgot Password Post","description":"Create a one-time password reset token and email it to the user.","operationId":"forgot_password_post_forgot_password_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_forgot_password_post_forgot_password_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/reset-password":{"get":{"summary":"Reset Password Get","description":"Show new password form for a valid reset token.","operationId":"reset_password_get_reset_password_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Reset Password Post","description":"Reset the user's password using a valid one-time token.","operationId":"reset_password_post_reset_password_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_reset_password_post_reset_password_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/register":{"get":{"summary":"Register Get","operationId":"register_get_register_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Register Post","operationId":"register_post_register_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_register_post_register_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/verify-email":{"get":{"summary":"Verify Email","description":"Verify user email with token from EmailVerificationToken table.","operationId":"verify_email_auth_verify_email_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/login":{"get":{"summary":"Login Get","operationId":"login_get_login_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Login Post","operationId":"login_post_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_login_post_login_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/login/2fa":{"get":{"summary":"Login 2Fa Get","description":"Show the 2FA verification form during login.","operationId":"login_2fa_get_login_2fa_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Login 2Fa Post","description":"Verify TOTP code or backup code and complete login.\n\nSupports both:\n- Standard 6-digit TOTP codes from authenticator app\n- 8-character backup (recovery) codes in format XXXX-XXXX\n\nImplements attempt limiting: after MAX_2FA_ATTEMPTS failures,\nthe user must restart the login process.","operationId":"login_2fa_post_login_2fa_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_login_2fa_post_login_2fa_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/logout":{"get":{"summary":"Logout","operationId":"logout_logout_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/resend-verification":{"post":{"summary":"Resend Verification","description":"Resend verification email to user.","operationId":"resend_verification_auth_resend_verification_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resend_verification_auth_resend_verification_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet":{"get":{"summary":"Cabinet Get","description":"User Cabinet / Dashboard - Main entry point after login.","operationId":"cabinet_get_cabinet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/cabinet/participation":{"get":{"summary":"Supplier Participation Get","description":"Paginated supplier page for tenders where the company can start an offer.","operationId":"supplier_participation_get_cabinet_participation_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/legal/accept":{"post":{"summary":"Legal Accept Post","operationId":"legal_accept_post_legal_accept_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_legal_accept_post_legal_accept_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/profile":{"get":{"summary":"Profile Get","operationId":"profile_get_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/profile/email":{"post":{"summary":"Profile Change Email","operationId":"profile_change_email_profile_email_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_profile_change_email_profile_email_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/profile/notifications":{"post":{"summary":"Profile Notifications Post","operationId":"profile_notifications_post_profile_notifications_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/profile/password":{"post":{"summary":"Profile Change Password","operationId":"profile_change_password_profile_password_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_profile_change_password_profile_password_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Index","description":"Main tenders list page with search and filtering.\n\nPERFORMANCE:\n- Paginated: 20 items per page (prevents unbounded result sets)\n- Uses eager loading for company relationship\n- Bulk queries for doc/offer counts (no N+1)\n- Utilizes composite indexes on (status, type, created_at)","operationId":"index__get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"procedure_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Procedure Type"}},{"name":"customer_company_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Company Id"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"deadline_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deadline To"}},{"name":"price_min","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Min"}},{"name":"price_max","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Max"}},{"name":"vat_rate","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Rate"}},{"name":"only_available","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Only Available"}},{"name":"invitation_only","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invitation Only"}},{"name":"has_documents","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Has Documents"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/new":{"get":{"summary":"Tender New Get","operationId":"tender_new_get_tenders_new_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Tender New Post","operationId":"tender_new_post_tenders_new_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_tender_new_post_tenders_new_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/import/template.xlsx":{"get":{"summary":"Tender Items Template Download","operationId":"tender_items_template_download_tenders_import_template_xlsx_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tenders/items/template.xlsx":{"get":{"summary":"Tender Items Template Download","operationId":"tender_items_template_download_tenders_items_template_xlsx_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tenders/import":{"post":{"summary":"Tender Items Import","operationId":"tender_items_import_tenders_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_tender_items_import_tenders_import_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/items/import":{"post":{"summary":"Tender Items Import","operationId":"tender_items_import_tenders_items_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_tender_items_import_tenders_items_import_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}":{"get":{"summary":"Tender Detail","description":"Display tender detail page.\n\nPERFORMANCE: Uses eager loading for company and items relationships\nto avoid N+1 queries when building the tender context.","operationId":"tender_detail_tenders__tender_id__get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/files/{file_id}":{"get":{"summary":"Download Tender File","operationId":"download_tender_file_tenders__tender_id__files__file_id__get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"integer","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/archive.zip":{"get":{"summary":"Download Tender Archive","operationId":"download_tender_archive_tenders__tender_id__archive_zip_get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/edit":{"get":{"summary":"Tender Edit Get","operationId":"tender_edit_get_tenders__tender_id__edit_get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Tender Edit Post","description":"Update an existing tender.\n\nHTTP-level concerns only:\n- CSRF validation\n- Authentication/authorization\n- Form data extraction\n- File extension validation\n- Template rendering for errors\n\nBusiness logic delegated to tenders_service.","operationId":"tender_edit_post_tenders__tender_id__edit_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_tender_edit_post_tenders__tender_id__edit_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/offers":{"post":{"summary":"Tender Offer Post","operationId":"tender_offer_post_tenders__tender_id__offers_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_tender_offer_post_tenders__tender_id__offers_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/close":{"post":{"summary":"Tender Close","description":"Legacy close endpoint.\n\nWinner selection now lives on the award page so the decision, reason,\nprotocol and notifications stay in one controlled flow.","operationId":"tender_close_tenders__tender_id__close_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_close_tenders__tender_id__close_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/cancel":{"post":{"summary":"Tender Cancel","operationId":"tender_cancel_tenders__tender_id__cancel_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_cancel_tenders__tender_id__cancel_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/publish":{"post":{"summary":"Tender Publish","description":"Publish a draft tender.","operationId":"tender_publish_tenders__tender_id__publish_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_publish_tenders__tender_id__publish_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/delete":{"post":{"summary":"Tender Delete","description":"Delete a tender (soft delete for owners, hard delete for special admins).\n\nHTTP-level concerns only. Business logic delegated to tenders_service.","operationId":"tender_delete_tenders__tender_id__delete_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_delete_tenders__tender_id__delete_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/clone":{"post":{"summary":"Tender Clone","description":"Clone an existing tender as a draft.","operationId":"tender_clone_tenders__tender_id__clone_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_clone_tenders__tender_id__clone_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/questions/new":{"get":{"summary":"New Question Form","description":"Show form to ask a new question.","operationId":"new_question_form_tenders__id__questions_new_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/questions":{"post":{"summary":"Create Question","description":"Handle new question submission.","operationId":"create_question_tenders__id__questions_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_question_tenders__id__questions_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/questions/{qid}/answer":{"post":{"summary":"Answer Question","description":"Handle answering a question.","operationId":"answer_question_tenders__id__questions__qid__answer_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}},{"name":"qid","in":"path","required":true,"schema":{"type":"integer","title":"Qid"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_answer_question_tenders__id__questions__qid__answer_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/questions/{qid}/hide":{"post":{"summary":"Hide Question","description":"Toggle visibility of a question.","operationId":"hide_question_tenders__id__questions__qid__hide_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}},{"name":"qid","in":"path","required":true,"schema":{"type":"integer","title":"Qid"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_hide_question_tenders__id__questions__qid__hide_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/protocols":{"post":{"summary":"Create Protocol","description":"Create a new protocol.","operationId":"create_protocol_tenders__id__protocols_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_protocol_tenders__id__protocols_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/protocols/results-draft":{"post":{"summary":"Create Results Protocol Draft","description":"Create or refresh a draft result protocol from the selected winner.","operationId":"create_results_protocol_draft_tenders__id__protocols_results_draft_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_results_protocol_draft_tenders__id__protocols_results_draft_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/protocols/{pid}/publish":{"post":{"summary":"Publish Protocol","description":"Toggle publication status of a protocol.","operationId":"publish_protocol_tenders__id__protocols__pid__publish_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_publish_protocol_tenders__id__protocols__pid__publish_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/protocols/{pid}/download/{file_format}":{"get":{"summary":"Download Protocol Export","description":"Download a generated protocol file as PDF or DOCX.","operationId":"download_protocol_export_tenders__id__protocols__pid__download__file_format__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer","title":"Pid"}},{"name":"file_format","in":"path","required":true,"schema":{"type":"string","title":"File Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/protocols/{pid}/delete":{"post":{"summary":"Delete Protocol","description":"Archive a protocol without deleting its database record or file.","operationId":"delete_protocol_tenders__id__protocols__pid__delete_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_delete_protocol_tenders__id__protocols__pid__delete_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/award":{"get":{"summary":"Tender Award Get","description":"Show winner selection page for organizers/admins.","operationId":"tender_award_get_tenders__id__award_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Tender Award Post","description":"Handle winner selection.","operationId":"tender_award_post_tenders__id__award_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_award_post_tenders__id__award_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/award/no-winner":{"post":{"summary":"Tender Award No Winner","description":"Complete a tender without selecting a winner.","operationId":"tender_award_no_winner_tenders__id__award_no_winner_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_award_no_winner_tenders__id__award_no_winner_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/award/reset":{"post":{"summary":"Tender Award Reset","description":"Reset winner selection.","operationId":"tender_award_reset_tenders__id__award_reset_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_award_reset_tenders__id__award_reset_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{id}/reopen":{"post":{"summary":"Tender Reopen","description":"Reopen a closed tender (after winner selection has been cancelled).\n\nBusiness rules:\n- Only users who can edit the tender can reopen it\n- The tender must be in 'closed' status (not 'cancelled')\n- There must be NO active winner (winner selection must be reset first)\n\nAfter reopening:\n- Tender status changes to 'open'\n- Tender behaves like any other open tender","operationId":"tender_reopen_tenders__id__reopen_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_tender_reopen_tenders__id__reopen_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/trading-rounds":{"post":{"summary":"Create Tender Trading Round","operationId":"create_tender_trading_round_tenders__tender_id__trading_rounds_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_tender_trading_round_tenders__tender_id__trading_rounds_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/trading-rounds/{round_id}/state":{"get":{"summary":"Tender Trading Round State","operationId":"tender_trading_round_state_tenders__tender_id__trading_rounds__round_id__state_get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}},{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/trading-rounds/{round_id}/bids":{"post":{"summary":"Submit Tender Trading Bid","operationId":"submit_tender_trading_bid_tenders__tender_id__trading_rounds__round_id__bids_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}},{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_submit_tender_trading_bid_tenders__tender_id__trading_rounds__round_id__bids_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/trading-rounds/{round_id}/cancel":{"post":{"summary":"Cancel Tender Trading Round","operationId":"cancel_tender_trading_round_tenders__tender_id__trading_rounds__round_id__cancel_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}},{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_cancel_tender_trading_round_tenders__tender_id__trading_rounds__round_id__cancel_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenders/{tender_id}/trading-rounds/{round_id}/complete":{"post":{"summary":"Complete Tender Trading Round","operationId":"complete_tender_trading_round_tenders__tender_id__trading_rounds__round_id__complete_post","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}},{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_complete_tender_trading_round_tenders__tender_id__trading_rounds__round_id__complete_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/applications":{"get":{"summary":"My Offers","description":"Display list of current user's offers with pagination.\n\nPERFORMANCE: Paginated to 50 items per page max to prevent \nunbounded result sets as users accumulate more offers over time.","operationId":"my_offers_cabinet_applications_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/my-offers":{"get":{"summary":"My Offers","description":"Display list of current user's offers with pagination.\n\nPERFORMANCE: Paginated to 50 items per page max to prevent \nunbounded result sets as users accumulate more offers over time.","operationId":"my_offers_my_offers_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/offers/{offer_id}":{"get":{"summary":"Offer Detail","description":"Display offer detail page.","operationId":"offer_detail_offers__offer_id__get","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"integer","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/offers/{offer_id}/edit":{"get":{"summary":"Offer Edit Get","description":"Display offer edit form.","operationId":"offer_edit_get_offers__offer_id__edit_get","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"integer","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Offer Edit Post","description":"Process offer edit form.","operationId":"offer_edit_post_offers__offer_id__edit_post","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"integer","title":"Offer Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_offer_edit_post_offers__offer_id__edit_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/offers/{offer_id}/withdraw":{"post":{"summary":"Offer Withdraw","description":"Withdraw an offer - converts it to a draft for re-editing.","operationId":"offer_withdraw_offers__offer_id__withdraw_post","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"integer","title":"Offer Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_offer_withdraw_offers__offer_id__withdraw_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/new":{"get":{"summary":"Admin Company New Get","operationId":"admin_company_new_get_admin_companies_new_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Admin Company New Post","operationId":"admin_company_new_post_admin_companies_new_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_company_new_post_admin_companies_new_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies":{"get":{"summary":"Admin Companies","description":"Admin companies list with pagination.\n\nP1 PERFORMANCE: Use separate count query (without joinedload) for efficiency.\nOnly apply joinedload for the paginated data query.","operationId":"admin_companies_admin_companies_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Role"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Status"}},{"name":"accreditation","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Accreditation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/export.xlsx":{"get":{"summary":"Admin Companies Export","operationId":"admin_companies_export_admin_companies_export_xlsx_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/companies/{company_id}/export.xlsx":{"get":{"summary":"Admin Company Export","operationId":"admin_company_export_admin_companies__company_id__export_xlsx_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/documents.zip":{"get":{"summary":"Admin Company Documents Archive","operationId":"admin_company_documents_archive_admin_companies__company_id__documents_zip_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/refresh-excel":{"post":{"summary":"Admin Company Refresh Excel","operationId":"admin_company_refresh_excel_admin_companies__company_id__refresh_excel_post","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_company_refresh_excel_admin_companies__company_id__refresh_excel_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/edit":{"get":{"summary":"Admin Company Edit","operationId":"admin_company_edit_admin_companies__company_id__edit_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}":{"get":{"summary":"Admin Company Detail","operationId":"admin_company_detail_admin_companies__company_id__get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/update":{"post":{"summary":"Admin Companies Update","operationId":"admin_companies_update_admin_companies__company_id__update_post","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_companies_update_admin_companies__company_id__update_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/restore-accreditation":{"post":{"summary":"Admin Company Restore Accreditation","operationId":"admin_company_restore_accreditation_admin_companies__company_id__restore_accreditation_post","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_company_restore_accreditation_admin_companies__company_id__restore_accreditation_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/delete":{"post":{"summary":"Admin Companies Delete","operationId":"admin_companies_delete_admin_companies__company_id__delete_post","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_companies_delete_admin_companies__company_id__delete_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/users/{user_id}/delete":{"post":{"summary":"Admin User Delete","operationId":"admin_user_delete_admin_users__user_id__delete_post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_user_delete_admin_users__user_id__delete_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/messages/broadcast":{"get":{"summary":"Admin Broadcast Get","description":"Display the broadcast message form for admins.","operationId":"admin_broadcast_get_admin_messages_broadcast_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Admin Broadcast Post","description":"Process broadcast message submission.","operationId":"admin_broadcast_post_admin_messages_broadcast_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_broadcast_post_admin_messages_broadcast_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/digests/suppliers":{"get":{"summary":"Admin Digests Suppliers Get","description":"Display the supplier digest management page.","operationId":"admin_digests_suppliers_get_admin_digests_suppliers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/digests/suppliers/send":{"post":{"summary":"Admin Digests Suppliers Send","description":"Trigger a supplier digest send.","operationId":"admin_digests_suppliers_send_admin_digests_suppliers_send_post","parameters":[{"name":"frequency","in":"query","required":false,"schema":{"type":"string","title":"Frequency"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"string","default":"0","title":"Dry Run"}},{"name":"force","in":"query","required":false,"schema":{"type":"string","default":"0","title":"Force"}},{"name":"csrf_token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Csrf Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/accreditation":{"get":{"summary":"Accreditation Get","operationId":"accreditation_get_cabinet_accreditation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Accreditation Post","operationId":"accreditation_post_cabinet_accreditation_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_accreditation_post_cabinet_accreditation_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/accreditation/documents/upload":{"post":{"summary":"Upload Company Document","description":"Upload a document for the current user's company.","operationId":"upload_company_document_cabinet_accreditation_documents_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_company_document_cabinet_accreditation_documents_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/accreditation/documents/{doc_id}/delete":{"post":{"summary":"Delete Company Document Route","description":"Delete a company document.","operationId":"delete_company_document_route_cabinet_accreditation_documents__doc_id__delete_post","parameters":[{"name":"doc_id","in":"path","required":true,"schema":{"type":"integer","title":"Doc Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_delete_company_document_route_cabinet_accreditation_documents__doc_id__delete_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/accreditation/documents/{doc_id}/download":{"get":{"summary":"Download Company Document","description":"Download a company document. Only company owner or admin can access.","operationId":"download_company_document_cabinet_accreditation_documents__doc_id__download_get","parameters":[{"name":"doc_id","in":"path","required":true,"schema":{"type":"integer","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/accreditation":{"get":{"summary":"Admin Accreditation List","operationId":"admin_accreditation_list_admin_accreditation_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Status"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Role"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/accreditation/{company_id}":{"get":{"summary":"Admin Accreditation Detail","operationId":"admin_accreditation_detail_admin_accreditation__company_id__get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/accreditation/{company_id}/documents/{doc_id}/download":{"get":{"summary":"Admin Download Company Document","description":"Admin endpoint to download company documents.","operationId":"admin_download_company_document_admin_accreditation__company_id__documents__doc_id__download_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"integer","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/accreditation/{company_id}/decide":{"post":{"summary":"Admin Accreditation Decide","operationId":"admin_accreditation_decide_admin_accreditation__company_id__decide_post","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_accreditation_decide_admin_accreditation__company_id__decide_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/accreditation/{company_id}/update":{"post":{"summary":"Admin Accreditation Update","operationId":"admin_accreditation_update_admin_accreditation__company_id__update_post","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_accreditation_update_admin_accreditation__company_id__update_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/messages":{"get":{"summary":"Messages List","operationId":"messages_list_cabinet_messages_get","parameters":[{"name":"folder","in":"query","required":false,"schema":{"type":"string","default":"notifications","title":"Folder"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/messages/compose":{"get":{"summary":"Message Compose","operationId":"message_compose_cabinet_messages_compose_get","parameters":[{"name":"recipient_id","in":"query","required":false,"schema":{"type":"integer","title":"Recipient Id"}},{"name":"company_id","in":"query","required":false,"schema":{"type":"integer","title":"Company Id"}},{"name":"tender_id","in":"query","required":false,"schema":{"type":"integer","title":"Tender Id"}},{"name":"subject","in":"query","required":false,"schema":{"type":"string","title":"Subject"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/messages/{message_id}":{"get":{"summary":"Message Detail","operationId":"message_detail_cabinet_messages__message_id__get","parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"integer","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/messages/send":{"post":{"summary":"Send Message","operationId":"send_message_cabinet_messages_send_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_send_message_cabinet_messages_send_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cabinet/messages/mark-all-read":{"post":{"summary":"Mark All Messages Read","description":"Mark all incoming unread messages as read for the current user.","operationId":"mark_all_messages_read_cabinet_messages_mark_all_read_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_mark_all_messages_read_cabinet_messages_mark_all_read_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/robots.txt":{"get":{"tags":["SEO"],"summary":"Robots Txt","description":"Serve robots.txt with crawler directives.\n\nPublic pages (homepage, paginated lists) are allowed.\nPrivate areas (cabinet, messages, login, etc.) are disallowed.","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"tags":["SEO"],"summary":"Sitemap Xml","description":"Generate dynamic XML sitemap for public indexable pages.\n\nIncludes:\n- Homepage (/)\n- Paginated tender list pages (/?page=N)\n- Public open tender detail pages (/tenders/{id})\n- Public information pages and API documentation\n\nDoes NOT include:\n- Private pages (login, register, cabinet, messages)\n- Draft, closed, cancelled, deleted and private tender detail pages\n- Admin pages","operationId":"sitemap_xml_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/about":{"get":{"tags":["info"],"summary":"About Page","description":"About the service page.","operationId":"about_page_about_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/for-customers":{"get":{"tags":["info"],"summary":"For Customers Page","description":"For customers/buyers page.","operationId":"for_customers_page_for_customers_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/for-suppliers":{"get":{"tags":["info"],"summary":"For Suppliers Page","description":"For suppliers page.","operationId":"for_suppliers_page_for_suppliers_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/faq":{"get":{"tags":["info"],"summary":"Faq Page","description":"Frequently asked questions page.","operationId":"faq_page_faq_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api-docs":{"get":{"tags":["info"],"summary":"Api Docs Page","description":"Public API documentation for aggregators and search partners.","operationId":"api_docs_page_api_docs_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal":{"get":{"tags":["info"],"summary":"Legal Page","description":"Legal information and liability limitations page.","operationId":"legal_page_legal_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/security/2fa/setup":{"get":{"summary":"Setup 2Fa Get","description":"Show the 2FA setup page with QR code.\n\nAccess: Logged-in admins/superadmins only.\n\nGenerates a temporary TOTP secret and stores it in the session.\nThe secret is not saved to DB until the user verifies with a valid code.","operationId":"setup_2fa_get_security_2fa_setup_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Setup 2Fa Post","description":"Verify TOTP code and enable 2FA.\n\nReads the temporary secret from session, verifies the submitted code,\nand if valid, saves the secret to the user's record and enables 2FA.","operationId":"setup_2fa_post_security_2fa_setup_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setup_2fa_post_security_2fa_setup_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/security/2fa/disable":{"get":{"summary":"Disable 2Fa Get","description":"Show the 2FA disable form.\n\nAccess: Logged-in admins/superadmins with 2FA enabled.","operationId":"disable_2fa_get_security_2fa_disable_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Disable 2Fa Post","description":"Disable 2FA after verifying the current password.\n\nRequires the user's current password for security.\nAlso deletes all backup codes for this user.","operationId":"disable_2fa_post_security_2fa_disable_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_disable_2fa_post_security_2fa_disable_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/security/2fa/backup-codes":{"get":{"summary":"Backup Codes Get","description":"Show the backup codes status page.\n\nAccess: Logged-in admins/superadmins with 2FA enabled.\nShows the number of unused backup codes and options to generate new ones.\nDoes NOT show the actual codes (they are only shown once during generation).","operationId":"backup_codes_get_security_2fa_backup_codes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/security/2fa/backup-codes/generate":{"post":{"summary":"Backup Codes Generate Post","description":"Generate new backup codes.\n\nAccess: Logged-in admins/superadmins with 2FA enabled.\n\nGenerates 10 new backup codes:\n- Deletes all existing backup codes for this user\n- Creates new codes (stored as hashes)\n- Displays the plain codes ONCE to the user\n\nIMPORTANT: The plain codes are shown only on this response.\nAfter this, only hashes are stored - codes cannot be recovered.","operationId":"backup_codes_generate_post_security_2fa_backup_codes_generate_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_backup_codes_generate_post_security_2fa_backup_codes_generate_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/stats":{"get":{"tags":["admin-stats"],"summary":"Admin Stats Page","description":"Superadmin-only system statistics dashboard.\n\nShows aggregate statistics about:\n- Users, companies, tenders, offers (global counts)\n- Recent activity (new registrations per day)\n- Tender funnel (offers distribution)\n- Accreditation overview (supplier statuses)\n- Security/2FA overview (admin 2FA adoption)\n- Recent audit events (last 5 actions)\n\nAccess:\n- Guests: redirect to /login\n- Non-superadmin users (including regular admins): redirect to /cabinet\n- Superadmin only: show the stats page","operationId":"admin_stats_page_admin_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/stats/attention-digest/send":{"post":{"tags":["admin-stats"],"summary":"Send Admin Stats Attention Digest","description":"Manually send the superadmin attention digest email.","operationId":"send_admin_stats_attention_digest_admin_stats_attention_digest_send_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_send_admin_stats_attention_digest_admin_stats_attention_digest_send_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/audit":{"get":{"tags":["admin-audit"],"summary":"Admin Audit Page","description":"Superadmin-only audit log viewing page.\n\nShows a filterable list of audit events with:\n- Date range filter\n- User filter\n- Target type filter (tender, company, user, broadcast)\n- Action filter\n\nAccess:\n- Guests: redirect to /login\n- Non-superadmin users (including regular admins): redirect to /cabinet\n- Superadmin only: show the audit log page","operationId":"admin_audit_page_admin_audit_get","parameters":[{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date YYYY-MM-DD","title":"Date From"},"description":"Start date YYYY-MM-DD"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date YYYY-MM-DD","title":"Date To"},"description":"End date YYYY-MM-DD"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"target_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by target type","title":"Target Type"},"description":"Filter by target type"},{"name":"target_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by target ID","title":"Target Id"},"description":"Filter by target ID"},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by action","title":"Action"},"description":"Filter by action"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/notifications/health":{"get":{"tags":["admin-notification-health"],"summary":"Admin Notification Health Page","description":"Show notification delivery failures recorded in audit log.","operationId":"admin_notification_health_page_admin_notifications_health_get","parameters":[{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Channel"}},{"name":"delivery_status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Delivery Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/notifications/health/{event_id}/retry":{"post":{"tags":["admin-notification-health"],"summary":"Retry Notification Health Event","description":"Retry a failed notification as a safe service email and record delivery result.","operationId":"retry_notification_health_event_admin_notifications_health__event_id__retry_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_retry_notification_health_event_admin_notifications_health__event_id__retry_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/system/health":{"get":{"tags":["admin-system-health"],"summary":"Admin System Health Page","description":"Show read-only diagnostics for core portal infrastructure.","operationId":"admin_system_health_page_admin_system_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/tasks":{"get":{"tags":["admin-task-journal"],"summary":"Admin Task Journal Page","description":"Show one page for maintenance jobs and their recent runs.","operationId":"admin_task_journal_page_admin_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/error-logs":{"get":{"tags":["admin-error-logs"],"summary":"Admin Error Logs Page","description":"Show recent HTTP 500/server errors for the superadmin.","operationId":"admin_error_logs_page_admin_error_logs_get","parameters":[{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"30d","title":"Period"}},{"name":"status_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Code"}},{"name":"review_status","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Review Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/error-logs/{entry_id}":{"get":{"tags":["admin-error-logs"],"summary":"Admin Error Log Detail Page","description":"Show one server error with triage hints and similar records.","operationId":"admin_error_log_detail_page_admin_error_logs__entry_id__get","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"integer","title":"Entry Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/error-logs/{entry_id}/review":{"post":{"tags":["admin-error-logs"],"summary":"Review Error Log Entry","description":"Mark one journal entry as reviewed or return it to the open queue.","operationId":"review_error_log_entry_admin_error_logs__entry_id__review_post","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"integer","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_review_error_log_entry_admin_error_logs__entry_id__review_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/":{"get":{"tags":["public-api"],"summary":"Public Api Root","operationId":"public_api_root_api_v1__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiVersionResponse"}}}}}}},"/api/v1":{"get":{"tags":["public-api"],"summary":"Public Api Root","operationId":"public_api_root_api_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiVersionResponse"}}}}}}},"/api/v1/version":{"get":{"tags":["public-api"],"summary":"Public Api Version","operationId":"public_api_version_api_v1_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiVersionResponse"}}}}}}},"/api/v1/health":{"get":{"tags":["public-api"],"summary":"Public Api Health","operationId":"public_api_health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiHealthResponse"}}}}}}},"/api/v1/tenders":{"get":{"tags":["public-api"],"summary":"Public Tenders","operationId":"public_tenders_api_v1_tenders_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Search in title and description","title":"Q"},"description":"Search in title and description"},{"name":"status","in":"query","required":false,"schema":{"const":"open","type":"string","description":"Only open public tenders are exposed in v1","default":"open","title":"Status"},"description":"Only open public tenders are exposed in v1"},{"name":"created_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Return tenders created after this ISO 8601 date/time","format":"date-time","title":"Created Since"},"description":"Return tenders created after this ISO 8601 date/time"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Accepted for aggregators; in v1 it filters by created_at","format":"date-time","title":"Updated Since"},"description":"Accepted for aggregators; in v1 it filters by created_at"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTenderListResponse"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}},"description":"Unprocessable Entity"}}}},"/api/v1/tenders/{tender_id}":{"get":{"tags":["public-api"],"summary":"Public Tender Detail","operationId":"public_tender_detail_api_v1_tenders__tender_id__get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTenderDetail"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenders/{tender_id}/documents":{"get":{"tags":["public-api"],"summary":"Public Tender Documents","operationId":"public_tender_documents_api_v1_tenders__tender_id__documents_get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTenderDocumentsResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenders/{tender_id}/documents/{document_id}/download":{"get":{"tags":["public-api"],"summary":"Public Tender Document Download","operationId":"public_tender_document_download_api_v1_tenders__tender_id__documents__document_id__download_get","parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"integer","title":"Tender Id"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"integer","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/health":{"get":{"summary":"Health Check","operationId":"health_check_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ApiCompatibility":{"properties":{"current":{"type":"string","title":"Current"},"deprecated":{"items":{"type":"string"},"type":"array","title":"Deprecated"},"notes":{"type":"string","title":"Notes"}},"additionalProperties":false,"type":"object","required":["current","deprecated","notes"],"title":"ApiCompatibility"},"ApiCustomer":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"inn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inn"}},"additionalProperties":false,"type":"object","title":"ApiCustomer"},"ApiErrorResponse":{"properties":{"detail":{"anyOf":[{"type":"string"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}],"title":"Detail"}},"additionalProperties":false,"type":"object","required":["detail"],"title":"ApiErrorResponse"},"ApiHealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"service":{"type":"string","title":"Service"},"version":{"type":"string","title":"Version"},"schema_version":{"type":"string","title":"Schema Version"},"timezone":{"type":"string","title":"Timezone"},"timezone_label":{"type":"string","title":"Timezone Label"},"time":{"type":"string","title":"Time"},"links":{"$ref":"#/components/schemas/ApiLinks"}},"additionalProperties":false,"type":"object","required":["status","service","version","schema_version","timezone","timezone_label","time","links"],"title":"ApiHealthResponse"},"ApiLinks":{"properties":{"base":{"type":"string","title":"Base"},"health":{"type":"string","title":"Health"},"tenders":{"type":"string","title":"Tenders"},"openapi":{"type":"string","title":"Openapi"},"swagger":{"type":"string","title":"Swagger"},"aggregator_docs":{"type":"string","title":"Aggregator Docs"}},"additionalProperties":false,"type":"object","required":["base","health","tenders","openapi","swagger","aggregator_docs"],"title":"ApiLinks"},"ApiListLinks":{"properties":{"base":{"type":"string","title":"Base"},"health":{"type":"string","title":"Health"},"tenders":{"type":"string","title":"Tenders"},"openapi":{"type":"string","title":"Openapi"},"swagger":{"type":"string","title":"Swagger"},"aggregator_docs":{"type":"string","title":"Aggregator Docs"},"self":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Self"}},"additionalProperties":false,"type":"object","required":["base","health","tenders","openapi","swagger","aggregator_docs"],"title":"ApiListLinks"},"ApiMeta":{"properties":{"api_version":{"type":"string","title":"Api Version"},"schema_version":{"type":"string","title":"Schema Version"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total":{"type":"integer","title":"Total"},"total_pages":{"type":"integer","title":"Total Pages"}},"additionalProperties":false,"type":"object","required":["api_version","schema_version","page","page_size","total","total_pages"],"title":"ApiMeta"},"ApiTenderDetail":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"status":{"type":"string","title":"Status"},"stage_code":{"type":"string","title":"Stage Code"},"stage_label":{"type":"string","title":"Stage Label"},"result_status":{"type":"string","title":"Result Status"},"type":{"type":"string","title":"Type"},"procedure_type":{"type":"string","title":"Procedure Type"},"customer":{"$ref":"#/components/schemas/ApiCustomer"},"start_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Price"},"currency":{"type":"string","title":"Currency"},"timezone":{"type":"string","title":"Timezone"},"timezone_label":{"type":"string","title":"Timezone Label"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"submission_deadline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submission Deadline"},"result_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Date"},"portal_url":{"type":"string","title":"Portal Url"},"api_url":{"type":"string","title":"Api Url"},"documents_url":{"type":"string","title":"Documents Url"},"documents_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Documents Count"},"items":{"items":{"$ref":"#/components/schemas/ApiTenderItem"},"type":"array","title":"Items"},"documents":{"items":{"$ref":"#/components/schemas/ApiTenderDocument"},"type":"array","title":"Documents"}},"additionalProperties":false,"type":"object","required":["id","title","description","status","stage_code","stage_label","result_status","type","procedure_type","customer","currency","timezone","timezone_label","portal_url","api_url","documents_url"],"title":"ApiTenderDetail"},"ApiTenderDocument":{"properties":{"id":{"type":"integer","title":"Id"},"filename":{"type":"string","title":"Filename"},"doc_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Type"},"uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uploaded At"},"size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size Bytes"},"download_url":{"type":"string","title":"Download Url"}},"additionalProperties":false,"type":"object","required":["id","filename","download_url"],"title":"ApiTenderDocument"},"ApiTenderDocumentsResponse":{"properties":{"api_version":{"type":"string","title":"Api Version"},"schema_version":{"type":"string","title":"Schema Version"},"tender_id":{"type":"integer","title":"Tender Id"},"items":{"items":{"$ref":"#/components/schemas/ApiTenderDocument"},"type":"array","title":"Items"}},"additionalProperties":false,"type":"object","required":["api_version","schema_version","tender_id","items"],"title":"ApiTenderDocumentsResponse"},"ApiTenderItem":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"position_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Position Index"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"quantity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quantity"},"base_unit_price_without_vat":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Unit Price Without Vat"},"base_vat_rate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Vat Rate"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"additionalProperties":false,"type":"object","title":"ApiTenderItem"},"ApiTenderListItem":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"status":{"type":"string","title":"Status"},"stage_code":{"type":"string","title":"Stage Code"},"stage_label":{"type":"string","title":"Stage Label"},"result_status":{"type":"string","title":"Result Status"},"type":{"type":"string","title":"Type"},"procedure_type":{"type":"string","title":"Procedure Type"},"customer":{"$ref":"#/components/schemas/ApiCustomer"},"start_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Price"},"currency":{"type":"string","title":"Currency"},"timezone":{"type":"string","title":"Timezone"},"timezone_label":{"type":"string","title":"Timezone Label"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"submission_deadline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submission Deadline"},"result_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Date"},"portal_url":{"type":"string","title":"Portal Url"},"api_url":{"type":"string","title":"Api Url"},"documents_url":{"type":"string","title":"Documents Url"},"documents_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Documents Count"}},"additionalProperties":false,"type":"object","required":["id","title","description","status","stage_code","stage_label","result_status","type","procedure_type","customer","currency","timezone","timezone_label","portal_url","api_url","documents_url"],"title":"ApiTenderListItem"},"ApiTenderListResponse":{"properties":{"meta":{"$ref":"#/components/schemas/ApiMeta"},"links":{"$ref":"#/components/schemas/ApiListLinks"},"items":{"items":{"$ref":"#/components/schemas/ApiTenderListItem"},"type":"array","title":"Items"}},"additionalProperties":false,"type":"object","required":["meta","links","items"],"title":"ApiTenderListResponse"},"ApiVersionResponse":{"properties":{"service":{"type":"string","title":"Service"},"version":{"type":"string","title":"Version"},"schema_version":{"type":"string","title":"Schema Version"},"status":{"type":"string","title":"Status"},"timezone":{"type":"string","title":"Timezone"},"timezone_label":{"type":"string","title":"Timezone Label"},"compatibility":{"$ref":"#/components/schemas/ApiCompatibility"},"links":{"$ref":"#/components/schemas/ApiLinks"}},"additionalProperties":false,"type":"object","required":["service","version","schema_version","status","timezone","timezone_label","compatibility","links"],"title":"ApiVersionResponse"},"Body_accreditation_post_cabinet_accreditation_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"company_name":{"type":"string","title":"Company Name"},"inn":{"type":"string","title":"Inn","default":""},"legal_address":{"type":"string","title":"Legal Address","default":""},"actual_address":{"type":"string","title":"Actual Address","default":""},"postal_address":{"type":"string","title":"Postal Address","default":""},"phone":{"type":"string","title":"Phone","default":""},"bank_name":{"type":"string","title":"Bank Name","default":""},"bik":{"type":"string","title":"Bik","default":""},"correspondent_account":{"type":"string","title":"Correspondent Account","default":""},"checking_account":{"type":"string","title":"Checking Account","default":""},"director_full_name":{"type":"string","title":"Director Full Name","default":""},"authority_basis":{"type":"string","title":"Authority Basis","default":""},"personal_data_consent":{"type":"string","title":"Personal Data Consent"}},"type":"object","required":["csrf_token"],"title":"Body_accreditation_post_cabinet_accreditation_post"},"Body_admin_accreditation_decide_admin_accreditation__company_id__decide_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"decision":{"type":"string","title":"Decision"},"comment":{"type":"string","title":"Comment"}},"type":"object","required":["csrf_token","decision"],"title":"Body_admin_accreditation_decide_admin_accreditation__company_id__decide_post"},"Body_admin_accreditation_update_admin_accreditation__company_id__update_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"inn":{"type":"string","title":"Inn"},"legal_address":{"type":"string","title":"Legal Address"},"actual_address":{"type":"string","title":"Actual Address"},"postal_address":{"type":"string","title":"Postal Address"},"phone":{"type":"string","title":"Phone"},"company_email":{"type":"string","title":"Company Email"},"bank_name":{"type":"string","title":"Bank Name"},"bik":{"type":"string","title":"Bik"},"correspondent_account":{"type":"string","title":"Correspondent Account"},"checking_account":{"type":"string","title":"Checking Account"},"director_full_name":{"type":"string","title":"Director Full Name"},"authority_basis":{"type":"string","title":"Authority Basis"},"accreditation_comment":{"type":"string","title":"Accreditation Comment"}},"type":"object","required":["csrf_token"],"title":"Body_admin_accreditation_update_admin_accreditation__company_id__update_post"},"Body_admin_broadcast_post_admin_messages_broadcast_post":{"properties":{"recipient_group":{"type":"string","title":"Recipient Group","default":""},"subject":{"type":"string","title":"Subject","default":""},"body":{"type":"string","title":"Body","default":""},"csrf_token":{"type":"string","title":"Csrf Token","default":""}},"type":"object","title":"Body_admin_broadcast_post_admin_messages_broadcast_post"},"Body_admin_companies_delete_admin_companies__company_id__delete_post":{"properties":{"confirm_company_name":{"type":"string","title":"Confirm Company Name","default":""},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_admin_companies_delete_admin_companies__company_id__delete_post"},"Body_admin_companies_update_admin_companies__company_id__update_post":{"properties":{"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"},"status_val":{"type":"string","title":"Status Val"},"accreditation_status":{"type":"string","title":"Accreditation Status"},"inn":{"type":"string","title":"Inn"},"company_email":{"type":"string","title":"Company Email"},"phone":{"type":"string","title":"Phone"},"legal_address":{"type":"string","title":"Legal Address"},"actual_address":{"type":"string","title":"Actual Address"},"postal_address":{"type":"string","title":"Postal Address"},"bank_name":{"type":"string","title":"Bank Name"},"bik":{"type":"string","title":"Bik"},"correspondent_account":{"type":"string","title":"Correspondent Account"},"checking_account":{"type":"string","title":"Checking Account"},"director_full_name":{"type":"string","title":"Director Full Name"},"authority_basis":{"type":"string","title":"Authority Basis"},"admin_note":{"type":"string","title":"Admin Note"},"full_edit_form":{"type":"string","title":"Full Edit Form"},"return_to":{"type":"string","title":"Return To"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["name","role","status_val","accreditation_status","csrf_token"],"title":"Body_admin_companies_update_admin_companies__company_id__update_post"},"Body_admin_company_new_post_admin_companies_new_post":{"properties":{"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"},"inn":{"type":"string","title":"Inn"},"full_name":{"type":"string","title":"Full Name"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"legal_address":{"type":"string","title":"Legal Address"},"actual_address":{"type":"string","title":"Actual Address"},"postal_address":{"type":"string","title":"Postal Address"},"phone":{"type":"string","title":"Phone"},"company_email":{"type":"string","title":"Company Email"},"bank_name":{"type":"string","title":"Bank Name"},"bik":{"type":"string","title":"Bik"},"correspondent_account":{"type":"string","title":"Correspondent Account"},"checking_account":{"type":"string","title":"Checking Account"},"director_full_name":{"type":"string","title":"Director Full Name"},"authority_basis":{"type":"string","title":"Authority Basis"},"mark_as_accredited":{"type":"boolean","title":"Mark As Accredited","default":false},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["name","role","csrf_token"],"title":"Body_admin_company_new_post_admin_companies_new_post"},"Body_admin_company_refresh_excel_admin_companies__company_id__refresh_excel_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"return_to":{"type":"string","title":"Return To"}},"type":"object","required":["csrf_token"],"title":"Body_admin_company_refresh_excel_admin_companies__company_id__refresh_excel_post"},"Body_admin_company_restore_accreditation_admin_companies__company_id__restore_accreditation_post":{"properties":{"admin_note":{"type":"string","title":"Admin Note"},"return_to":{"type":"string","title":"Return To"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_admin_company_restore_accreditation_admin_companies__company_id__restore_accreditation_post"},"Body_admin_user_delete_admin_users__user_id__delete_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token","default":""}},"type":"object","title":"Body_admin_user_delete_admin_users__user_id__delete_post"},"Body_answer_question_tenders__id__questions__qid__answer_post":{"properties":{"answer_text":{"type":"string","title":"Answer Text"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["answer_text","csrf_token"],"title":"Body_answer_question_tenders__id__questions__qid__answer_post"},"Body_backup_codes_generate_post_security_2fa_backup_codes_generate_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_backup_codes_generate_post_security_2fa_backup_codes_generate_post"},"Body_cancel_tender_trading_round_tenders__tender_id__trading_rounds__round_id__cancel_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_cancel_tender_trading_round_tenders__tender_id__trading_rounds__round_id__cancel_post"},"Body_complete_tender_trading_round_tenders__tender_id__trading_rounds__round_id__complete_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_complete_tender_trading_round_tenders__tender_id__trading_rounds__round_id__complete_post"},"Body_create_protocol_tenders__id__protocols_post":{"properties":{"title":{"type":"string","title":"Title","default":""},"type":{"type":"string","title":"Type","default":""},"date":{"type":"string","title":"Date","default":""},"number":{"type":"string","title":"Number"},"description":{"type":"string","title":"Description"},"file":{"type":"string","format":"binary","title":"File"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_create_protocol_tenders__id__protocols_post"},"Body_create_question_tenders__id__questions_post":{"properties":{"question_text":{"type":"string","title":"Question Text"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["question_text","csrf_token"],"title":"Body_create_question_tenders__id__questions_post"},"Body_create_results_protocol_draft_tenders__id__protocols_results_draft_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_create_results_protocol_draft_tenders__id__protocols_results_draft_post"},"Body_create_tender_trading_round_tenders__tender_id__trading_rounds_post":{"properties":{"kind":{"type":"string","title":"Kind","default":"rebidding"},"starts_at":{"type":"string","title":"Starts At","default":""},"ends_at":{"type":"string","title":"Ends At"},"min_step":{"type":"string","title":"Min Step","default":"1"},"price_rule":{"type":"string","title":"Price Rule","default":"decrease_only"},"visibility_mode":{"type":"string","title":"Visibility Mode","default":"sealed"},"participation_mode":{"type":"string","title":"Participation Mode","default":"submitted_offers"},"allow_multiple_bids":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allow Multiple Bids"},"auto_extend_minutes":{"type":"string","title":"Auto Extend Minutes","default":""},"notes":{"type":"string","title":"Notes","default":""},"selected_offer_ids":{"items":{"type":"integer"},"type":"array","title":"Selected Offer Ids","default":[]},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["ends_at","csrf_token"],"title":"Body_create_tender_trading_round_tenders__tender_id__trading_rounds_post"},"Body_delete_company_document_route_cabinet_accreditation_documents__doc_id__delete_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_delete_company_document_route_cabinet_accreditation_documents__doc_id__delete_post"},"Body_delete_protocol_tenders__id__protocols__pid__delete_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_delete_protocol_tenders__id__protocols__pid__delete_post"},"Body_disable_2fa_post_security_2fa_disable_post":{"properties":{"current_password":{"type":"string","title":"Current Password"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["current_password","csrf_token"],"title":"Body_disable_2fa_post_security_2fa_disable_post"},"Body_forgot_password_post_forgot_password_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"email":{"type":"string","title":"Email"}},"type":"object","required":["csrf_token","email"],"title":"Body_forgot_password_post_forgot_password_post"},"Body_hide_question_tenders__id__questions__qid__hide_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_hide_question_tenders__id__questions__qid__hide_post"},"Body_legal_accept_post_legal_accept_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_legal_accept_post_legal_accept_post"},"Body_login_2fa_post_login_2fa_post":{"properties":{"totp_code":{"type":"string","title":"Totp Code"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["totp_code","csrf_token"],"title":"Body_login_2fa_post_login_2fa_post"},"Body_login_post_login_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"captcha_code":{"type":"string","title":"Captcha Code"}},"type":"object","required":["csrf_token","email","password"],"title":"Body_login_post_login_post"},"Body_mark_all_messages_read_cabinet_messages_mark_all_read_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"folder":{"type":"string","title":"Folder","default":"notifications"}},"type":"object","required":["csrf_token"],"title":"Body_mark_all_messages_read_cabinet_messages_mark_all_read_post"},"Body_offer_edit_post_offers__offer_id__edit_post":{"properties":{"price":{"type":"string","title":"Price"},"comment":{"type":"string","title":"Comment","default":""},"files":{"items":{"type":"string","format":"binary"},"type":"array","title":"Files","default":[]},"action":{"type":"string","title":"Action","default":"submit"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_offer_edit_post_offers__offer_id__edit_post"},"Body_offer_withdraw_offers__offer_id__withdraw_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_offer_withdraw_offers__offer_id__withdraw_post"},"Body_profile_change_email_profile_email_post":{"properties":{"new_email":{"type":"string","title":"New Email"},"current_password":{"type":"string","title":"Current Password"}},"type":"object","required":["new_email","current_password"],"title":"Body_profile_change_email_profile_email_post"},"Body_profile_change_password_profile_password_post":{"properties":{"current_password":{"type":"string","title":"Current Password"},"new_password":{"type":"string","title":"New Password"},"new_password_confirm":{"type":"string","title":"New Password Confirm"}},"type":"object","required":["current_password","new_password","new_password_confirm"],"title":"Body_profile_change_password_profile_password_post"},"Body_publish_protocol_tenders__id__protocols__pid__publish_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_publish_protocol_tenders__id__protocols__pid__publish_post"},"Body_register_post_register_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"full_name":{"type":"string","title":"Full Name"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"company_name":{"type":"string","title":"Company Name"},"inn":{"type":"string","title":"Inn"},"company_role":{"type":"string","title":"Company Role"},"captcha":{"type":"string","title":"Captcha"},"personal_data_consent":{"type":"string","title":"Personal Data Consent"},"legal_terms_acceptance":{"type":"string","title":"Legal Terms Acceptance"}},"type":"object","required":["csrf_token","full_name","email","password","company_name","company_role","captcha"],"title":"Body_register_post_register_post"},"Body_resend_verification_auth_resend_verification_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"Body_resend_verification_auth_resend_verification_post"},"Body_reset_password_post_reset_password_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"},"token":{"type":"string","title":"Token"},"password":{"type":"string","title":"Password"},"password_confirm":{"type":"string","title":"Password Confirm"}},"type":"object","required":["csrf_token","token","password","password_confirm"],"title":"Body_reset_password_post_reset_password_post"},"Body_retry_notification_health_event_admin_notifications_health__event_id__retry_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_retry_notification_health_event_admin_notifications_health__event_id__retry_post"},"Body_review_error_log_entry_admin_error_logs__entry_id__review_post":{"properties":{"action":{"type":"string","title":"Action","default":"review"},"admin_note":{"type":"string","title":"Admin Note","default":""},"return_to":{"type":"string","title":"Return To","default":"/admin/error-logs"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_review_error_log_entry_admin_error_logs__entry_id__review_post"},"Body_send_admin_stats_attention_digest_admin_stats_attention_digest_send_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_send_admin_stats_attention_digest_admin_stats_attention_digest_send_post"},"Body_send_message_cabinet_messages_send_post":{"properties":{"recipient_id":{"type":"integer","title":"Recipient Id"},"subject":{"type":"string","title":"Subject"},"body":{"type":"string","title":"Body"},"csrf_token":{"type":"string","title":"Csrf Token"},"related_tender_id":{"type":"integer","title":"Related Tender Id"}},"type":"object","required":["recipient_id","subject","body","csrf_token"],"title":"Body_send_message_cabinet_messages_send_post"},"Body_setup_2fa_post_security_2fa_setup_post":{"properties":{"totp_code":{"type":"string","title":"Totp Code"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["totp_code","csrf_token"],"title":"Body_setup_2fa_post_security_2fa_setup_post"},"Body_submit_tender_trading_bid_tenders__tender_id__trading_rounds__round_id__bids_post":{"properties":{"amount":{"type":"string","title":"Amount"},"comment":{"type":"string","title":"Comment","default":""},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["amount","csrf_token"],"title":"Body_submit_tender_trading_bid_tenders__tender_id__trading_rounds__round_id__bids_post"},"Body_tender_award_no_winner_tenders__id__award_no_winner_post":{"properties":{"no_winner_reason":{"type":"string","title":"No Winner Reason","default":""},"confirm_no_winner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confirm No Winner"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_award_no_winner_tenders__id__award_no_winner_post"},"Body_tender_award_post_tenders__id__award_post":{"properties":{"selected_offer_id":{"type":"integer","title":"Selected Offer Id"},"confirm_award":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confirm Award"},"award_reason":{"type":"string","title":"Award Reason","default":""},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["selected_offer_id","csrf_token"],"title":"Body_tender_award_post_tenders__id__award_post"},"Body_tender_award_reset_tenders__id__award_reset_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_award_reset_tenders__id__award_reset_post"},"Body_tender_cancel_tenders__tender_id__cancel_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_cancel_tenders__tender_id__cancel_post"},"Body_tender_clone_tenders__tender_id__clone_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_clone_tenders__tender_id__clone_post"},"Body_tender_close_tenders__tender_id__close_post":{"properties":{"winner_offer_id":{"type":"integer","title":"Winner Offer Id"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["winner_offer_id","csrf_token"],"title":"Body_tender_close_tenders__tender_id__close_post"},"Body_tender_delete_tenders__tender_id__delete_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_delete_tenders__tender_id__delete_post"},"Body_tender_edit_post_tenders__tender_id__edit_post":{"properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description","default":""},"start_price":{"type":"string","title":"Start Price","default":""},"submission_deadline":{"type":"string","title":"Submission Deadline","default":""},"result_date":{"type":"string","title":"Result Date","default":""},"type":{"type":"string","title":"Type","default":"open"},"procedure_type":{"type":"string","title":"Procedure Type","default":"request_for_proposals"},"csrf_token":{"type":"string","title":"Csrf Token"},"files":{"items":{"type":"string","format":"binary"},"type":"array","title":"Files","default":[]},"delete_document_ids":{"items":{"type":"string"},"type":"array","title":"Delete Document Ids","default":[]}},"type":"object","required":["title","csrf_token"],"title":"Body_tender_edit_post_tenders__tender_id__edit_post"},"Body_tender_items_import_tenders_import_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["file","csrf_token"],"title":"Body_tender_items_import_tenders_import_post"},"Body_tender_items_import_tenders_items_import_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["file","csrf_token"],"title":"Body_tender_items_import_tenders_items_import_post"},"Body_tender_new_post_tenders_new_post":{"properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description","default":""},"start_price":{"type":"string","title":"Start Price","default":""},"submission_deadline":{"type":"string","title":"Submission Deadline","default":""},"result_date":{"type":"string","title":"Result Date","default":""},"type":{"type":"string","title":"Type","default":"open"},"procedure_type":{"type":"string","title":"Procedure Type","default":"request_for_proposals"},"files":{"items":{"type":"string","format":"binary"},"type":"array","title":"Files","default":[]},"customer_company_id":{"type":"integer","title":"Customer Company Id"},"action":{"type":"string","title":"Action","default":"publish"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["title","csrf_token"],"title":"Body_tender_new_post_tenders_new_post"},"Body_tender_offer_post_tenders__tender_id__offers_post":{"properties":{"price":{"type":"string","title":"Price"},"comment":{"type":"string","title":"Comment","default":""},"files":{"items":{"type":"string","format":"binary"},"type":"array","title":"Files","default":[]},"supplier_company_id":{"type":"integer","title":"Supplier Company Id"},"action":{"type":"string","title":"Action","default":"submit"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_offer_post_tenders__tender_id__offers_post"},"Body_tender_publish_tenders__tender_id__publish_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_publish_tenders__tender_id__publish_post"},"Body_tender_reopen_tenders__id__reopen_post":{"properties":{"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["csrf_token"],"title":"Body_tender_reopen_tenders__id__reopen_post"},"Body_upload_company_document_cabinet_accreditation_documents_upload_post":{"properties":{"doc_type":{"type":"string","title":"Doc Type"},"document":{"type":"string","format":"binary","title":"Document"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["doc_type","document","csrf_token"],"title":"Body_upload_company_document_cabinet_accreditation_documents_upload_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}}}