{ "openapi": "3.0.3", "info": { "title": "KIS-TOiR API", "description": "Equipment maintenance management system. Generated from domain/toir.api.dsl via tools/api-summary-to-openapi.mjs.", "version": "1.0.0" }, "servers": [ { "url": "/api", "description": "Default server" } ], "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } }, "schemas": { "Equipment": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "inventoryNumber": { "type": "string", "description": "Инвентарный номер" }, "serialNumber": { "type": "string", "description": "Заводской (серийный) номер" }, "name": { "type": "string", "description": "Наименование единицы оборудования" }, "equipmentTypeCode": { "type": "string", "description": "Код вида оборудования" }, "status": { "allOf": [ { "$ref": "#/components/schemas/EquipmentStatus" } ], "description": "Текущий статус" }, "location": { "type": "string", "description": "Место эксплуатации / скважина / куст" }, "commissionedAt": { "type": "string", "format": "date-time", "description": "Дата ввода в эксплуатацию" }, "totalEngineHours": { "type": "string", "format": "decimal", "description": "Общая наработка, моточасов" }, "engineHoursSinceLastRepair": { "type": "string", "format": "decimal", "description": "Наработка с последнего ремонта, моточасов" }, "lastRepairAt": { "type": "string", "format": "date-time", "description": "Дата последнего ремонта" }, "notes": { "type": "string", "description": "Примечания" } }, "description": "Оборудование — полный объект ответа" }, "EquipmentCreate": { "type": "object", "properties": { "inventoryNumber": { "type": "string", "description": "Инвентарный номер" }, "serialNumber": { "type": "string", "description": "Заводской (серийный) номер" }, "name": { "type": "string", "description": "Наименование единицы оборудования" }, "equipmentTypeCode": { "type": "string", "description": "Код вида оборудования" }, "status": { "allOf": [ { "$ref": "#/components/schemas/EquipmentStatus" } ], "description": "Текущий статус" }, "location": { "type": "string", "description": "Место эксплуатации / скважина / куст" }, "commissionedAt": { "type": "string", "format": "date-time", "description": "Дата ввода в эксплуатацию" }, "totalEngineHours": { "type": "string", "format": "decimal", "description": "Общая наработка, моточасов" }, "engineHoursSinceLastRepair": { "type": "string", "format": "decimal", "description": "Наработка с последнего ремонта, моточасов" }, "lastRepairAt": { "type": "string", "format": "date-time", "description": "Дата последнего ремонта" }, "notes": { "type": "string", "description": "Примечания" } }, "description": "Оборудование — тело запроса на создание", "required": [ "inventoryNumber", "name", "equipmentTypeCode" ] }, "EquipmentUpdate": { "type": "object", "properties": { "inventoryNumber": { "type": "string", "description": "Инвентарный номер" }, "serialNumber": { "type": "string", "description": "Заводской (серийный) номер" }, "name": { "type": "string", "description": "Наименование единицы оборудования" }, "equipmentTypeCode": { "type": "string", "description": "Код вида оборудования" }, "status": { "allOf": [ { "$ref": "#/components/schemas/EquipmentStatus" } ], "description": "Текущий статус" }, "location": { "type": "string", "description": "Место эксплуатации / скважина / куст" }, "commissionedAt": { "type": "string", "format": "date-time", "description": "Дата ввода в эксплуатацию" }, "totalEngineHours": { "type": "string", "format": "decimal", "description": "Общая наработка, моточасов" }, "engineHoursSinceLastRepair": { "type": "string", "format": "decimal", "description": "Наработка с последнего ремонта, моточасов" }, "lastRepairAt": { "type": "string", "format": "date-time", "description": "Дата последнего ремонта" }, "notes": { "type": "string", "description": "Примечания" } }, "description": "Оборудование — тело запроса на обновление (частичное)" }, "EquipmentListRequest": { "type": "object", "properties": { "filters": { "type": "array", "items": { "$ref": "#/components/schemas/DTO.Filter" } }, "page": { "$ref": "#/components/schemas/DTO.PageRequest" } }, "description": "Оборудование — запрос постраничного списка с фильтрацией" }, "EquipmentListResponse": { "type": "object", "properties": { "content": { "type": "array", "items": { "$ref": "#/components/schemas/Equipment" } }, "page": { "$ref": "#/components/schemas/DTO.PageInfo" } }, "description": "Оборудование — постраничный результат" }, "RepairOrder": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "number": { "type": "string", "description": "Номер заявки" }, "equipmentId": { "type": "string", "format": "uuid", "description": "Идентификатор оборудования" }, "repairKind": { "allOf": [ { "$ref": "#/components/schemas/RepairKind" } ], "description": "Вид ремонта" }, "status": { "allOf": [ { "$ref": "#/components/schemas/RepairOrderStatus" } ], "description": "Статус заявки" }, "plannedAt": { "type": "string", "format": "date-time", "description": "Плановая дата начала" }, "startedAt": { "type": "string", "format": "date-time", "description": "Фактическая дата начала" }, "completedAt": { "type": "string", "format": "date-time", "description": "Фактическая дата завершения" }, "contractor": { "type": "string", "description": "Подрядная организация (если внешний ремонт)" }, "engineHoursAtRepair": { "type": "string", "format": "decimal", "description": "Наработка на момент ремонта, моточасов" }, "description": { "type": "string", "description": "Описание работ / дефекта" }, "notes": { "type": "string", "description": "Примечания" }, "confirmed": { "type": "boolean", "description": "Согласовано/Не согласовано" } }, "description": "Заявка на ремонт — полный объект ответа" }, "RepairOrderCreate": { "type": "object", "properties": { "number": { "type": "string", "description": "Номер заявки" }, "equipmentId": { "type": "string", "format": "uuid", "description": "Идентификатор оборудования" }, "repairKind": { "allOf": [ { "$ref": "#/components/schemas/RepairKind" } ], "description": "Вид ремонта" }, "status": { "allOf": [ { "$ref": "#/components/schemas/RepairOrderStatus" } ], "description": "Статус заявки" }, "plannedAt": { "type": "string", "format": "date-time", "description": "Плановая дата начала" }, "startedAt": { "type": "string", "format": "date-time", "description": "Фактическая дата начала" }, "completedAt": { "type": "string", "format": "date-time", "description": "Фактическая дата завершения" }, "contractor": { "type": "string", "description": "Подрядная организация (если внешний ремонт)" }, "engineHoursAtRepair": { "type": "string", "format": "decimal", "description": "Наработка на момент ремонта, моточасов" }, "description": { "type": "string", "description": "Описание работ / дефекта" }, "notes": { "type": "string", "description": "Примечания" }, "confirmed": { "type": "boolean", "description": "Согласовано/Не согласовано" } }, "description": "Заявка на ремонт — тело запроса на создание", "required": [ "number", "equipmentId", "repairKind", "plannedAt" ] }, "RepairOrderUpdate": { "type": "object", "properties": { "number": { "type": "string", "description": "Номер заявки" }, "equipmentId": { "type": "string", "format": "uuid", "description": "Идентификатор оборудования" }, "repairKind": { "allOf": [ { "$ref": "#/components/schemas/RepairKind" } ], "description": "Вид ремонта" }, "status": { "allOf": [ { "$ref": "#/components/schemas/RepairOrderStatus" } ], "description": "Статус заявки" }, "plannedAt": { "type": "string", "format": "date-time", "description": "Плановая дата начала" }, "startedAt": { "type": "string", "format": "date-time", "description": "Фактическая дата начала" }, "completedAt": { "type": "string", "format": "date-time", "description": "Фактическая дата завершения" }, "contractor": { "type": "string", "description": "Подрядная организация (если внешний ремонт)" }, "engineHoursAtRepair": { "type": "string", "format": "decimal", "description": "Наработка на момент ремонта, моточасов" }, "description": { "type": "string", "description": "Описание работ / дефекта" }, "notes": { "type": "string", "description": "Примечания" }, "confirmed": { "type": "boolean", "description": "Согласовано/Не согласовано" } }, "description": "Заявка на ремонт — тело запроса на обновление (частичное)" }, "RepairOrderListRequest": { "type": "object", "properties": { "filters": { "type": "array", "items": { "$ref": "#/components/schemas/DTO.Filter" } }, "page": { "$ref": "#/components/schemas/DTO.PageRequest" } }, "description": "Заявка на ремонт — запрос постраничного списка с фильтрацией" }, "RepairOrderListResponse": { "type": "object", "properties": { "content": { "type": "array", "items": { "$ref": "#/components/schemas/RepairOrder" } }, "page": { "$ref": "#/components/schemas/DTO.PageInfo" } }, "description": "Заявка на ремонт — постраничный результат" }, "EquipmentStatus": { "type": "string", "x-dsl-enum": "EquipmentStatus", "description": "Enum: EquipmentStatus (values defined in domain/*.api.dsl)" }, "DTO.Filter": { "type": "string", "x-dsl-enum": "DTO.Filter", "description": "Enum: DTO.Filter (values defined in domain/*.api.dsl)" }, "DTO.PageRequest": { "type": "string", "x-dsl-enum": "DTO.PageRequest", "description": "Enum: DTO.PageRequest (values defined in domain/*.api.dsl)" }, "DTO.PageInfo": { "type": "string", "x-dsl-enum": "DTO.PageInfo", "description": "Enum: DTO.PageInfo (values defined in domain/*.api.dsl)" }, "RepairKind": { "type": "string", "x-dsl-enum": "RepairKind", "description": "Enum: RepairKind (values defined in domain/*.api.dsl)" }, "RepairOrderStatus": { "type": "string", "x-dsl-enum": "RepairOrderStatus", "description": "Enum: RepairOrderStatus (values defined in domain/*.api.dsl)" } } }, "paths": { "/equipment/page": { "post": { "summary": "Постраничный список оборудования с фильтрацией", "security": [ { "bearerAuth": [] } ], "tags": [ "оборудованием" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EquipmentListRequest" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EquipmentListResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } } }, "/equipment/{id}": { "get": { "summary": "Получить оборудование по идентификатору", "security": [ { "bearerAuth": [] } ], "tags": [ "оборудованием" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Equipment" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } }, "put": { "summary": "Обновить единицу оборудования", "security": [ { "bearerAuth": [] } ], "tags": [ "оборудованием" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EquipmentUpdate" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } }, "delete": { "summary": "Удалить единицу оборудования", "security": [ { "bearerAuth": [] } ], "tags": [ "оборудованием" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not found" } } } }, "/equipment": { "post": { "summary": "Создать единицу оборудования", "security": [ { "bearerAuth": [] } ], "tags": [ "оборудованием" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EquipmentCreate" } } } }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } } }, "/repair-orders/page": { "post": { "summary": "Постраничный список заявок на ремонт с фильтрацией", "security": [ { "bearerAuth": [] } ], "tags": [ "заявками на ремонт" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepairOrderListRequest" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepairOrderListResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } } }, "/repair-orders/{id}": { "get": { "summary": "Получить заявку на ремонт по идентификатору", "security": [ { "bearerAuth": [] } ], "tags": [ "заявками на ремонт" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepairOrder" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } }, "put": { "summary": "Обновить заявку на ремонт", "security": [ { "bearerAuth": [] } ], "tags": [ "заявками на ремонт" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepairOrderUpdate" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } }, "delete": { "summary": "Удалить заявку на ремонт", "security": [ { "bearerAuth": [] } ], "tags": [ "заявками на ремонт" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not found" } } } }, "/repair-orders": { "post": { "summary": "Создать заявку на ремонт", "security": [ { "bearerAuth": [] } ], "tags": [ "заявками на ремонт" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepairOrderCreate" } } } }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "type": "object" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } } } } } }