feat(navigation): add prominent validation quickstart action

This commit is contained in:
Schubert Ferenc 2026-07-11 18:02:53 +02:00
parent 0bbcaba211
commit 9c6b184e39
28614 changed files with 4356173 additions and 23 deletions

View file

@ -53,12 +53,16 @@ from app.schemas.domain import (
ValidationRead,
ValidationReview,
ValidationUpdate,
QuickStartCreateRequest,
QuickStartCustomerData,
QuickStartValidationSummary,
UserCreate,
UserRead,
UserUpdate,
UserPasswordResetRequest,
)
from app.services.domain_service import CrudService, DomainServices
from app.services.quickstart_service import QuickStartService
from app.services.validation_workflow import ValidationWorkflowService
router = APIRouter(tags=["domain"], dependencies=[Depends(current_user)])
@ -204,6 +208,14 @@ def delete_customer(item_id: str, session: Session = Depends(get_session)):
return commit_delete(session, DomainServices(session).customers, item_id)
@router.get("/customers/{item_id}/quickstart-data", response_model=QuickStartCustomerData)
def customer_quickstart_data(item_id: str, session: Session = Depends(get_session)):
try:
return QuickStartService(session).customer_data(item_id)
except ValueError as exc:
raise HTTPException(status_code=404, detail=str(exc)) from exc
@router.get("/locations", response_model=PaginatedResponse[LocationRead])
def list_locations(params: dict = Depends(paging), session: Session = Depends(get_session)):
return DomainServices(session).locations.list(**params)
@ -338,11 +350,35 @@ def get_validation(item_id: str, session: Session = Depends(get_session)):
return item
@router.get("/devices/{item_id}/last-validation", response_model=QuickStartValidationSummary | None)
def last_device_validation(item_id: str, session: Session = Depends(get_session)):
try:
return QuickStartService(session).device_last_validation(item_id)
except ValueError as exc:
raise HTTPException(status_code=404, detail=str(exc)) from exc
@router.post("/validations", response_model=ValidationRead, status_code=201)
def create_validation(payload: ValidationCreate, session: Session = Depends(get_session)):
return commit_create(session, DomainServices(session).validations, payload)
@router.post("/validations/quick-start", response_model=ValidationRead, status_code=201)
def create_quick_start_validation(
payload: QuickStartCreateRequest,
session: Session = Depends(get_session),
me: User = Depends(current_user),
):
try:
validation = QuickStartService(session).create_validation(payload, me)
session.commit()
session.refresh(validation)
return validation
except ValueError as exc:
session.rollback()
raise HTTPException(status_code=422, detail=str(exc)) from exc
@router.put("/validations/{item_id}", response_model=ValidationRead)
def update_validation(
item_id: str, payload: ValidationUpdate, session: Session = Depends(get_session)