Download OpenAPI specification:Download
Спецификация API мобильного приложения. Используйте для описания эндпоинтов /api/v1/mobile.
| email required | string <email> Email пользователя |
| password required | string <password> Пароль пользователя |
{- "email": "user@example.com",
- "password": "Password123"
}{- "success": true,
- "message": "Вход выполнен успешно",
- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
- "user": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5
}
}{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "message": "string",
- "data": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5,
- "email_verified_at": "2024-01-15T10:30:00Z",
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}{- "success": true,
- "message": "Вход выполнен успешно",
- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
- "user": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5
}
}{- "success": true,
- "message": "string",
- "data": [
- {
- "name": "string",
- "address": "string",
- "description": "string",
- "customer": "string",
- "designer": "string",
- "start_date": "string",
- "end_date": "string",
- "status": "string",
- "is_archived": true,
- "additional_info": [ ],
- "external_code": "string",
- "cost_category_id": 0,
- "accounting_data": [ ],
- "use_in_accounting_reports": true
}
]
}{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 1,
- "organization_id": 1,
- "project": {
- "id": 5,
- "name": "ЖК Солнечный",
- "address": "г. Москва, ул. Солнечная, д. 15",
- "status": "active"
}, - "contract": {
- "id": 1,
- "number": "ДПХ-2024/001",
- "total_amount": 2500000,
- "status": "active",
- "completion_percentage": 50,
- "contractor_name": "ООО Строймонтаж"
}, - "work_type": {
- "id": 5,
- "name": "Кладка кирпичных стен",
- "code": "KLAD-001",
- "category": "Каменные работы",
- "description": "Кладка несущих стен из керамического кирпича",
- "defaultPrice": 1250,
- "isActive": true,
- "organizationId": 10,
- "measurementUnit": {
- "id": 1,
- "name": "квадратный метр",
- "code": "м²",
- "short_name": "м²",
- "type": "material",
- "description": "Единица измерения площади",
- "is_default": false,
- "is_system": false,
- "organization_id": 10,
- "created_at": "2024-12-20T10:00:00Z",
- "updated_at": "2024-12-20T15:30:00Z"
}, - "createdAt": "2024-12-20 10:00:00",
- "updatedAt": "2024-12-20 15:30:00"
}, - "user": {
- "id": 12,
- "name": "Иванов Иван Иванович",
- "email": "ivanov@example.com",
- "phone": "+7 (900) 123-45-67",
- "position": "Прораб",
}, - "contractor": {
- "id": 3,
- "name": "ООО Строймонтаж",
- "inn": "7707083893",
- "contact_person": "Иванов И.И."
}, - "contractor_id": 3,
- "quantity": 150.5,
- "price": 500.25,
- "total_amount": 75187.5,
- "completion_date": "2024-02-15",
- "notes": "Работы выполнены качественно, в срок.",
- "status": "confirmed",
- "additional_info": {
- "quality_rating": 5,
- "weather_conditions": "солнечно"
}, - "materials": [
- {
- "material_id": 15,
- "material_name": "Цемент М500",
- "measurement_unit": "т",
- "quantity": 25.5,
- "unit_price": 150,
- "total_amount": 3825,
- "notes": "Высококачественный материал",
- "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
], - "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
]
}| project_id required | integer ID проекта, к которому относится работа. Проверяется через ProjectAccessibleRule. |
| contract_id | integer or null ID договора для данной работы (опционально, проверяется принадлежность проекту). |
| contractor_id | integer or null ID подрядчика, выполнившего работу (опционально). |
| work_type_id required | integer ID вида работы из каталога организации. |
| user_id required | integer ID пользователя (прораба), зафиксировавшего выполненную работу. |
| quantity required | number <float> >= 0.001 Количество выполненной работы (обязательно, мин 0.001). |
| price | number or null <float> >= 0 Цена за единицу работы (опционально, автоматически рассчитывается из total_amount). |
| total_amount | number or null <float> >= 0 Общая стоимость работы (опционально, автоматически рассчитывается из price * quantity или материалов). |
| completion_date required | string <date> Дата выполнения работы (формат YYYY-MM-DD). |
| notes | string or null <= 65535 characters Комментарии или примечания к работе (максимум 65535 символов). |
| status required | string Enum: "draft" "confirmed" "cancelled" Статус выполненной работы. |
| additional_info | object or null Дополнительная информация в формате JSON. |
Array of objects or null Список материалов, использованных в работе (опционально). |
{- "project_id": 1,
- "contract_id": 5,
- "contractor_id": 3,
- "work_type_id": 7,
- "user_id": 12,
- "quantity": 150.5,
- "price": 500.25,
- "total_amount": 75187.5,
- "completion_date": "2024-02-15",
- "notes": "Работы выполнены качественно, в срок. Использованы дополнительные материалы.",
- "status": "confirmed",
- "additional_info": {
- "quality_rating": 5,
- "weather_conditions": "солнечно",
- "foreman_notes": "отличная работа"
}, - "materials": [
- {
- "material_id": 15,
- "quantity": 25.5,
- "unit_price": 150,
- "total_amount": 3825,
- "notes": "Высококачественный материал"
}
]
}{- "success": true,
- "message": "Выполненная работа создана успешно.",
- "data": {
- "id": 1,
- "organization_id": 1,
- "project": {
- "id": 5,
- "name": "ЖК Солнечный",
- "address": "г. Москва, ул. Солнечная, д. 15",
- "status": "active"
}, - "contract": {
- "id": 1,
- "number": "ДПХ-2024/001",
- "total_amount": 2500000,
- "status": "active",
- "completion_percentage": 50,
- "contractor_name": "ООО Строймонтаж"
}, - "work_type": {
- "id": 5,
- "name": "Кладка кирпичных стен",
- "code": "KLAD-001",
- "category": "Каменные работы",
- "description": "Кладка несущих стен из керамического кирпича",
- "defaultPrice": 1250,
- "isActive": true,
- "organizationId": 10,
- "measurementUnit": {
- "id": 1,
- "name": "квадратный метр",
- "code": "м²",
- "short_name": "м²",
- "type": "material",
- "description": "Единица измерения площади",
- "is_default": false,
- "is_system": false,
- "organization_id": 10,
- "created_at": "2024-12-20T10:00:00Z",
- "updated_at": "2024-12-20T15:30:00Z"
}, - "createdAt": "2024-12-20 10:00:00",
- "updatedAt": "2024-12-20 15:30:00"
}, - "user": {
- "id": 12,
- "name": "Иванов Иван Иванович",
- "email": "ivanov@example.com",
- "phone": "+7 (900) 123-45-67",
- "position": "Прораб",
}, - "contractor": {
- "id": 3,
- "name": "ООО Строймонтаж",
- "inn": "7707083893",
- "contact_person": "Иванов И.И."
}, - "contractor_id": 3,
- "quantity": 150.5,
- "price": 500.25,
- "total_amount": 75187.5,
- "completion_date": "2024-02-15",
- "notes": "Работы выполнены качественно, в срок.",
- "status": "confirmed",
- "additional_info": {
- "quality_rating": 5,
- "weather_conditions": "солнечно"
}, - "materials": [
- {
- "material_id": 15,
- "material_name": "Цемент М500",
- "measurement_unit": "т",
- "quantity": 25.5,
- "unit_price": 150,
- "total_amount": 3825,
- "notes": "Высококачественный материал",
- "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
], - "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
}| completed_work required | integer |
{- "success": true,
- "message": "Выполненная работа создана успешно.",
- "data": {
- "id": 1,
- "organization_id": 1,
- "project": {
- "id": 5,
- "name": "ЖК Солнечный",
- "address": "г. Москва, ул. Солнечная, д. 15",
- "status": "active"
}, - "contract": {
- "id": 1,
- "number": "ДПХ-2024/001",
- "total_amount": 2500000,
- "status": "active",
- "completion_percentage": 50,
- "contractor_name": "ООО Строймонтаж"
}, - "work_type": {
- "id": 5,
- "name": "Кладка кирпичных стен",
- "code": "KLAD-001",
- "category": "Каменные работы",
- "description": "Кладка несущих стен из керамического кирпича",
- "defaultPrice": 1250,
- "isActive": true,
- "organizationId": 10,
- "measurementUnit": {
- "id": 1,
- "name": "квадратный метр",
- "code": "м²",
- "short_name": "м²",
- "type": "material",
- "description": "Единица измерения площади",
- "is_default": false,
- "is_system": false,
- "organization_id": 10,
- "created_at": "2024-12-20T10:00:00Z",
- "updated_at": "2024-12-20T15:30:00Z"
}, - "createdAt": "2024-12-20 10:00:00",
- "updatedAt": "2024-12-20 15:30:00"
}, - "user": {
- "id": 12,
- "name": "Иванов Иван Иванович",
- "email": "ivanov@example.com",
- "phone": "+7 (900) 123-45-67",
- "position": "Прораб",
}, - "contractor": {
- "id": 3,
- "name": "ООО Строймонтаж",
- "inn": "7707083893",
- "contact_person": "Иванов И.И."
}, - "contractor_id": 3,
- "quantity": 150.5,
- "price": 500.25,
- "total_amount": 75187.5,
- "completion_date": "2024-02-15",
- "notes": "Работы выполнены качественно, в срок.",
- "status": "confirmed",
- "additional_info": {
- "quality_rating": 5,
- "weather_conditions": "солнечно"
}, - "materials": [
- {
- "material_id": 15,
- "material_name": "Цемент М500",
- "measurement_unit": "т",
- "quantity": 25.5,
- "unit_price": 150,
- "total_amount": 3825,
- "notes": "Высококачественный материал",
- "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
], - "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
}| completed_work required | integer |
| project_id required | integer ID проекта, к которому относится работа. Проверяется через ProjectAccessibleRule. |
| contract_id | integer or null ID договора для данной работы (опционально, проверяется принадлежность проекту). |
| contractor_id | integer or null ID подрядчика, выполнившего работу (опционально). |
| work_type_id required | integer ID вида работы из каталога организации. |
| user_id required | integer ID пользователя (прораба), зафиксировавшего выполненную работу. |
| quantity required | number <float> >= 0.001 Количество выполненной работы (обязательно, мин 0.001). |
| price | number or null <float> >= 0 Цена за единицу работы (опционально, автоматически рассчитывается из total_amount). |
| total_amount | number or null <float> >= 0 Общая стоимость работы (опционально, автоматически рассчитывается из price * quantity или материалов). |
| completion_date required | string <date> Дата выполнения работы (формат YYYY-MM-DD). |
| notes | string or null <= 65535 characters Комментарии или примечания к работе (максимум 65535 символов). |
| status required | string Enum: "draft" "confirmed" "cancelled" Статус выполненной работы. |
| additional_info | object or null Дополнительная информация в формате JSON. |
Array of objects or null Список материалов, использованных в работе (опционально). |
{- "project_id": 1,
- "contract_id": 5,
- "contractor_id": 3,
- "work_type_id": 7,
- "user_id": 12,
- "quantity": 150.5,
- "price": 500.25,
- "total_amount": 75187.5,
- "completion_date": "2024-02-15",
- "notes": "Работы выполнены качественно, в срок. Использованы дополнительные материалы.",
- "status": "confirmed",
- "additional_info": {
- "quality_rating": 5,
- "weather_conditions": "солнечно",
- "foreman_notes": "отличная работа"
}, - "materials": [
- {
- "material_id": 15,
- "quantity": 25.5,
- "unit_price": 150,
- "total_amount": 3825,
- "notes": "Высококачественный материал"
}
]
}{- "success": true,
- "message": "Выполненная работа создана успешно.",
- "data": {
- "id": 1,
- "organization_id": 1,
- "project": {
- "id": 5,
- "name": "ЖК Солнечный",
- "address": "г. Москва, ул. Солнечная, д. 15",
- "status": "active"
}, - "contract": {
- "id": 1,
- "number": "ДПХ-2024/001",
- "total_amount": 2500000,
- "status": "active",
- "completion_percentage": 50,
- "contractor_name": "ООО Строймонтаж"
}, - "work_type": {
- "id": 5,
- "name": "Кладка кирпичных стен",
- "code": "KLAD-001",
- "category": "Каменные работы",
- "description": "Кладка несущих стен из керамического кирпича",
- "defaultPrice": 1250,
- "isActive": true,
- "organizationId": 10,
- "measurementUnit": {
- "id": 1,
- "name": "квадратный метр",
- "code": "м²",
- "short_name": "м²",
- "type": "material",
- "description": "Единица измерения площади",
- "is_default": false,
- "is_system": false,
- "organization_id": 10,
- "created_at": "2024-12-20T10:00:00Z",
- "updated_at": "2024-12-20T15:30:00Z"
}, - "createdAt": "2024-12-20 10:00:00",
- "updatedAt": "2024-12-20 15:30:00"
}, - "user": {
- "id": 12,
- "name": "Иванов Иван Иванович",
- "email": "ivanov@example.com",
- "phone": "+7 (900) 123-45-67",
- "position": "Прораб",
}, - "contractor": {
- "id": 3,
- "name": "ООО Строймонтаж",
- "inn": "7707083893",
- "contact_person": "Иванов И.И."
}, - "contractor_id": 3,
- "quantity": 150.5,
- "price": 500.25,
- "total_amount": 75187.5,
- "completion_date": "2024-02-15",
- "notes": "Работы выполнены качественно, в срок.",
- "status": "confirmed",
- "additional_info": {
- "quality_rating": 5,
- "weather_conditions": "солнечно"
}, - "materials": [
- {
- "material_id": 15,
- "material_name": "Цемент М500",
- "measurement_unit": "т",
- "quantity": 25.5,
- "unit_price": 150,
- "total_amount": 3825,
- "notes": "Высококачественный материал",
- "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
], - "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
}| completed_work required | integer |
required | Array of objects Список материалов для синхронизации (заменяет существующий список материалов). |
{- "materials": [
- {
- "material_id": 22,
- "quantity": 45,
- "unit_price": 225.5,
- "total_amount": 10147.5,
- "notes": "Синхронизация материалов после уточнения объемов"
}
]
}{- "success": true,
- "message": "Выполненная работа создана успешно.",
- "data": {
- "id": 1,
- "organization_id": 1,
- "project": {
- "id": 5,
- "name": "ЖК Солнечный",
- "address": "г. Москва, ул. Солнечная, д. 15",
- "status": "active"
}, - "contract": {
- "id": 1,
- "number": "ДПХ-2024/001",
- "total_amount": 2500000,
- "status": "active",
- "completion_percentage": 50,
- "contractor_name": "ООО Строймонтаж"
}, - "work_type": {
- "id": 5,
- "name": "Кладка кирпичных стен",
- "code": "KLAD-001",
- "category": "Каменные работы",
- "description": "Кладка несущих стен из керамического кирпича",
- "defaultPrice": 1250,
- "isActive": true,
- "organizationId": 10,
- "measurementUnit": {
- "id": 1,
- "name": "квадратный метр",
- "code": "м²",
- "short_name": "м²",
- "type": "material",
- "description": "Единица измерения площади",
- "is_default": false,
- "is_system": false,
- "organization_id": 10,
- "created_at": "2024-12-20T10:00:00Z",
- "updated_at": "2024-12-20T15:30:00Z"
}, - "createdAt": "2024-12-20 10:00:00",
- "updatedAt": "2024-12-20 15:30:00"
}, - "user": {
- "id": 12,
- "name": "Иванов Иван Иванович",
- "email": "ivanov@example.com",
- "phone": "+7 (900) 123-45-67",
- "position": "Прораб",
}, - "contractor": {
- "id": 3,
- "name": "ООО Строймонтаж",
- "inn": "7707083893",
- "contact_person": "Иванов И.И."
}, - "contractor_id": 3,
- "quantity": 150.5,
- "price": 500.25,
- "total_amount": 75187.5,
- "completion_date": "2024-02-15",
- "notes": "Работы выполнены качественно, в срок.",
- "status": "confirmed",
- "additional_info": {
- "quality_rating": 5,
- "weather_conditions": "солнечно"
}, - "materials": [
- {
- "material_id": 15,
- "material_name": "Цемент М500",
- "measurement_unit": "т",
- "quantity": 25.5,
- "unit_price": 150,
- "total_amount": 3825,
- "notes": "Высококачественный материал",
- "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
], - "created_at": "2024-02-15 10:30:00",
- "updated_at": "2024-02-15 14:45:00"
}
}| work_type_id required | integer ID типа работы |
{- "success": true,
- "message": "string",
- "data": [
- {
- "material_id": 0,
- "material_name": "string",
- "default_price": 0,
- "quantity": 0,
- "notes": "string",
- "measurement_unit": "string"
}
]
}