1 line
29 KiB
JSON
1 line
29 KiB
JSON
{"openapi": "3.1.0", "info": {"title": "DataRush API", "version": "1", "description": "API docs for DataRush"}, "paths": {"/api/v1/ping": {"get": {"operationId": "api_v1_ping_views_ping", "summary": "Ping", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PingOut"}}}}}, "tags": ["ping"]}}, "/api/v1/sign-up": {"post": {"operationId": "api_v1_user_views_sign_up", "summary": "Sign Up", "parameters": [], "responses": {"201": {"description": "Created", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TokenSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BadRequestError"}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConflictError"}}}}}, "tags": ["user"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterSchema"}}}, "required": true}}}, "/api/v1/sign-in": {"post": {"operationId": "api_v1_user_views_sign_in", "summary": "Sign In", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TokenSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BadRequestError"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForbiddenError"}}}}}, "tags": ["user"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LoginSchema"}}}, "required": true}}}, "/api/v1/me": {"get": {"operationId": "api_v1_user_views_get_me", "summary": "Get Me", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserSchema"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForbiddenError"}}}}}, "tags": ["user"], "security": [{"BearerAuth": []}]}}, "/api/v1/users/{user_id}": {"get": {"operationId": "api_v1_user_views_get_user", "summary": "Get User", "parameters": [{"in": "path", "name": "user_id", "schema": {"title": "User Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BadRequestError"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotFoundError"}}}}}, "tags": ["user"], "security": [{"BearerAuth": []}]}}, "/api/v1/me/stat": {"get": {"operationId": "api_v1_user_views_get_my_stat", "summary": "Get My Stat", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StatSchema"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "tags": ["user"], "security": [{"BearerAuth": []}]}}, "/api/v1/leaderboard": {"get": {"operationId": "api_v1_user_views_get_leaderboard", "summary": "Get Leaderboard", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/UserSchema"}, "title": "Response", "type": "array"}}}}}, "tags": ["user"]}}, "/api/v1/competitions/{competition_id}": {"get": {"operationId": "api_v1_competition_views_get_competition", "summary": "Get Competition", "parameters": [{"in": "path", "name": "competition_id", "schema": {"format": "uuid", "title": "Competition Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionOut"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BadRequestError"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotFoundError"}}}}}, "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/competitions": {"get": {"operationId": "api_v1_competition_views_list_competitions", "summary": "List Competitions", "parameters": [{"in": "query", "name": "is_participating", "schema": {"title": "Is Participating", "type": "boolean"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/CompetitionOut"}, "title": "Response", "type": "array"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BadRequestError"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/competitions/{competition_id}/state": {"post": {"operationId": "api_v1_competition_views_change_competition_state", "summary": "Change Competition State", "parameters": [{"in": "path", "name": "competition_id", "schema": {"format": "uuid", "title": "Competition Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StateOut"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BadRequestError"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "tags": ["competition"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StateIn"}}}, "required": true}, "security": [{"BearerAuth": []}]}}, "/api/v1/review/{token}": {"get": {"operationId": "api_v1_review_views_get_reviewer_profile", "summary": "Get Reviewer Profile", "parameters": [{"in": "path", "name": "token", "schema": {"title": "Token", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReviewerOut"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "description": "token \u0435\u0441\u0442\u044c \u0438 \u0432 \u0441\u0432\u0430\u0433\u0433\u0435\u0440 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u043e \u043e\u043d\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u0435 \u0432\u0435\u0440\u044c\u0442\u0435. \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0442\u043e\u043a\u0435\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432 path", "tags": ["review"], "security": [{"ReviewerAuth": []}]}}, "/api/v1/review/{token}/submissions/{submition_id}": {"get": {"operationId": "api_v1_review_views_get_submission", "summary": "Get Submission", "parameters": [{"in": "path", "name": "token", "schema": {"title": "Token", "type": "string"}, "required": true}, {"in": "path", "name": "submition_id", "schema": {"format": "uuid", "title": "Submition Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubmissionOut"}}}}}, "tags": ["review"], "security": [{"ReviewerAuth": []}]}}, "/api/v1/review/{token}/submissions": {"get": {"operationId": "api_v1_review_views_get_submissions", "summary": "Get Submissions", "parameters": [{"in": "path", "name": "token", "schema": {"title": "Token", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubmissionsOut"}}}}}, "description": "\u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043e\u043a, \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0440\u0435\u0432\u044c\u044e\u0435\u0440", "tags": ["review"], "security": [{"ReviewerAuth": []}]}}, "/api/v1/review/{token}/submissions/{submition_id}/evaluate": {"post": {"operationId": "api_v1_review_views_evaluate_submission", "summary": "Evaluate Submission", "parameters": [{"in": "path", "name": "token", "schema": {"title": "Token", "type": "string"}, "required": true}, {"in": "path", "name": "submition_id", "schema": {"format": "uuid", "title": "Submition Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubmissionOut"}}}}}, "description": "\u041e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u0441\u044b\u043b\u043a\u0438. \u0412 body \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441 slug \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f \u0438 \u043e\u0446\u0435\u043d\u043a\u043e\u0439 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044e", "tags": ["review"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationIn"}}}, "required": true}, "security": [{"ReviewerAuth": []}]}}, "/api/v1/competitions/{competition_id}/start": {"post": {"operationId": "api_v1_task_views_start_competition", "summary": "Start Competition", "parameters": [{"in": "path", "name": "competition_id", "schema": {"format": "uuid", "title": "Competition Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PingOut"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotFoundError"}}}}}, "description": "Start a competition completing (open access to tasks)", "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/competitions/{competition_id}/tasks": {"get": {"operationId": "api_v1_task_views_get_competition_tasks", "summary": "Get Competition Tasks", "parameters": [{"in": "path", "name": "competition_id", "schema": {"format": "uuid", "title": "Competition Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/TaskOutSchema"}, "title": "Response", "type": "array"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForbiddenError"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotFoundError"}}}}}, "description": "Get all tasks of competition (works only if user started competition)", "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/competitions/{competition_id}/tasks/{task_id}": {"get": {"operationId": "api_v1_task_views_get_task", "summary": "Get Task", "parameters": [{"in": "path", "name": "competition_id", "schema": {"title": "Competition Id", "type": "string"}, "required": true}, {"in": "path", "name": "task_id", "schema": {"title": "Task Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskOutSchema"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForbiddenError"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotFoundError"}}}}}, "description": "Get a task of competition task", "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/competitions/{competition_id}/tasks/{task_id}/submit": {"post": {"operationId": "api_v1_task_views_submit_task", "summary": "Submit Task", "parameters": [{"in": "path", "name": "competition_id", "schema": {"title": "Competition Id", "type": "string"}, "required": true}, {"in": "path", "name": "task_id", "schema": {"title": "Task Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskSubmissionOut"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForbiddenError"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotFoundError"}}}}}, "description": "Submit task solution", "tags": ["competition"], "requestBody": {"content": {"multipart/form-data": {"schema": {"properties": {"content": {"format": "binary", "title": "Content", "type": "string"}}, "required": ["content"], "title": "FileParams", "type": "object"}}}, "required": true}, "security": [{"BearerAuth": []}]}}, "/api/v1/competitions/{competition_id}/tasks/{task_id}/history": {"get": {"operationId": "api_v1_task_views_get_submissions_history", "summary": "Get Submissions History", "parameters": [{"in": "path", "name": "competition_id", "schema": {"format": "uuid", "title": "Competition Id", "type": "string"}, "required": true}, {"in": "path", "name": "task_id", "schema": {"format": "uuid", "title": "Task Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/HistorySubmissionOut"}, "title": "Response", "type": "array"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/competitions/{competition_id}/tasks/{task_id}/attachments": {"get": {"operationId": "api_v1_task_views_get_task_attachments", "summary": "Get Task Attachments", "parameters": [{"in": "path", "name": "competition_id", "schema": {"format": "uuid", "title": "Competition Id", "type": "string"}, "required": true}, {"in": "path", "name": "task_id", "schema": {"format": "uuid", "title": "Task Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/TaskAttachmentSchema"}, "title": "Response", "type": "array"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/competitions/{competition_id}/results": {"get": {"operationId": "api_v1_task_views_get_competition_results", "summary": "Get Competition Results", "parameters": [{"in": "path", "name": "competition_id", "schema": {"format": "uuid", "title": "Competition Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/TaskStatusSchema"}, "title": "Response", "type": "array"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "tags": ["competition"], "security": [{"BearerAuth": []}]}}, "/api/v1/achievements/all": {"get": {"operationId": "api_v1_achievement_views_get_all_achievements", "summary": "Get All Achievements", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AchievementSchema"}, "title": "Response", "type": "array"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnauthorizedError"}}}}}, "tags": ["achievement"]}}}, "components": {"schemas": {"PingOut": {"properties": {"status": {"default": "ok", "title": "Status", "type": "string"}}, "title": "PingOut", "type": "object"}, "TokenSchema": {"properties": {"token": {"title": "Token", "type": "string"}}, "required": ["token"], "title": "TokenSchema", "type": "object"}, "BadRequestError": {"properties": {"detail": {"title": "Detail"}}, "required": ["detail"], "title": "BadRequestError", "type": "object"}, "ConflictError": {"properties": {"detail": {"title": "Detail"}}, "required": ["detail"], "title": "ConflictError", "type": "object"}, "RegisterSchema": {"properties": {"email": {"maxLength": 254, "title": "\u041f\u043e\u0447\u0442\u0430", "type": "string"}, "username": {"title": "\u042e\u0437\u0435\u0440\u043d\u0435\u0439\u043c", "type": "string"}, "password": {"title": "\u041f\u0430\u0440\u043e\u043b\u044c", "type": "string"}}, "required": ["email", "username", "password"], "title": "RegisterSchema", "type": "object"}, "ForbiddenError": {"properties": {"detail": {"default": "Forbidden", "title": "Detail", "type": "string"}}, "title": "ForbiddenError", "type": "object"}, "LoginSchema": {"properties": {"email": {"maxLength": 254, "title": "\u041f\u043e\u0447\u0442\u0430", "type": "string"}, "password": {"title": "\u041f\u0430\u0440\u043e\u043b\u044c", "type": "string"}}, "required": ["email", "password"], "title": "LoginSchema", "type": "object"}, "UserAchievementSchema": {"properties": {"name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "icon": {"title": "Icon", "type": "string"}, "received_at": {"format": "date-time", "title": "Received At", "type": "string"}}, "required": ["name", "description", "icon", "received_at"], "title": "UserAchievementSchema", "type": "object"}, "UserSchema": {"properties": {"achievements": {"items": {"$ref": "#/components/schemas/UserAchievementSchema"}, "title": "Achievements", "type": "array"}, "id": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Id"}, "avatar": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "\u0410\u0432\u0430\u0442\u0430\u0440"}, "email": {"maxLength": 254, "title": "\u041f\u043e\u0447\u0442\u0430", "type": "string"}, "username": {"title": "\u042e\u0437\u0435\u0440\u043d\u0435\u0439\u043c", "type": "string"}, "created_at": {"format": "date-time", "title": "\u0414\u0430\u0442\u0430 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u044f", "type": "string"}}, "required": ["email", "username", "created_at"], "title": "UserSchema", "type": "object"}, "NotFoundError": {"properties": {"detail": {"default": "Not Found", "title": "Detail", "type": "string"}}, "title": "NotFoundError", "type": "object"}, "StatSchema": {"properties": {"total_attempts": {"title": "Total Attempts", "type": "integer"}, "solved_tasks": {"title": "Solved Tasks", "type": "integer"}}, "required": ["total_attempts", "solved_tasks"], "title": "StatSchema", "type": "object"}, "UnauthorizedError": {"properties": {"detail": {"default": "Unauthorized", "title": "Detail", "type": "string"}}, "title": "UnauthorizedError", "type": "object"}, "CompetitionOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "state": {"enum": ["not_started", "started", "finished"], "title": "State", "type": "string"}, "title": {"maxLength": 100, "title": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435", "type": "string"}, "description": {"title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", "type": "string"}, "image_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f"}, "end_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f"}, "start_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "\u041d\u0430\u0447\u0430\u043b\u043e \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f"}, "type": {"maxLength": 11, "title": "\u0422\u0438\u043f \u0423\u0447\u0430\u0441\u0442\u0438\u044f", "type": "string"}, "participation_type": {"maxLength": 11, "title": "\u0422\u0438\u043f \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f", "type": "string"}}, "required": ["id", "state", "title", "description", "type", "participation_type"], "title": "CompetitionOut", "type": "object"}, "StateOut": {"properties": {"state": {"default": "not_started", "maxLength": 11, "title": "\u0421\u0442\u0430\u0442\u0443\u0441", "type": "string"}}, "title": "StateOut", "type": "object"}, "StateIn": {"properties": {"state": {"enum": ["started", "not_started", "finished"], "title": "State", "type": "string"}}, "required": ["state"], "title": "StateIn", "type": "object"}, "ReviewerOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "name": {"maxLength": 100, "title": "\u0418\u043c\u044f", "type": "string"}, "surname": {"maxLength": 100, "title": "\u0424\u0430\u043c\u0438\u043b\u0438\u044f", "type": "string"}}, "required": ["id", "name", "surname"], "title": "ReviewerOut", "type": "object"}, "CriteriaMarkOut": {"properties": {"slug": {"title": "Slug", "type": "string"}, "mark": {"title": "Mark", "type": "number"}}, "required": ["slug", "mark"], "title": "CriteriaMarkOut", "type": "object"}, "CriteriaOut": {"properties": {"name": {"title": "Name", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "max_value": {"title": "Max Value", "type": "integer"}}, "required": ["name", "slug", "max_value"], "title": "CriteriaOut", "type": "object"}, "SubmissionOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "review_status": {"enum": ["not_checked", "checked", "checking"], "title": "Review Status", "type": "string"}, "evaluation": {"anyOf": [{"items": {"$ref": "#/components/schemas/CriteriaMarkOut"}, "type": "array"}, {"type": "null"}], "title": "Evaluation"}, "criteries": {"anyOf": [{"items": {"$ref": "#/components/schemas/CriteriaOut"}, "type": "array"}, {"type": "null"}], "title": "Criteries"}, "submitted_at": {"format": "date-time", "title": "Submitted At", "type": "string"}, "competition": {"format": "uuid", "title": "Competition", "type": "string"}, "competition_name": {"title": "Competition Name", "type": "string"}, "task_position": {"title": "Task Position", "type": "integer"}, "task_title": {"title": "Task Title", "type": "string"}, "description": {"title": "Description", "type": "string"}, "task": {"format": "uuid", "title": "\u0417\u0430\u0434\u0430\u043d\u0438\u0435", "type": "string"}, "content": {"title": "\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u041f\u043e\u0441\u044b\u043b\u043a\u0438", "type": "string"}, "stdout": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0447\u0435\u043a\u0435\u0440\u043e\u043c", "title": "\u0412\u044b\u0432\u043e\u0434 \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b"}, "result": {"anyOf": [{"type": "object"}, {"type": "null"}], "title": "\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438"}, "earned_points": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "\u0411\u0430\u043b\u043b\u044b \u0417\u0430 \u0417\u0430\u0434\u0430\u043d\u0438\u0435"}, "checked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "\u0414\u0430\u0442\u0430 \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438"}}, "required": ["id", "review_status", "submitted_at", "competition", "competition_name", "task_position", "task_title", "description", "task", "content"], "title": "SubmissionOut", "type": "object"}, "SubmissionsOut": {"properties": {"submissions": {"default": [], "items": {"anyOf": [{"$ref": "#/components/schemas/SubmissionOut"}, {"type": "null"}]}, "title": "Submissions", "type": "array"}}, "title": "SubmissionsOut", "type": "object"}, "CriteriaMarkIn": {"properties": {"slug": {"title": "Slug", "type": "string"}, "mark": {"title": "Mark", "type": "number"}}, "required": ["slug", "mark"], "title": "CriteriaMarkIn", "type": "object"}, "EvaluationIn": {"properties": {"evaluation": {"items": {"$ref": "#/components/schemas/CriteriaMarkIn"}, "title": "Evaluation", "type": "array"}}, "required": ["evaluation"], "title": "EvaluationIn", "type": "object"}, "TaskOutSchema": {"properties": {"status": {"enum": ["sent", "checked", "checking", "not_submitted"], "title": "Status", "type": "string"}, "type": {"enum": ["input", "checker", "review"], "title": "Type", "type": "string"}, "id": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Id"}, "competition": {"format": "uuid", "title": "\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0435", "type": "string"}, "title": {"maxLength": 50, "title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", "type": "string"}, "description": {"title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", "type": "string"}, "in_competition_position": {"title": "\u041f\u043e\u0437\u0438\u0446\u0438\u044f \u0412 \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0438", "type": "integer"}, "points": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "\u041e\u0431\u0449\u0438\u0439 \u0411\u0430\u043b\u043b \u0417\u0430 \u0417\u0430\u0434\u0430\u043d\u0438\u0435"}, "max_attempts": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u041a\u043e\u043b-\u0412\u043e \u041f\u043e\u043f\u044b\u0442\u043e\u043a"}}, "required": ["competition", "title", "description", "in_competition_position"], "title": "TaskOutSchema", "type": "object"}, "TaskSubmissionOut": {"properties": {"submission_id": {"format": "uuid", "title": "Submission Id", "type": "string"}}, "required": ["submission_id"], "title": "TaskSubmissionOut", "type": "object"}, "HistorySubmissionOut": {"properties": {"status": {"enum": ["sent", "checked", "checking"], "title": "Status", "type": "string"}, "id": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Id"}, "earned_points": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "\u0411\u0430\u043b\u043b\u044b \u0417\u0430 \u0417\u0430\u0434\u0430\u043d\u0438\u0435"}, "timestamp": {"format": "date-time", "title": "\u0414\u0430\u0442\u0430 \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0438", "type": "string"}, "content": {"title": "\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u041f\u043e\u0441\u044b\u043b\u043a\u0438", "type": "string"}}, "required": ["status", "timestamp", "content"], "title": "HistorySubmissionOut", "type": "object"}, "TaskAttachmentSchema": {"properties": {"id": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Id"}, "file": {"title": "\u0424\u0430\u0439\u043b", "type": "string"}, "public": {"default": false, "title": "\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439", "type": "boolean"}}, "required": ["file"], "title": "TaskAttachmentSchema", "type": "object"}, "TaskStatusSchema": {"properties": {"task_name": {"title": "Task Name", "type": "string"}, "result": {"title": "Result", "type": "integer"}, "max_points": {"title": "Max Points", "type": "integer"}, "position": {"title": "Position", "type": "integer"}}, "required": ["task_name", "result", "max_points", "position"], "title": "TaskStatusSchema", "type": "object"}, "AchievementSchema": {"properties": {"id": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Id"}, "name": {"maxLength": 30, "title": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435", "type": "string"}, "description": {"title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", "type": "string"}, "icon": {"title": "\u0418\u043a\u043e\u043d\u043a\u0430 \u0414\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f", "type": "string"}}, "required": ["name", "description", "icon"], "title": "AchievementSchema", "type": "object"}}, "securitySchemes": {"BearerAuth": {"type": "http", "scheme": "bearer"}, "ReviewerAuth": {"type": "apiKey", "in": "path", "name": "token"}}}, "servers": []} |