{ "openapi": "3.1.0", "info": { "title": "FastAPI", "version": "0.1.0" }, "paths": { "/auth/login": { "post": { "tags": [ "auth" ], "summary": "Login", "operationId": "login_auth_login_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthLoginRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthLoginResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/deal/create": { "post": { "tags": [ "deal" ], "summary": "Create", "operationId": "create_deal_create_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/deal/quickCreate": { "post": { "tags": [ "deal" ], "summary": "Quick Create", "operationId": "quick_create_deal_quickCreate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealQuickCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealQuickCreateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/deal/changeStatus": { "post": { "tags": [ "deal" ], "summary": "Change Status", "operationId": "change_status_deal_changeStatus_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealChangeStatusRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealChangeStatusResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/deal/summaries": { "get": { "tags": [ "deal" ], "summary": "Get Summary", "operationId": "getDealSummaries", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealSummaryResponse" } } } } } } }, "/deal/services/add": { "post": { "tags": [ "deal" ], "summary": "Services Add", "operationId": "services_add_deal_services_add_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealAddServicesRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DealAddServicesResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/client/search": { "get": { "tags": [ "client" ], "summary": "Search Clients", "operationId": "search_clients", "parameters": [ { "name": "name", "in": "query", "required": true, "schema": { "type": "string", "title": "Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/client/update-details": { "post": { "tags": [ "client" ], "summary": "Update Client Details", "operationId": "update_client_details_client_update_details_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientUpdateDetailsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/client/get-all": { "get": { "tags": [ "client" ], "summary": "Get All Clients", "operationId": "get_all_clients", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientGetAllResponse" } } } } } } }, "/service/get-all": { "get": { "tags": [ "service" ], "summary": "Get All", "operationId": "get_all_services", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceGetAllResponse" } } } } } } }, "/service/create": { "post": { "tags": [ "service" ], "summary": "Create", "operationId": "create_service", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceCreateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/service/categories/get-all": { "get": { "tags": [ "service" ], "summary": "Get All Categories", "operationId": "get_all_service_categories", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceGetAllCategoriesResponse" } } } } } } }, "/service/categories/create": { "post": { "tags": [ "service" ], "summary": "Create Category", "operationId": "create_service_category", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceCreateCategoryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceCreateCategoryResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/product/create": { "post": { "tags": [ "product" ], "summary": "Create Product", "operationId": "create_product", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductCreateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/product/get": { "get": { "tags": [ "product" ], "summary": "Get Product", "operationId": "get_products_by_client_id", "parameters": [ { "name": "client_id", "in": "query", "required": true, "schema": { "type": "integer", "title": "Client Id" } }, { "name": "page", "in": "query", "required": true, "schema": { "type": "integer", "title": "Page" } }, { "name": "items_per_page", "in": "query", "required": true, "schema": { "type": "integer", "title": "Items Per Page" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductGetResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } } }, "components": { "schemas": { "AuthLoginRequest": { "properties": { "auth_date": { "type": "integer", "title": "Auth Date" }, "first_name": { "type": "string", "title": "First Name" }, "hash": { "type": "string", "title": "Hash" }, "id": { "type": "integer", "title": "Id" }, "photo_url": { "type": "string", "title": "Photo Url" } }, "type": "object", "required": [ "auth_date", "first_name", "hash", "id", "photo_url" ], "title": "AuthLoginRequest" }, "AuthLoginResponse": { "properties": { "access_token": { "type": "string", "title": "Access Token" } }, "type": "object", "required": [ "access_token" ], "title": "AuthLoginResponse" }, "ClientDetailsSchema": { "properties": { "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone Number" }, "inn": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Inn" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" } }, "type": "object", "title": "ClientDetailsSchema" }, "ClientGetAllResponse": { "properties": { "clients": { "items": { "$ref": "#/components/schemas/ClientSchema" }, "type": "array", "title": "Clients" } }, "type": "object", "required": [ "clients" ], "title": "ClientGetAllResponse" }, "ClientSchema": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "details": { "anyOf": [ { "$ref": "#/components/schemas/ClientDetailsSchema" }, { "type": "null" } ] } }, "type": "object", "required": [ "id", "name" ], "title": "ClientSchema" }, "ClientUpdateDetailsRequest": { "properties": { "client_id": { "type": "integer", "title": "Client Id" }, "details": { "$ref": "#/components/schemas/ClientDetailsSchema" } }, "type": "object", "required": [ "client_id", "details" ], "title": "ClientUpdateDetailsRequest" }, "DealAddServicesRequest": { "properties": { "deal_id": { "type": "integer", "title": "Deal Id" }, "services": { "items": { "$ref": "#/components/schemas/DealServiceSchema" }, "type": "array", "title": "Services" } }, "type": "object", "required": [ "deal_id", "services" ], "title": "DealAddServicesRequest" }, "DealAddServicesResponse": { "properties": { "ok": { "type": "boolean", "title": "Ok" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "ok", "message" ], "title": "DealAddServicesResponse" }, "DealChangeStatusRequest": { "properties": { "deal_id": { "type": "integer", "title": "Deal Id" }, "new_status": { "type": "integer", "title": "New Status" } }, "type": "object", "required": [ "deal_id", "new_status" ], "title": "DealChangeStatusRequest" }, "DealChangeStatusResponse": { "properties": { "ok": { "type": "boolean", "title": "Ok" } }, "type": "object", "required": [ "ok" ], "title": "DealChangeStatusResponse" }, "DealCreateRequest": { "properties": { "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "name" ], "title": "DealCreateRequest" }, "DealQuickCreateRequest": { "properties": { "name": { "type": "string", "title": "Name" }, "client_name": { "type": "string", "title": "Client Name" }, "client_address": { "type": "string", "title": "Client Address" }, "comment": { "type": "string", "title": "Comment" }, "acceptance_date": { "type": "string", "format": "date-time", "title": "Acceptance Date" } }, "type": "object", "required": [ "name", "client_name", "client_address", "comment", "acceptance_date" ], "title": "DealQuickCreateRequest" }, "DealQuickCreateResponse": { "properties": { "deal_id": { "type": "integer", "title": "Deal Id" } }, "type": "object", "required": [ "deal_id" ], "title": "DealQuickCreateResponse" }, "DealServiceSchema": { "properties": { "id": { "type": "integer", "title": "Id" }, "quantity": { "type": "integer", "title": "Quantity" } }, "type": "object", "required": [ "id", "quantity" ], "title": "DealServiceSchema" }, "DealSummary": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "client_name": { "type": "string", "title": "Client Name" }, "changed_at": { "type": "string", "format": "date-time", "title": "Changed At" }, "status": { "type": "integer", "title": "Status" }, "total_price": { "type": "integer", "title": "Total Price" } }, "type": "object", "required": [ "id", "name", "client_name", "changed_at", "status", "total_price" ], "title": "DealSummary" }, "DealSummaryResponse": { "properties": { "summaries": { "items": { "$ref": "#/components/schemas/DealSummary" }, "type": "array", "title": "Summaries" } }, "type": "object", "required": [ "summaries" ], "title": "DealSummaryResponse" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "PaginationInfoSchema": { "properties": { "total_pages": { "type": "integer", "title": "Total Pages" }, "total_items": { "type": "integer", "title": "Total Items" } }, "type": "object", "required": [ "total_pages", "total_items" ], "title": "PaginationInfoSchema" }, "ProductCreateRequest": { "properties": { "name": { "type": "string", "title": "Name" }, "article": { "type": "string", "title": "Article" }, "client_id": { "type": "integer", "title": "Client Id" }, "barcodes": { "items": { "type": "string" }, "type": "array", "title": "Barcodes" } }, "type": "object", "required": [ "name", "article", "client_id", "barcodes" ], "title": "ProductCreateRequest" }, "ProductCreateResponse": { "properties": { "product_id": { "type": "integer", "title": "Product Id" } }, "type": "object", "required": [ "product_id" ], "title": "ProductCreateResponse" }, "ProductGetResponse": { "properties": { "products": { "items": { "$ref": "#/components/schemas/ProductSchema" }, "type": "array", "title": "Products" }, "pagination_info": { "$ref": "#/components/schemas/PaginationInfoSchema" } }, "type": "object", "required": [ "products", "pagination_info" ], "title": "ProductGetResponse" }, "ProductSchema": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "article": { "type": "string", "title": "Article" }, "client_id": { "type": "integer", "title": "Client Id" } }, "type": "object", "required": [ "id", "name", "article", "client_id" ], "title": "ProductSchema" }, "ServiceCategorySchema": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "id", "name" ], "title": "ServiceCategorySchema" }, "ServiceCreateCategoryRequest": { "properties": { "category": { "$ref": "#/components/schemas/ServiceCategorySchema" } }, "type": "object", "required": [ "category" ], "title": "ServiceCreateCategoryRequest" }, "ServiceCreateCategoryResponse": { "properties": { "ok": { "type": "boolean", "title": "Ok" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "ok", "message" ], "title": "ServiceCreateCategoryResponse" }, "ServiceCreateRequest": { "properties": { "service": { "$ref": "#/components/schemas/ServiceSchema" } }, "type": "object", "required": [ "service" ], "title": "ServiceCreateRequest" }, "ServiceCreateResponse": { "properties": { "ok": { "type": "boolean", "title": "Ok" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "ok", "message" ], "title": "ServiceCreateResponse" }, "ServiceGetAllCategoriesResponse": { "properties": { "categories": { "items": { "$ref": "#/components/schemas/ServiceCategorySchema" }, "type": "array", "title": "Categories" } }, "type": "object", "required": [ "categories" ], "title": "ServiceGetAllCategoriesResponse" }, "ServiceGetAllResponse": { "properties": { "services": { "items": { "$ref": "#/components/schemas/ServiceSchema" }, "type": "array", "title": "Services" } }, "type": "object", "required": [ "services" ], "title": "ServiceGetAllResponse" }, "ServiceSchema": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "category": { "$ref": "#/components/schemas/ServiceCategorySchema" }, "price": { "type": "number", "title": "Price" } }, "type": "object", "required": [ "id", "name", "category", "price" ], "title": "ServiceSchema" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" } }, "securitySchemes": { "HTTPBearer": { "type": "http", "scheme": "bearer" } } } }