2186 lines
62 KiB
JSON
2186 lines
62 KiB
JSON
{
|
||
"sourceFiles": [
|
||
"domain/toir.api.dsl"
|
||
],
|
||
"enums": [
|
||
{
|
||
"name": "EquipmentStatus",
|
||
"description": null,
|
||
"values": [
|
||
{
|
||
"name": "Active",
|
||
"label": "В эксплуатации"
|
||
},
|
||
{
|
||
"name": "Repair",
|
||
"label": "В ремонте"
|
||
},
|
||
{
|
||
"name": "Reserve",
|
||
"label": "В резерве"
|
||
},
|
||
{
|
||
"name": "WriteOff",
|
||
"label": "Списано"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "laborOperation",
|
||
"description": "Трудовые операции",
|
||
"values": [
|
||
{
|
||
"name": "Manual",
|
||
"label": "Ручные"
|
||
},
|
||
{
|
||
"name": "MachineManual",
|
||
"label": "Машинно-ручные"
|
||
},
|
||
{
|
||
"name": "Machine",
|
||
"label": "Машинные"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "EnumPeriodicityTO",
|
||
"description": null,
|
||
"values": [
|
||
{
|
||
"name": "Ежедневное",
|
||
"label": "Ежедневное"
|
||
},
|
||
{
|
||
"name": "Еженедельное",
|
||
"label": "Еженедельное"
|
||
},
|
||
{
|
||
"name": "Ежемесячное",
|
||
"label": "Ежемесячное"
|
||
},
|
||
{
|
||
"name": "Полугодовое",
|
||
"label": "Полугодовое"
|
||
},
|
||
{
|
||
"name": "Годовое",
|
||
"label": "Годовое"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "Role",
|
||
"description": null,
|
||
"values": [
|
||
{
|
||
"name": "Исполнитель",
|
||
"label": "Исполнитель"
|
||
},
|
||
{
|
||
"name": "Подписант",
|
||
"label": "Подписант"
|
||
},
|
||
{
|
||
"name": "Пользователь",
|
||
"label": "Пользователь"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "CategoryPart",
|
||
"description": null,
|
||
"values": [
|
||
{
|
||
"name": "Расходник",
|
||
"label": "Расходник"
|
||
},
|
||
{
|
||
"name": "Запчасть",
|
||
"label": "Запчасть"
|
||
},
|
||
{
|
||
"name": "Инструмент",
|
||
"label": "Инструмент"
|
||
},
|
||
{
|
||
"name": "Спецодежда",
|
||
"label": "Спецодежда"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "EquipmentType",
|
||
"description": "Типы оборудования",
|
||
"values": [
|
||
{
|
||
"name": "Производственное",
|
||
"label": "производственное"
|
||
},
|
||
{
|
||
"name": "Энергетическое",
|
||
"label": "энергетическое"
|
||
},
|
||
{
|
||
"name": "Насосное",
|
||
"label": "насосное"
|
||
},
|
||
{
|
||
"name": "Компрессорное",
|
||
"label": "компрессорное"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"dtos": [
|
||
{
|
||
"name": "DTO.Equipment",
|
||
"description": "Оборудование — полный response-объект",
|
||
"fields": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Идентификатор оборудования",
|
||
"map": "Equipment.id",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Название оборудования",
|
||
"map": "Equipment.name",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Заводской (серийный) номер",
|
||
"map": "Equipment.serialNumber",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "inventoryNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": true,
|
||
"primary": false,
|
||
"description": "Инвентарный номер",
|
||
"map": "Equipment.inventoryNumber",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "equipmentType",
|
||
"type": "EquipmentType",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Тип оборудования",
|
||
"map": "Equipment.equipmentType",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "dateOfInspection",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Дата проверки",
|
||
"map": "Equipment.dateOfInspection",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "periodicityTO",
|
||
"type": "EnumPeriodicityTO",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Периодичность ТО",
|
||
"map": "Equipment.periodicityTO",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "location",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Место эксплуатации / скважина / куст",
|
||
"map": "Equipment.location",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "status",
|
||
"type": "EquipmentStatus",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Текущий статус",
|
||
"map": "Equipment.status",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "commissionedAt",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Год изготовления",
|
||
"map": "Equipment.commissionedAt",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "totalEngineHours",
|
||
"type": "decimal",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Общая наработка, моточасов",
|
||
"map": "Equipment.totalEngineHours",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "engineHoursSinceLastRepair",
|
||
"type": "decimal",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Наработка с последнего ремонта, моточасов",
|
||
"map": "Equipment.engineHoursSinceLastRepair",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "lastRepairAt",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Дата последнего ремонта",
|
||
"map": "Equipment.lastRepairAt",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "notes",
|
||
"type": "text",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Примечания",
|
||
"map": "Equipment.notes",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "workAsPartOf",
|
||
"type": "laborOperation",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Работы в составе",
|
||
"map": "Equipment.workAsPartOf",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "fuelConsumed",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Расход топлива",
|
||
"map": "Equipment.fuelConsumed",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EquipmentCreate",
|
||
"description": "Тело запроса на создание оборудования",
|
||
"fields": [
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Название оборудования",
|
||
"map": "Equipment.name",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Заводской (серийный) номер",
|
||
"map": "Equipment.serialNumber",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "inventoryNumber",
|
||
"type": "string",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": true,
|
||
"primary": false,
|
||
"description": "Инвентарный номер",
|
||
"map": "Equipment.inventoryNumber",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "equipmentType",
|
||
"type": "EquipmentType",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Тип оборудования",
|
||
"map": "Equipment.equipmentType",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "dateOfInspection",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Дата проверки",
|
||
"map": "Equipment.dateOfInspection",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "periodicityTO",
|
||
"type": "EnumPeriodicityTO",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Периодичность ТО",
|
||
"map": "Equipment.periodicityTO",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "location",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Место эксплуатации / скважина / куст",
|
||
"map": "Equipment.location",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "status",
|
||
"type": "EquipmentStatus",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Текущий статус",
|
||
"map": "Equipment.status",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "commissionedAt",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Год изготовления",
|
||
"map": "Equipment.commissionedAt",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "totalEngineHours",
|
||
"type": "decimal",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Общая наработка, моточасов",
|
||
"map": "Equipment.totalEngineHours",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "engineHoursSinceLastRepair",
|
||
"type": "decimal",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Наработка с последнего ремонта, моточасов",
|
||
"map": "Equipment.engineHoursSinceLastRepair",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "lastRepairAt",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Дата последнего ремонта",
|
||
"map": "Equipment.lastRepairAt",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "notes",
|
||
"type": "text",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Примечания",
|
||
"map": "Equipment.notes",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "workAsPartOf",
|
||
"type": "laborOperation",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Работы в составе",
|
||
"map": "Equipment.workAsPartOf",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "fuelConsumed",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Расход топлива",
|
||
"map": "Equipment.fuelConsumed",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EquipmentUpdate",
|
||
"description": "Тело запроса на обновление оборудования (частичное обновление)",
|
||
"fields": [
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Название оборудования",
|
||
"map": "Equipment.name",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Заводской (серийный) номер",
|
||
"map": "Equipment.serialNumber",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "inventoryNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": true,
|
||
"primary": false,
|
||
"description": "Инвентарный номер",
|
||
"map": "Equipment.inventoryNumber",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "equipmentType",
|
||
"type": "EquipmentType",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Тип оборудования",
|
||
"map": "Equipment.equipmentType",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "dateOfInspection",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Дата проверки",
|
||
"map": "Equipment.dateOfInspection",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "periodicityTO",
|
||
"type": "EnumPeriodicityTO",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Периодичность ТО",
|
||
"map": "Equipment.periodicityTO",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "location",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Место эксплуатации / скважина / куст",
|
||
"map": "Equipment.location",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "status",
|
||
"type": "EquipmentStatus",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Текущий статус",
|
||
"map": "Equipment.status",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "commissionedAt",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Год изготовления",
|
||
"map": "Equipment.commissionedAt",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "totalEngineHours",
|
||
"type": "decimal",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Общая наработка, моточасов",
|
||
"map": "Equipment.totalEngineHours",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "engineHoursSinceLastRepair",
|
||
"type": "decimal",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Наработка с последнего ремонта, моточасов",
|
||
"map": "Equipment.engineHoursSinceLastRepair",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "lastRepairAt",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Дата последнего ремонта",
|
||
"map": "Equipment.lastRepairAt",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "notes",
|
||
"type": "text",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Примечания",
|
||
"map": "Equipment.notes",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "workAsPartOf",
|
||
"type": "laborOperation",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Работы в составе",
|
||
"map": "Equipment.workAsPartOf",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "fuelConsumed",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Расход топлива",
|
||
"map": "Equipment.fuelConsumed",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EquipmentFilter",
|
||
"description": "Фильтры для списка оборудования",
|
||
"fields": [
|
||
{
|
||
"name": "inventoryNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по инвентарному номеру",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по заводскому номеру",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по наименованию",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "equipmentTypeCode",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Точное совпадение по коду вида оборудования",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "equipmentPeriodicityTO",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Точное совпадение по периодичности ТО оборудования",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "dateOfInspection",
|
||
"type": "date",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Дата проверки",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "status",
|
||
"type": "EquipmentStatus",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Фильтр по статусу",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "location",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по месту эксплуатации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "workAsPartOf",
|
||
"type": "laborOperation",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Фильтр по трудовой операции",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EquipmentListRequest",
|
||
"description": "Запрос постраничного списка оборудования с фильтрацией",
|
||
"fields": [
|
||
{
|
||
"name": "filter",
|
||
"type": "DTO.EquipmentFilter",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Фильтры",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageRequest",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Параметры пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EquipmentListResponse",
|
||
"description": "Ответ постраничного списка оборудования",
|
||
"fields": [
|
||
{
|
||
"name": "content",
|
||
"type": "DTO.Equipment[]",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Список оборудования",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageInfo",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Метаданные пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.Employee",
|
||
"description": "Сотрудник — полный response-объект",
|
||
"fields": [
|
||
{
|
||
"name": "code",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": true,
|
||
"description": "Номер сотрудника (Табельный номер)",
|
||
"map": "Employee.code",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "fullName",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "ФИО сотрудника",
|
||
"map": "Employee.fullName",
|
||
"sync": false,
|
||
"label": "Полное имя"
|
||
},
|
||
{
|
||
"name": "role",
|
||
"type": "Role",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Роль сотрудника",
|
||
"map": "Employee.role",
|
||
"sync": false,
|
||
"label": "Роль"
|
||
},
|
||
{
|
||
"name": "position",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Должность сотрудника",
|
||
"map": "Employee.position",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "boss",
|
||
"type": "DTO.Employee",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Руководитель",
|
||
"map": "Employee.boss",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "subordinates",
|
||
"type": "DTO.Employee[]",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Подчинённые",
|
||
"map": "Employee.subordinates",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "price",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость часа работы сотрудника",
|
||
"map": "Employee.price",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "phoneNumber",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Номер телефона",
|
||
"map": "Employee.phoneNumber",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EmployeeCreate",
|
||
"description": "Тело запроса на создание сотрудника",
|
||
"fields": [
|
||
{
|
||
"name": "code",
|
||
"type": "string",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Номер сотрудника (Табельный номер)",
|
||
"map": "Employee.code",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "fullName",
|
||
"type": "string",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "ФИО сотрудника",
|
||
"map": "Employee.fullName",
|
||
"sync": false,
|
||
"label": "Полное имя"
|
||
},
|
||
{
|
||
"name": "role",
|
||
"type": "Role",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Роль сотрудника",
|
||
"map": "Employee.role",
|
||
"sync": false,
|
||
"label": "Роль"
|
||
},
|
||
{
|
||
"name": "position",
|
||
"type": "string",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Должность сотрудника",
|
||
"map": "Employee.position",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "boss",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Код руководителя",
|
||
"map": "Employee.boss",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "price",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость часа работы сотрудника",
|
||
"map": "Employee.price",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "phoneNumber",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Номер телефона",
|
||
"map": "Employee.phoneNumber",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EmployeeUpdate",
|
||
"description": "Тело запроса на обновление сотрудника (частичное обновление)",
|
||
"fields": [
|
||
{
|
||
"name": "fullName",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "ФИО сотрудника",
|
||
"map": "Employee.fullName",
|
||
"sync": false,
|
||
"label": "Полное имя"
|
||
},
|
||
{
|
||
"name": "role",
|
||
"type": "Role",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Роль сотрудника",
|
||
"map": "Employee.role",
|
||
"sync": false,
|
||
"label": "Роль"
|
||
},
|
||
{
|
||
"name": "position",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Должность сотрудника",
|
||
"map": "Employee.position",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "boss",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Код руководителя",
|
||
"map": "Employee.boss",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "price",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость часа работы сотрудника",
|
||
"map": "Employee.price",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "phoneNumber",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Номер телефона",
|
||
"map": "Employee.phoneNumber",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EmployeeFilter",
|
||
"description": "Фильтры для списка сотрудников",
|
||
"fields": [
|
||
{
|
||
"name": "code",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по табельному номеру",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "fullName",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по ФИО",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "role",
|
||
"type": "Role",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Точное совпадение по роли",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "position",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по должности",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EmployeeListRequest",
|
||
"description": "Запрос постраничного списка сотрудников с фильтрацией",
|
||
"fields": [
|
||
{
|
||
"name": "filter",
|
||
"type": "DTO.EmployeeFilter",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Фильтры",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageRequest",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Параметры пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.EmployeeListResponse",
|
||
"description": "Ответ постраничного списка сотрудников",
|
||
"fields": [
|
||
{
|
||
"name": "content",
|
||
"type": "DTO.Employee[]",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Список сотрудников",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageInfo",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Метаданные пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.Part",
|
||
"description": "ЗИП/ТМЦ — полный response-объект",
|
||
"fields": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Идентификатор ЗИП/ТМЦ",
|
||
"map": "Part.id",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Название",
|
||
"map": "Part.name",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "categories",
|
||
"type": "CategoryPart",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Категории",
|
||
"map": "Part.categories",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "price",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость ЗИП/ТМЦ",
|
||
"map": "Part.price",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "description",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Описание ЗИП/ТМЦ",
|
||
"map": "Part.description",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Серийный номер запасных частей / инструментов / расходников",
|
||
"map": "Part.serialNumber",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.PartCreate",
|
||
"description": "Тело запроса на создание ЗИП/ТМЦ",
|
||
"fields": [
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": true,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Название",
|
||
"map": "Part.name",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "categories",
|
||
"type": "CategoryPart",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Категории",
|
||
"map": "Part.categories",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "price",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость ЗИП/ТМЦ",
|
||
"map": "Part.price",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "description",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Описание ЗИП/ТМЦ",
|
||
"map": "Part.description",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Серийный номер запасных частей / инструментов / расходников",
|
||
"map": "Part.serialNumber",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.PartUpdate",
|
||
"description": "Тело запроса на обновление ЗИП/ТМЦ (частичное обновление)",
|
||
"fields": [
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Название",
|
||
"map": "Part.name",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "categories",
|
||
"type": "CategoryPart",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Категории",
|
||
"map": "Part.categories",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "price",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость ЗИП/ТМЦ",
|
||
"map": "Part.price",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "description",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Описание ЗИП/ТМЦ",
|
||
"map": "Part.description",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Серийный номер запасных частей / инструментов / расходников",
|
||
"map": "Part.serialNumber",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.PartFilter",
|
||
"description": "Фильтры для списка ЗИП/ТМЦ",
|
||
"fields": [
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по названию",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "categories",
|
||
"type": "CategoryPart",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Точное совпадение по категории",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "serialNumber",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по серийному номеру",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.PartListRequest",
|
||
"description": "Запрос постраничного списка ЗИП/ТМЦ с фильтрацией",
|
||
"fields": [
|
||
{
|
||
"name": "filter",
|
||
"type": "DTO.PartFilter",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Фильтры",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageRequest",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Параметры пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.PartListResponse",
|
||
"description": "Ответ постраничного списка ЗИП/ТМЦ",
|
||
"fields": [
|
||
{
|
||
"name": "content",
|
||
"type": "DTO.Part[]",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Список ЗИП/ТМЦ",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageInfo",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Метаданные пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.CategoryResource",
|
||
"description": "Категория ресурсов — полный response-объект",
|
||
"fields": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Идентификатор категории ресурсов",
|
||
"map": "CategoryResource.id",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "part",
|
||
"type": "DTO.Part",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "ЗИП/ТМЦ",
|
||
"map": "CategoryResource.part",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "employee",
|
||
"type": "DTO.Employee",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Сотрудник",
|
||
"map": "CategoryResource.employee",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.CategoryResourceCreate",
|
||
"description": "Тело запроса на создание категории ресурсов",
|
||
"fields": [
|
||
{
|
||
"name": "partId",
|
||
"type": "uuid",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Идентификатор ЗИП/ТМЦ",
|
||
"map": "CategoryResource.part",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "employeeCode",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Код сотрудника",
|
||
"map": "CategoryResource.employee",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.CategoryResourceUpdate",
|
||
"description": "Тело запроса на обновление категории ресурсов (частичное обновление)",
|
||
"fields": [
|
||
{
|
||
"name": "partId",
|
||
"type": "uuid",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Идентификатор ЗИП/ТМЦ",
|
||
"map": "CategoryResource.part",
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "employeeCode",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Код сотрудника",
|
||
"map": "CategoryResource.employee",
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.CategoryResourceFilter",
|
||
"description": "Фильтры для списка категорий ресурсов",
|
||
"fields": [
|
||
{
|
||
"name": "partName",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по названию ЗИП/ТМЦ",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "employeeName",
|
||
"type": "string",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Частичное совпадение по ФИО сотрудника",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.CategoryResourceListRequest",
|
||
"description": "Запрос постраничного списка категорий ресурсов с фильтрацией",
|
||
"fields": [
|
||
{
|
||
"name": "filter",
|
||
"type": "DTO.CategoryResourceFilter",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Фильтры",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageRequest",
|
||
"required": false,
|
||
"nullable": true,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Параметры пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.CategoryResourceListResponse",
|
||
"description": "Ответ постраничного списка категорий ресурсов",
|
||
"fields": [
|
||
{
|
||
"name": "content",
|
||
"type": "DTO.CategoryResource[]",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Список категорий ресурсов",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "DTO.PageInfo",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Метаданные пагинации",
|
||
"map": null,
|
||
"sync": false,
|
||
"label": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DTO.PriceList",
|
||
"description": "Регистр цен — response-объект",
|
||
"fields": [
|
||
{
|
||
"name": "costOfWorkingHours",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость часов работы",
|
||
"map": "Employee.price",
|
||
"sync": true,
|
||
"label": null
|
||
},
|
||
{
|
||
"name": "partPrice",
|
||
"type": "number",
|
||
"required": false,
|
||
"nullable": false,
|
||
"unique": false,
|
||
"primary": false,
|
||
"description": "Стоимость ЗИП/ТМЦ",
|
||
"map": "Part.price",
|
||
"sync": true,
|
||
"label": null
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"apis": [
|
||
{
|
||
"name": "API.Equipment",
|
||
"description": "API управления справочником оборудования",
|
||
"endpoints": [
|
||
{
|
||
"name": "getEquipmentById",
|
||
"label": "GET /equipments/{id}",
|
||
"method": "GET",
|
||
"path": "/equipments/{id}",
|
||
"description": "Получить оборудование по идентификатору",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор оборудования"
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.Equipment",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "listEquipments",
|
||
"label": "POST /equipments/page",
|
||
"method": "POST",
|
||
"path": "/equipments/page",
|
||
"description": "Постраничный список оборудования с фильтрацией",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.EquipmentListRequest",
|
||
"description": null
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.EquipmentListResponse",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "createEquipment",
|
||
"label": "POST /equipments",
|
||
"method": "POST",
|
||
"path": "/equipments",
|
||
"description": "Создать единицу оборудования",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.EquipmentCreate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "updateEquipment",
|
||
"label": "PUT /equipments/{id}",
|
||
"method": "PUT",
|
||
"path": "/equipments/{id}",
|
||
"description": "Обновить оборудование",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор оборудования"
|
||
},
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.EquipmentUpdate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "deleteEquipment",
|
||
"label": "DELETE /equipments/{id}",
|
||
"method": "DELETE",
|
||
"path": "/equipments/{id}",
|
||
"description": "Удалить единицу оборудования",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор оборудования"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "API.Employee",
|
||
"description": "API управления справочником сотрудников",
|
||
"endpoints": [
|
||
{
|
||
"name": "getEmployeeByCode",
|
||
"label": "GET /employees/{code}",
|
||
"method": "GET",
|
||
"path": "/employees/{code}",
|
||
"description": "Получить сотрудника по табельному номеру",
|
||
"attributes": [
|
||
{
|
||
"name": "code",
|
||
"type": "string",
|
||
"description": "Табельный номер сотрудника"
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.Employee",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "listEmployees",
|
||
"label": "POST /employees/page",
|
||
"method": "POST",
|
||
"path": "/employees/page",
|
||
"description": "Постраничный список сотрудников с фильтрацией",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.EmployeeListRequest",
|
||
"description": null
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.EmployeeListResponse",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "createEmployee",
|
||
"label": "POST /employees",
|
||
"method": "POST",
|
||
"path": "/employees",
|
||
"description": "Создать сотрудника",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.EmployeeCreate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "updateEmployee",
|
||
"label": "PUT /employees/{code}",
|
||
"method": "PUT",
|
||
"path": "/employees/{code}",
|
||
"description": "Обновить сотрудника",
|
||
"attributes": [
|
||
{
|
||
"name": "code",
|
||
"type": "string",
|
||
"description": "Табельный номер сотрудника"
|
||
},
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.EmployeeUpdate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "deleteEmployee",
|
||
"label": "DELETE /employees/{code}",
|
||
"method": "DELETE",
|
||
"path": "/employees/{code}",
|
||
"description": "Удалить сотрудника",
|
||
"attributes": [
|
||
{
|
||
"name": "code",
|
||
"type": "string",
|
||
"description": "Табельный номер сотрудника"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "API.Part",
|
||
"description": "API управления справочником ЗИП/ТМЦ",
|
||
"endpoints": [
|
||
{
|
||
"name": "getPartById",
|
||
"label": "GET /parts/{id}",
|
||
"method": "GET",
|
||
"path": "/parts/{id}",
|
||
"description": "Получить ЗИП/ТМЦ по идентификатору",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор ЗИП/ТМЦ"
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.Part",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "listParts",
|
||
"label": "POST /parts/page",
|
||
"method": "POST",
|
||
"path": "/parts/page",
|
||
"description": "Постраничный список ЗИП/ТМЦ с фильтрацией",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.PartListRequest",
|
||
"description": null
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.PartListResponse",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "createPart",
|
||
"label": "POST /parts",
|
||
"method": "POST",
|
||
"path": "/parts",
|
||
"description": "Создать ЗИП/ТМЦ",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.PartCreate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "updatePart",
|
||
"label": "PUT /parts/{id}",
|
||
"method": "PUT",
|
||
"path": "/parts/{id}",
|
||
"description": "Обновить ЗИП/ТМЦ",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор ЗИП/ТМЦ"
|
||
},
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.PartUpdate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "deletePart",
|
||
"label": "DELETE /parts/{id}",
|
||
"method": "DELETE",
|
||
"path": "/parts/{id}",
|
||
"description": "Удалить ЗИП/ТМЦ",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор ЗИП/ТМЦ"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "API.CategoryResource",
|
||
"description": "API управления категориями ресурсов",
|
||
"endpoints": [
|
||
{
|
||
"name": "getCategoryResourceById",
|
||
"label": "GET /category-resources/{id}",
|
||
"method": "GET",
|
||
"path": "/category-resources/{id}",
|
||
"description": "Получить категорию ресурсов по идентификатору",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор категории ресурсов"
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.CategoryResource",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "listCategoryResources",
|
||
"label": "POST /category-resources/page",
|
||
"method": "POST",
|
||
"path": "/category-resources/page",
|
||
"description": "Постраничный список категорий ресурсов с фильтрацией",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.CategoryResourceListRequest",
|
||
"description": null
|
||
},
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.CategoryResourceListResponse",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "createCategoryResource",
|
||
"label": "POST /category-resources",
|
||
"method": "POST",
|
||
"path": "/category-resources",
|
||
"description": "Создать категорию ресурсов",
|
||
"attributes": [
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.CategoryResourceCreate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "updateCategoryResource",
|
||
"label": "PUT /category-resources/{id}",
|
||
"method": "PUT",
|
||
"path": "/category-resources/{id}",
|
||
"description": "Обновить категорию ресурсов",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор категории ресурсов"
|
||
},
|
||
{
|
||
"name": "request",
|
||
"type": "DTO.CategoryResourceUpdate",
|
||
"description": null
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "deleteCategoryResource",
|
||
"label": "DELETE /category-resources/{id}",
|
||
"method": "DELETE",
|
||
"path": "/category-resources/{id}",
|
||
"description": "Удалить категорию ресурсов",
|
||
"attributes": [
|
||
{
|
||
"name": "id",
|
||
"type": "uuid",
|
||
"description": "Идентификатор категории ресурсов"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "API.PriceList",
|
||
"description": "API получения регистра цен",
|
||
"endpoints": [
|
||
{
|
||
"name": "getPriceList",
|
||
"label": "GET /price-list",
|
||
"method": "GET",
|
||
"path": "/price-list",
|
||
"description": "Получить регистр цен",
|
||
"attributes": [
|
||
{
|
||
"name": "response",
|
||
"type": "DTO.PriceList",
|
||
"description": null
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|