Vehicule
Parcul de vehicule al atelierului — motociclete, ATV-uri, UTV-uri, scutere etc. Un vehicul poate fi legat de un client prin customer_id, dar poate exista și fără proprietar (ex. unitate în consignație).
Endpoint-uri
| Metodă | Cale | Descriere |
|---|---|---|
| GET | /api/v1/service/vehicles | Listă paginată; filtre customer_id, search. |
| GET | /api/v1/service/vehicles/{id} | Citește un vehicul (cu client și istoricul proprietarilor). |
| POST | /api/v1/service/vehicles | Creează un vehicul. |
| PUT | /api/v1/service/vehicles/{id} | Actualizează un vehicul. |
| DELETE | /api/v1/service/vehicles/{id} | Soft-delete. |
Filtre la listare
| Parametru | Tip | Note |
|---|---|---|
customer_id | integer | Doar vehiculele unui client. |
search | string | Caută în make, model, registration_plate, frame_number, vin. |
per_page | integer | Implicit 50. |
Schema unui vehicul
La POST, vehicle_kind, make și model sunt obligatorii. La PUT, toate sunt opționale.
| Câmp | Tip | Note |
|---|---|---|
customer_id | integer | FK la customers. Trebuie să existe. |
vehicle_kind | enum | motorcycle | atv | utv | scooter | moped | snowmobile | pwc | bicycle | other. Obligatoriu la POST. |
make | string ≤ 64 | Marcă. Obligatoriu la POST. |
model | string ≤ 128 | Model. Obligatoriu la POST. |
model_year | integer | 1900–2100. |
model_variant | string ≤ 64 | Variantă / versiune. |
frame_number | string ≤ 32 | Serie de șasiu (nu este unică între tenanți). |
vin | string ≤ 17 | VIN (17 caractere). |
engine_number | string ≤ 32 | Serie motor. |
registration_plate | string ≤ 16 | Număr de înmatriculare. |
registration_country | string (2) | Cod ISO 3166-1 alpha-2. |
first_registration_date | date | Prima înmatriculare. |
engine_cc | integer ≥ 0 | Capacitate cilindrică (cm³). |
engine_kw | numeric ≥ 0 | Putere (kW). |
color | string ≤ 32 | |
key_code | string ≤ 32 | Cod cheie (criptat la stocare). |
immobiliser_code | string ≤ 64 | Cod imobilizator (criptat la stocare). |
current_odometer | integer ≥ 0 | Kilometraj / ore curente. |
odometer_unit | enum | km | mi | hr. |
notes | text | |
attributes | array / object | JSON liber (anvelope, combustibil, modificări etc.). |
status | enum | active | sold | scrapped | stolen | archived. |
Exemplu — creare vehicul
bash
curl -X POST https://tenant.notsowms.ro/api/v1/service/vehicles \
-H "Authorization: Bearer tenant.7c4a8d09ca3762af61e59520943dc26494f8941b" \
-H "Content-Type: application/json" \
-d '{
"customer_id": 42,
"vehicle_kind": "motorcycle",
"make": "Yamaha",
"model": "MT-07",
"model_year": 2024,
"vin": "JYARM33E5PA001234",
"registration_plate": "B123XYZ",
"engine_cc": 689,
"current_odometer": 8450,
"odometer_unit": "km"
}'Răspuns 201:
json
{
"data": {
"id": 17,
"customer_id": 42,
"vehicle_kind": "motorcycle",
"make": "Yamaha",
"model": "MT-07",
"model_year": 2024,
"registration_plate": "B123XYZ",
"engine_cc": 689,
"current_odometer": 8450,
"odometer_unit": "km",
"status": "active",
"created_at": "2026-05-25T09:20:11.000000Z",
"updated_at": "2026-05-25T09:20:11.000000Z"
}
}Crearea și actualizarea unui vehicul emit un eveniment pe canalul tenant.{tenantId}.vehicles (Reverb).