simulation_result.py 862 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. """Simulation result schemas."""
  2. from datetime import datetime
  3. from typing import Any
  4. from pydantic import BaseModel, Field
  5. class ResultCreate(BaseModel):
  6. run_index: int = 0
  7. status: str = "OK"
  8. solve_time_s: float = 0.0
  9. params: dict[str, Any] = Field(default_factory=dict)
  10. metrics: dict[str, Any] = Field(default_factory=dict)
  11. error_message: str = ""
  12. class ResultBatchCreate(BaseModel):
  13. """Batch upload results from scan_results.csv."""
  14. results: list[ResultCreate]
  15. class ResultResponse(BaseModel):
  16. id: int
  17. plan_id: int
  18. run_index: int
  19. status: str
  20. solve_time_s: float
  21. params: dict[str, Any]
  22. metrics: dict[str, Any]
  23. error_message: str
  24. created_at: datetime
  25. class Config:
  26. from_attributes = True
  27. class ResultListResponse(BaseModel):
  28. total: int
  29. items: list[ResultResponse]