Inspecții
Inspecțiile digitale (verificări multi-punct) rulează pe baza unor șabloane reutilizabile. O inspecție este execuția unui șablon pentru o anumită comandă de service: la pornire, item-ele sale sunt pre-populate din item-ele șablonului, iar mecanicul completează fiecare rezultat (pass / advise / fail / n_a).
Endpoint-uri
| Metodă | Cale | Descriere |
|---|---|---|
| GET | /api/v1/service/inspection-templates | Listează șabloanele active (cu item-ele lor). |
| POST | /api/v1/service/inspection-templates | Creează un șablon. |
| POST | /api/v1/service/work-orders/{id}/inspections | Pornește o inspecție pentru o comandă. |
| GET | /api/v1/service/inspections/{id} | Citește o inspecție (cu item-e și șablon). |
| PATCH | /api/v1/service/inspections/{id}/items/{itemId} | Înregistrează rezultatul unui item. |
| POST | /api/v1/service/inspections/{id}/complete | Finalizează inspecția și calculează rezultatul general. |
Șabloane
Creare șablon
| Câmp | Tip | Obligatoriu | Note |
|---|---|---|---|
name | string ≤ 128 | da | Numele șablonului. |
applies_to_kinds | array | nu | Filtru pe tipuri de vehicul. |
items | array | nu | Item-ele șablonului (vezi mai jos). |
items[].prompt | string ≤ 255 | da | Întrebarea / punctul de verificat. |
items[].response_type | enum | da | pass_fail_advise | numeric | text | photo | choice | signature. |
items[].section | string ≤ 64 | nu | Grupare (ex. Frâne). |
items[].unit | string ≤ 16 | nu | Unitate (ex. mm, psi, Nm). |
curl -X POST https://tenant.notsowms.ro/api/v1/service/inspection-templates \
-H "Authorization: Bearer tenant.7c4a8d09ca3762af61e59520943dc26494f8941b" \
-H "Content-Type: application/json" \
-d '{
"name": "Inspecție revizie moto",
"applies_to_kinds": ["motorcycle"],
"items": [
{ "section": "Frâne", "prompt": "Grosime plăcuțe față", "response_type": "numeric", "unit": "mm" },
{ "section": "Frâne", "prompt": "Stare disc față", "response_type": "pass_fail_advise" },
{ "section": "Anvelope", "prompt": "Presiune față", "response_type": "numeric", "unit": "psi" }
]
}'Pornirea unei inspecții
curl -X POST https://tenant.notsowms.ro/api/v1/service/work-orders/901/inspections \
-H "Authorization: Bearer tenant.7c4a8d09ca3762af61e59520943dc26494f8941b" \
-H "Content-Type: application/json" \
-d '{ "inspection_template_id": 7 }'| Câmp | Tip | Obligatoriu | Note |
|---|---|---|---|
inspection_template_id | integer | da | FK la inspection_templates. |
Creează inspecția în in_progress și pre-populează un item pentru fiecare item din șablon. Răspuns 201 cu inspecția și item-ele ei.
Înregistrarea unui rezultat
curl -X PATCH https://tenant.notsowms.ro/api/v1/service/inspections/333/items/12 \
-H "Authorization: Bearer tenant.7c4a8d09ca3762af61e59520943dc26494f8941b" \
-H "Content-Type: application/json" \
-d '{ "result": "advise", "numeric_value": 2.5, "notes": "Plăcuțe aproape de limită." }'| Câmp | Tip | Note |
|---|---|---|
result | enum | pass | advise | fail | n_a. |
numeric_value | numeric | Pentru item-ele de tip numeric. |
text_value | text | Pentru item-ele de tip text. |
choice_value | string ≤ 64 | Pentru item-ele de tip choice. |
notes | text | Observații libere. |
Item-ul trebuie să aparțină inspecției din URL; altfel răspunsul este 404.
Finalizare
curl -X POST https://tenant.notsowms.ro/api/v1/service/inspections/333/complete \
-H "Authorization: Bearer tenant.7c4a8d09ca3762af61e59520943dc26494f8941b"Setează status = completed, completed_at = acum și calculează overall_result: dacă există vreun fail → fail; altfel dacă există vreun advise → advise; altfel pass.
Inspecția finalizată poate fi apoi confirmată de client din pagina publică de urmărire.