| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- """Pydantic schemas for local preset API."""
- from datetime import datetime
- from pydantic import BaseModel
- class LocalPresetResponse(BaseModel):
- """Local preset summary (without full setting blob)."""
- id: int
- name: str
- preset_type: str
- source: str
- filament_type: str | None = None
- filament_vendor: str | None = None
- nozzle_temp_min: int | None = None
- nozzle_temp_max: int | None = None
- pressure_advance: str | None = None
- default_filament_colour: str | None = None
- filament_cost: str | None = None
- filament_density: str | None = None
- compatible_printers: str | None = None
- inherits: str | None = None
- version: str | None = None
- created_at: datetime
- updated_at: datetime
- model_config = {"from_attributes": True}
- class LocalPresetDetail(LocalPresetResponse):
- """Full preset detail including the resolved setting JSON."""
- setting: dict
- class LocalPresetCreate(BaseModel):
- """Schema for manually creating a local preset."""
- name: str
- preset_type: str # filament, printer, process
- setting: dict
- class LocalPresetUpdate(BaseModel):
- """Schema for updating a local preset."""
- name: str | None = None
- setting: dict | None = None
- class LocalPresetsResponse(BaseModel):
- """Grouped local presets by type."""
- filament: list[LocalPresetResponse] = []
- printer: list[LocalPresetResponse] = []
- process: list[LocalPresetResponse] = []
- class ImportResponse(BaseModel):
- """Result of an import operation."""
- success: bool
- imported: int
- skipped: int
- errors: list[str] = []
|