| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- """Project schemas."""
- from datetime import datetime
- from typing import Optional, Any
- from pydantic import BaseModel, Field
- class ProjectCreate(BaseModel):
- name: str = Field(..., min_length=1, max_length=200)
- description: str = ""
- topology: str = "SSSR"
- model_path: str = ""
- boundary_conditions: dict[str, Any] = Field(default_factory=dict)
- class ProjectUpdate(BaseModel):
- name: Optional[str] = None
- description: Optional[str] = None
- topology: Optional[str] = None
- model_path: Optional[str] = None
- status: Optional[str] = None
- boundary_conditions: Optional[dict[str, Any]] = None
- class ProjectResponse(BaseModel):
- id: int
- name: str
- description: str
- topology: str
- model_path: str
- status: str
- boundary_conditions: dict[str, Any]
- plan_count: int = 0
- created_at: datetime
- updated_at: datetime
- class Config:
- from_attributes = True
- class ProjectListResponse(BaseModel):
- total: int
- items: list[ProjectResponse]
|