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>
55 lines
1.1 KiB
Python
55 lines
1.1 KiB
Python
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class ComandaRequest(BaseModel):
|
|
tip_id: int
|
|
id_masiniclient: int
|
|
solicitari: str
|
|
id_firma: int
|
|
id_sucursala: Optional[int] = None
|
|
|
|
|
|
class ComandaResponse(BaseModel):
|
|
id_ordl: int
|
|
nrord: str
|
|
mesaj: str
|
|
|
|
|
|
class FirmaItem(BaseModel):
|
|
id_firma: int
|
|
firma: str
|
|
schema_name: str
|
|
id_mama: Optional[int] = None
|
|
|
|
|
|
class TipDevizItem(BaseModel):
|
|
id_tip: int
|
|
denumire: str
|
|
inch_validare: int
|
|
|
|
|
|
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
|