{ "openapi": "3.1.0", "info": { "title": "FastAPI", "version": "0.1.65" }, "paths": { "/api/users/me": { "get": { "tags": ["API", "Users"], "summary": "Get Current User Profile", "description": "Returns the current user profile", "operationId": "API-get_current_user_profile", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/User" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/users/search": { "post": { "tags": ["API", "Users"], "summary": "Search Users", "description": "Returns filtered list of users", "operationId": "API-search_users", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "responses", "in": "query", "required": false, "schema": { "default": { "409": { "description": "Selected service not found" } }, "title": "Responses" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserSearchIn" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsersSearchOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/users/{user_uuid}": { "get": { "tags": ["API", "Users"], "summary": "Get User Profile", "description": "Returns the user profile", "operationId": "API-get_user_profile", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "user_uuid", "in": "path", "required": true, "schema": { "type": "string", "title": "User Uuid" } }, { "name": "lang", "in": "query", "required": false, "schema": { "enum": ["ua", "en"], "type": "string", "default": "ua", "title": "Lang" } }, { "name": "responses", "in": "query", "required": false, "schema": { "default": { "404": { "description": "User not found" } }, "title": "Responses" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfileOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/users/search-public": { "post": { "tags": ["API", "Users"], "summary": "Public Search Users", "description": "Returns filtered list of users", "operationId": "API-public_search_users", "parameters": [ { "name": "responses", "in": "query", "required": false, "schema": { "default": { "409": { "description": "Selected service not found" } }, "title": "Responses" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserSearchIn" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicUsersSearchOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/users/public/{user_uuid}": { "get": { "tags": ["API", "Users"], "summary": "Get Public User Profile", "description": "Returns the user profile for public view", "operationId": "API-get_public_user_profile", "parameters": [ { "name": "user_uuid", "in": "path", "required": true, "schema": { "type": "string", "title": "User Uuid" } }, { "name": "lang", "in": "query", "required": false, "schema": { "enum": ["ua", "en"], "type": "string", "default": "ua", "title": "Lang" } }, { "name": "responses", "in": "query", "required": false, "schema": { "default": { "404": { "description": "User not found" } }, "title": "Responses" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicUserProfileOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/auth/login": { "post": { "tags": ["API", "Auth"], "summary": "Login", "description": "Logs in a user", "operationId": "API-login", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_API-login" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/auth/token": { "post": { "tags": ["API", "Auth"], "summary": "Get Token", "description": "Logs in a user", "operationId": "API-get_token", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Auth" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/auth/google": { "post": { "tags": ["API", "Auth"], "summary": "Google Auth", "description": "Logs in a user with Google", "operationId": "API-google_auth", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GoogleAuth" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/auth/apple": { "post": { "tags": ["API", "Auth"], "summary": "Apple Auth", "description": "Logs in a user with Apple", "operationId": "API-apple_auth", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AppleAuth" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/registration/": { "post": { "tags": ["API", "Registration"], "summary": "Register User", "description": "Logs in a user", "operationId": "API-register_user", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistrationIn" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } }, "406": { "description": "This phone is already registered" }, "409": { "description": "This email is already registered" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/registration/set-phone": { "post": { "tags": ["API", "Registration"], "summary": "Set Phone", "description": "Sets phone for a user", "operationId": "API-set_phone", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPhoneIn" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPhoneOut" } } } }, "409": { "description": "This phone is already registered" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/registration/validate-phone": { "post": { "tags": ["API", "Registration"], "summary": "Validate Phone", "description": "Sets phone for a user", "operationId": "API-validate_phone", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidatePhoneIn" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "409": { "description": "Phone validation failed" }, "403": { "description": "User phone is validated already" }, "406": { "description": "User phone not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/registration/set-otp": { "get": { "tags": ["API", "Registration"], "summary": "Set Otp", "description": "Sets phone for a user", "operationId": "API-set_otp", "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "User phone is already validated" }, "406": { "description": "User phone not found" } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/jobs/{job_id}": { "get": { "tags": ["API", "jobs"], "summary": "Get Job", "operationId": "API-get_job", "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Job Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": ["API", "jobs"], "summary": "Put Job", "operationId": "API-put_job", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Job Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobPut" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/jobs/": { "get": { "tags": ["API", "jobs"], "summary": "Get Jobs", "operationId": "API-get_jobs", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobOutList" } } } } } }, "post": { "tags": ["API", "jobs"], "summary": "Create Job", "operationId": "API-create_job", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobIn" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/jobs/search": { "post": { "tags": ["API", "jobs"], "summary": "Search Jobs", "description": "Returns filtered list of jobs", "operationId": "API-search_jobs", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "responses", "in": "query", "required": false, "schema": { "default": { "409": { "description": "Selected service not found" } }, "title": "Responses" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobSearchIn" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobsSearchOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/jobs/home": { "post": { "tags": ["API", "jobs"], "summary": "Get Jobs On Home Page", "description": "Returns jobs for home page", "operationId": "API-get_jobs_on_home_page", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobHomePage" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobsCardList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/whoami/user": { "get": { "tags": ["API", "Whoami"], "summary": "Whoami", "operationId": "API-whoami", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "app_version", "in": "query", "required": false, "schema": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "App Version" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WhoAmI" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/applications/{application_id}": { "get": { "tags": ["API", "applications"], "summary": "Get Application", "operationId": "API-get_application", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "application_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Application Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": ["API", "applications"], "summary": "Update Application", "operationId": "API-update_application", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "application_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Application Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationPut" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/applications/": { "get": { "tags": ["API", "applications"], "summary": "Get Applications", "operationId": "API-get_applications", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationOutList" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] }, "post": { "tags": ["API", "applications"], "summary": "Create Application", "operationId": "API-create_application", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationIn" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/locations": { "post": { "tags": ["API", "Location"], "summary": "Get Locations", "operationId": "API-get_locations", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LocationsIn" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LocationsOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/services": { "post": { "tags": ["API", "service"], "summary": "Get Services", "operationId": "API-get_services", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicesIn" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicesOut" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/list-endpoints/": { "get": { "tags": ["API"], "summary": "List Endpoints", "operationId": "API-list_endpoints", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/": { "get": { "tags": ["root"], "summary": "Root", "operationId": "root-root", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } } }, "components": { "schemas": { "AppleAuth": { "properties": { "uid": { "type": "string", "title": "Uid" }, "email": { "type": "string", "title": "Email" }, "first_name": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "First Name" }, "last_name": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Last Name" }, "display_name": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Display Name" } }, "type": "object", "required": ["uid", "email", "first_name", "last_name", "display_name"], "title": "AppleAuth" }, "ApplicationIn": { "properties": { "type": { "$ref": "#/components/schemas/ApplicationType" }, "job_id": { "type": "integer", "title": "Job Id" }, "worker_id": { "type": "integer", "title": "Worker Id" } }, "type": "object", "required": ["type", "job_id", "worker_id"], "title": "ApplicationIn" }, "ApplicationOut": { "properties": { "id": { "type": "integer", "title": "Id" }, "uuid": { "type": "string", "title": "Uuid" }, "worker_id": { "type": "integer", "title": "Worker Id" }, "job_id": { "type": "integer", "title": "Job Id" }, "type": { "$ref": "#/components/schemas/ApplicationType" }, "status": { "$ref": "#/components/schemas/ApplicationStatus" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "is_deleted": { "type": "boolean", "title": "Is Deleted" } }, "type": "object", "required": [ "id", "uuid", "worker_id", "job_id", "type", "status", "created_at", "is_deleted" ], "title": "ApplicationOut" }, "ApplicationOutList": { "properties": { "data": { "items": { "$ref": "#/components/schemas/ApplicationOut" }, "type": "array", "title": "Data" } }, "type": "object", "required": ["data"], "title": "ApplicationOutList" }, "ApplicationPut": { "properties": { "status": { "anyOf": [ { "$ref": "#/components/schemas/ApplicationStatus" }, { "type": "null" } ] } }, "type": "object", "title": "ApplicationPut" }, "ApplicationStatus": { "type": "string", "enum": ["pending", "accepted", "rejected"], "title": "ApplicationStatus" }, "ApplicationType": { "type": "string", "enum": ["invite", "apply"], "title": "ApplicationType" }, "Auth": { "properties": { "phone": { "type": "string", "title": "Phone" }, "password": { "type": "string", "title": "Password" } }, "type": "object", "required": ["phone", "password"], "title": "Auth" }, "Body_API-login": { "properties": { "grant_type": { "anyOf": [ { "type": "string", "pattern": "password" }, { "type": "null" } ], "title": "Grant Type" }, "username": { "type": "string", "title": "Username" }, "password": { "type": "string", "title": "Password" }, "scope": { "type": "string", "title": "Scope", "default": "" }, "client_id": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Client Id" }, "client_secret": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Client Secret" } }, "type": "object", "required": ["username", "password"], "title": "Body_API-login" }, "GoogleAuth": { "properties": { "uid": { "type": "string", "title": "Uid" }, "email": { "type": "string", "title": "Email" }, "first_name": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "First Name" }, "last_name": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Last Name" } }, "type": "object", "required": ["uid", "email", "first_name", "last_name"], "title": "GoogleAuth" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "JobCard": { "properties": { "id": { "type": "integer", "title": "Id" }, "uuid": { "type": "string", "title": "Uuid" }, "title": { "type": "string", "title": "Title" }, "description": { "type": "string", "title": "Description" }, "location": { "$ref": "#/components/schemas/LocationStrings" }, "cost": { "type": "integer", "title": "Cost" }, "is_saved": { "type": "boolean", "title": "Is Saved" } }, "type": "object", "required": [ "id", "uuid", "title", "description", "location", "cost", "is_saved" ], "title": "JobCard" }, "JobHomePage": { "properties": { "lang": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Lang", "default": "ua" }, "location_uuid": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Location Uuid" } }, "type": "object", "title": "JobHomePage" }, "JobIn": { "properties": { "title": { "type": "string", "title": "Title" }, "description": { "type": "string", "title": "Description" }, "address_id": { "type": "integer", "title": "Address Id" }, "location_id": { "type": "integer", "title": "Location Id" }, "time": { "type": "string", "title": "Time" }, "is_public": { "type": "boolean", "title": "Is Public" } }, "type": "object", "required": [ "title", "description", "address_id", "location_id", "time", "is_public" ], "title": "JobIn" }, "JobOut": { "properties": { "id": { "type": "integer", "title": "Id" }, "uuid": { "type": "string", "title": "Uuid" }, "title": { "type": "string", "title": "Title" }, "address_id": { "type": "integer", "title": "Address Id" }, "location_id": { "type": "integer", "title": "Location Id" }, "owner_id": { "type": "integer", "title": "Owner Id" }, "worker_id": { "anyOf": [{ "type": "integer" }, { "type": "null" }], "title": "Worker Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "is_deleted": { "type": "boolean", "title": "Is Deleted", "default": false }, "description": { "type": "string", "title": "Description", "default": "" }, "time": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Time" }, "status": { "$ref": "#/components/schemas/JobStatus" }, "is_public": { "type": "boolean", "title": "Is Public" } }, "type": "object", "required": [ "id", "uuid", "title", "address_id", "location_id", "owner_id", "created_at", "updated_at", "status", "is_public" ], "title": "JobOut" }, "JobOutList": { "properties": { "jobs": { "items": { "$ref": "#/components/schemas/JobOut" }, "type": "array", "title": "Jobs" } }, "type": "object", "required": ["jobs"], "title": "JobOutList" }, "JobPut": { "properties": { "title": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Title" }, "description": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Description" }, "address_id": { "anyOf": [{ "type": "integer" }, { "type": "null" }], "title": "Address Id" }, "location_id": { "anyOf": [{ "type": "integer" }, { "type": "null" }], "title": "Location Id" }, "time": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Time" }, "is_public": { "anyOf": [{ "type": "boolean" }, { "type": "null" }], "title": "Is Public" } }, "type": "object", "title": "JobPut" }, "JobSearch": { "properties": { "id": { "type": "integer", "title": "Id" }, "uuid": { "type": "string", "title": "Uuid" }, "title": { "type": "string", "title": "Title" }, "description": { "type": "string", "title": "Description" }, "location": { "$ref": "#/components/schemas/LocationStrings" }, "cost": { "type": "integer", "title": "Cost" }, "is_saved": { "type": "boolean", "title": "Is Saved" } }, "type": "object", "required": [ "id", "uuid", "title", "description", "location", "cost", "is_saved" ], "title": "JobSearch" }, "JobSearchIn": { "properties": { "lang": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Lang", "default": "ua" }, "query": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Query", "default": "" }, "selected_services": { "items": { "type": "string" }, "type": "array", "title": "Selected Services", "default": [] }, "selected_locations": { "items": { "type": "string" }, "type": "array", "title": "Selected Locations", "default": [] } }, "type": "object", "title": "JobSearchIn" }, "JobStatus": { "type": "string", "enum": ["pending", "in_progress", "completed"], "title": "JobStatus" }, "JobsCardList": { "properties": { "lang": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Lang", "default": "ua" }, "location_uuid": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Location Uuid" }, "recommended_jobs": { "items": { "$ref": "#/components/schemas/JobCard" }, "type": "array", "title": "Recommended Jobs", "default": [] }, "jobs_near_you": { "items": { "$ref": "#/components/schemas/JobCard" }, "type": "array", "title": "Jobs Near You", "default": [] } }, "type": "object", "title": "JobsCardList" }, "JobsSearchOut": { "properties": { "lang": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Lang", "default": "ua" }, "query": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Query", "default": "" }, "jobs": { "items": { "$ref": "#/components/schemas/JobSearch" }, "type": "array", "title": "Jobs", "default": [] } }, "type": "object", "title": "JobsSearchOut" }, "Location": { "properties": { "uuid": { "type": "string", "title": "Uuid" }, "name": { "type": "string", "title": "Name" }, "svg": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Svg" } }, "type": "object", "required": ["uuid", "name"], "title": "Location" }, "LocationStrings": { "properties": { "uuid": { "type": "string", "title": "Uuid" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["uuid", "name"], "title": "LocationStrings" }, "LocationsIn": { "properties": { "lang": { "type": "string", "title": "Lang" }, "selected": { "items": { "type": "string" }, "type": "array", "title": "Selected" } }, "type": "object", "required": ["lang", "selected"], "title": "LocationsIn" }, "LocationsOut": { "properties": { "lang": { "type": "string", "title": "Lang" }, "locations": { "items": { "$ref": "#/components/schemas/Location" }, "type": "array", "title": "Locations" }, "selected": { "items": { "type": "string" }, "type": "array", "title": "Selected" } }, "type": "object", "required": ["lang", "locations", "selected"], "title": "LocationsOut" }, "PublicUserProfileOut": { "properties": { "id": { "type": "integer", "title": "Id" }, "uuid": { "type": "string", "title": "Uuid" }, "fullname": { "type": "string", "title": "Fullname" }, "owned_rates_count": { "type": "integer", "title": "Owned Rates Count" }, "average_rate": { "type": "number", "title": "Average Rate" }, "services": { "items": { "$ref": "#/components/schemas/Service" }, "type": "array", "title": "Services" }, "locations": { "items": { "$ref": "#/components/schemas/LocationStrings" }, "type": "array", "title": "Locations" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "id", "uuid", "fullname", "owned_rates_count", "average_rate", "services", "locations", "created_at" ], "title": "PublicUserProfileOut" }, "PublicUsersSearchOut": { "properties": { "lang": { "type": "string", "title": "Lang", "default": "ua" }, "locations": { "items": { "$ref": "#/components/schemas/LocationStrings" }, "type": "array", "title": "Locations", "default": [] }, "selected_locations": { "items": { "type": "string" }, "type": "array", "title": "Selected Locations", "default": [] }, "top_users": { "items": { "$ref": "#/components/schemas/UserSearchOut" }, "type": "array", "title": "Top Users", "default": [] }, "query": { "type": "string", "title": "Query", "default": "" } }, "type": "object", "title": "PublicUsersSearchOut" }, "RegistrationIn": { "properties": { "email": { "type": "string", "format": "email", "title": "Email" }, "password": { "type": "string", "title": "Password" }, "fullname": { "type": "string", "title": "Fullname" }, "phone": { "type": "string", "title": "Phone" }, "services": { "items": { "type": "string" }, "type": "array", "title": "Services", "default": [] }, "locations": { "items": { "type": "string" }, "type": "array", "title": "Locations", "default": [] }, "is_volunteer": { "type": "boolean", "title": "Is Volunteer", "default": false } }, "type": "object", "required": ["email", "password", "fullname", "phone"], "title": "RegistrationIn" }, "Service": { "properties": { "uuid": { "type": "string", "title": "Uuid" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": ["uuid", "name"], "title": "Service" }, "ServicesIn": { "properties": { "lang": { "type": "string", "title": "Lang", "default": "ua" }, "selected": { "items": { "type": "string" }, "type": "array", "title": "Selected", "default": [] } }, "type": "object", "title": "ServicesIn" }, "ServicesOut": { "properties": { "lang": { "type": "string", "title": "Lang" }, "services": { "items": { "$ref": "#/components/schemas/Service" }, "type": "array", "title": "Services" }, "selected": { "items": { "type": "string" }, "type": "array", "title": "Selected" } }, "type": "object", "required": ["lang", "services", "selected"], "title": "ServicesOut" }, "SetPhoneIn": { "properties": { "phone": { "type": "string", "title": "Phone" } }, "type": "object", "required": ["phone"], "title": "SetPhoneIn" }, "SetPhoneOut": { "properties": { "phone": { "type": "string", "title": "Phone" } }, "type": "object", "required": ["phone"], "title": "SetPhoneOut" }, "Token": { "properties": { "access_token": { "type": "string", "title": "Access Token" }, "token_type": { "type": "string", "title": "Token Type", "default": "bearer" } }, "type": "object", "required": ["access_token"], "title": "Token" }, "User": { "properties": { "id": { "type": "integer", "title": "Id" }, "fullname": { "type": "string", "title": "Fullname" }, "phone": { "type": "string", "title": "Phone" }, "email": { "type": "string", "title": "Email" }, "is_deleted": { "type": "boolean", "title": "Is Deleted" } }, "type": "object", "required": ["id", "fullname", "phone", "email", "is_deleted"], "title": "User" }, "UserProfileOut": { "properties": { "id": { "type": "integer", "title": "Id" }, "uuid": { "type": "string", "title": "Uuid" }, "fullname": { "type": "string", "title": "Fullname" }, "phone": { "type": "string", "title": "Phone" }, "email": { "type": "string", "title": "Email" }, "is_deleted": { "type": "boolean", "title": "Is Deleted" }, "owned_rates_count": { "type": "integer", "title": "Owned Rates Count" }, "average_rate": { "type": "number", "title": "Average Rate" }, "services": { "items": { "$ref": "#/components/schemas/Service" }, "type": "array", "title": "Services" }, "locations": { "items": { "$ref": "#/components/schemas/LocationStrings" }, "type": "array", "title": "Locations" } }, "type": "object", "required": [ "id", "uuid", "fullname", "phone", "email", "is_deleted", "owned_rates_count", "average_rate", "services", "locations" ], "title": "UserProfileOut" }, "UserSearchIn": { "properties": { "lang": { "type": "string", "title": "Lang", "default": "ua" }, "selected_locations": { "items": { "type": "string" }, "type": "array", "title": "Selected Locations", "default": [] }, "query": { "type": "string", "title": "Query", "default": "" } }, "type": "object", "title": "UserSearchIn" }, "UserSearchOut": { "properties": { "id": { "type": "integer", "title": "Id" }, "uuid": { "type": "string", "title": "Uuid" }, "fullname": { "type": "string", "title": "Fullname" }, "owned_rates_count": { "type": "integer", "title": "Owned Rates Count" }, "average_rate": { "type": "number", "title": "Average Rate" }, "services": { "items": { "$ref": "#/components/schemas/Service" }, "type": "array", "title": "Services" }, "locations": { "items": { "$ref": "#/components/schemas/LocationStrings" }, "type": "array", "title": "Locations" } }, "type": "object", "required": [ "id", "uuid", "fullname", "owned_rates_count", "average_rate", "services", "locations" ], "title": "UserSearchOut" }, "UsersSearchOut": { "properties": { "lang": { "type": "string", "title": "Lang", "default": "ua" }, "user_locations": { "items": { "$ref": "#/components/schemas/LocationStrings" }, "type": "array", "title": "User Locations", "default": [] }, "locations": { "items": { "$ref": "#/components/schemas/LocationStrings" }, "type": "array", "title": "Locations", "default": [] }, "selected_locations": { "items": { "type": "string" }, "type": "array", "title": "Selected Locations", "default": [] }, "top_users": { "items": { "$ref": "#/components/schemas/UserSearchOut" }, "type": "array", "title": "Top Users", "default": [] }, "near_users": { "items": { "$ref": "#/components/schemas/UserSearchOut" }, "type": "array", "title": "Near Users", "default": [] }, "query": { "type": "string", "title": "Query", "default": "" } }, "type": "object", "title": "UsersSearchOut" }, "ValidatePhoneIn": { "properties": { "code": { "type": "string", "title": "Code" } }, "type": "object", "required": ["code"], "title": "ValidatePhoneIn" }, "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" }, "WhoAmI": { "properties": { "uuid": { "type": "string", "title": "Uuid" }, "is_auth_by_google": { "type": "boolean", "title": "Is Auth By Google" }, "is_auth_by_apple": { "type": "boolean", "title": "Is Auth By Apple" }, "phone_verified": { "type": "boolean", "title": "Phone Verified" } }, "type": "object", "required": [ "uuid", "is_auth_by_google", "is_auth_by_apple", "phone_verified" ], "title": "WhoAmI" } }, "securitySchemes": { "OAuth2PasswordBearer": { "type": "oauth2", "flows": { "password": { "scopes": {}, "tokenUrl": "/api/auth/login" } } } } } }