Service auto (moto / ATV)
Modulul Service transformă WMS-ul într-un atelier de service pentru motociclete, ATV-uri, UTV-uri, scutere și alte vehicule pe două/patru roți. Acoperă tot fluxul atelierului: clienți și parcul lor de vehicule, comenzi de service (RO — repair orders), devize cu aprobare per linie, inspecții pe bază de șabloane, pontajul mecanicilor, cererile de piese de la boxă către tejghea și o pagină publică de urmărire pentru client.
Activarea modulului
Toate endpoint-urile din această secțiune sunt protejate de modulul service. Dacă abonamentul tenantului nu are modulul activ, cererile returnează 403. Activează-l din Setări → Module (sau din panoul central de admin) înainte de a integra.
Pagina publică de urmărire (/api/track/...) verifică în plus modulul public_tracking și returnează 404 dacă acesta este inactiv.
Autentificare
Autentificarea este identică cu restul API-ului: Bearer token per tenant <slug>.<cheie> (vezi autentificare). Excepție: urmărirea publică nu cere niciun token — autorizarea se face exclusiv prin token-ul de urmărire din URL.
Grupuri de resurse
| Grup | Scop |
|---|---|
| Clienți | Persoane fizice și firme — proprietarii vehiculelor și ai comenzilor de service. |
| Vehicule | Parcul de vehicule (moto / ATV / UTV / …), cu serie de șasiu, VIN, kilometraj. |
| Comenzi de service | Ordinele de reparație (RO): creare, tranziții de status, boxe de lucru. |
| Devize | Devize versionate, trimitere către client, amendamente, decizii per linie. |
| Inspecții | Șabloane de inspecție și execuția lor per comandă (pass / advise / fail). |
| Coduri de manoperă | Cartea de tarife fixe (flat-rate book) — ore standard per operațiune. |
| Atelier | Cereri de piese boxă→tejghea și pontajul mecanicilor. |
| Urmărire publică | JSON public, fără autentificare, pentru pagina de status a clientului. |
Convenții
Bani: bani (cents) și puncte de bază (bps)
Toate sumele se exprimă în bani ca întreg (*_cents) — fără zecimale. 12500 înseamnă 125,00 RON.
Cotele de TVA se exprimă în puncte de bază (tax_rate_bps): 1900 = 19%, 2100 = 21%, 0 = scutit. Pe o linie de deviz, TVA-ul se calculează ca round(net * tax_rate_bps / 10000).
Statusurile unei comenzi de service
draft · received · diagnosing · estimate_pending · estimate_sent · estimate_approved · estimate_declined · in_progress · awaiting_parts · awaiting_customer · awaiting_sublet · qa · ready_for_pickup · completed · invoiced · paid · cancelled.
O comandă nouă pornește în received. Fiecare tranziție este jurnalizată în istoricul de status. Vezi comenzi de service.
Tipuri de vehicul (vehicle_kind)
motorcycle · atv · utv · scooter · moped · snowmobile · pwc · bicycle · other.
Forma răspunsurilor
Respectă convenția standard a API-ului:
- Resursă unică:
{ "data": { … } } - Listă paginată (
customers,vehicles,work-orders,labor-codes): paginatorul standard Laravel —{ "current_page": …, "data": [ … ], "per_page": …, "total": …, "links": [ … ], … }(vezi forma standard). - Listă nepaginată (
bays,inspection-templates,parts-requests):{ "data": [ … ] } - Ștergere / acțiune simplă:
{ "message": "…" } - Erori de validare:
422cu{ "message": "…", "errors": { "câmp": ["…"] } }
Real-time (Reverb)
Crearea/actualizarea vehiculelor și a comenzilor emit evenimente pe canalele tenantului (tenant.{tenantId}.vehicles, tenant.{tenantId}.work_orders), iar tabloul live al atelierului le consumă. Integrările pur REST le pot ignora.