feat(service-auto): phase 2 — comenzi browse, id_sucursala, cache, migrare SQL
Backend: - GET /api/service-auto/comenzi cu paginare server-side, filtre dată/status - ComandaRequest.id_sucursala (Optional) + FirmaItem.id_mama - get_firme() expune id_mama din V_NOM_FIRME - callproc SP_CREEAZA_COMANDA_PROTOTIP cu 7 argumente (+ p_id_sucursala) - Cache TTL in-process: tip_deviz 24h, masini 5min Frontend: - ComenziBrowseView.vue — DataTable lazy + filtre + status badges - ComandaNoua.vue — company store integration, idSucursala computed - service-auto/stores/sharedStores.js (createCompaniesStore factory) - HamburgerMenu: secțiune Service Auto (Comenzi + Comandă Nouă) - router: /service-auto/comenzi SQL: - migrations/ff_2026_04_12_01_AUTO.sql — idempotent (COLUMNEXIST guard + CREATE OR REPLACE SP) - onboarding_roa_web.sql — versioned, parametrizat cu :SCHEMA_NAME - .claude/rules/oracle-migrations.md — convenție ff_YYYY_MM_DD_NN_MODULE.sql Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
from typing import List, Optional
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
@@ -6,6 +8,7 @@ class ComandaRequest(BaseModel):
|
||||
id_masiniclient: int
|
||||
solicitari: str
|
||||
id_firma: int
|
||||
id_sucursala: Optional[int] = None
|
||||
|
||||
|
||||
class ComandaResponse(BaseModel):
|
||||
@@ -18,6 +21,7 @@ class FirmaItem(BaseModel):
|
||||
id_firma: int
|
||||
firma: str
|
||||
schema_name: str
|
||||
id_mama: Optional[int] = None
|
||||
|
||||
|
||||
class TipDevizItem(BaseModel):
|
||||
@@ -29,3 +33,22 @@ class TipDevizItem(BaseModel):
|
||||
class MasinaClientItem(BaseModel):
|
||||
id_masiniclient: int
|
||||
label: str # "PARTENER — MARCA MASINA, NRINMAT (ANFABRICATIE)"
|
||||
|
||||
|
||||
class ComandaListItem(BaseModel):
|
||||
id_ordl: int
|
||||
nrord: str
|
||||
datai: Optional[str] # ISO date "YYYY-MM-DD"
|
||||
validat: int # 0=deschisă, 1=validată
|
||||
inchis_fortat: int # 1=arhivată fără validare
|
||||
id_tip: int
|
||||
tip_denumire: str
|
||||
vehicul: str # "PARTENER — MARCA MASINA, NRINMAT (AN)"
|
||||
id_masiniclient: Optional[int]
|
||||
|
||||
|
||||
class ComandaListResponse(BaseModel):
|
||||
comenzi: List[ComandaListItem]
|
||||
total: int
|
||||
page: int
|
||||
per_page: int
|
||||
|
||||
Reference in New Issue
Block a user