Files
2026-04-12 09:54:27 -05:00

45 lines
864 B
Python

from pydantic import BaseModel
from datetime import datetime
from typing import Optional, List
class SpeciesBase(BaseModel):
scientific_name: str
common_name: Optional[str] = None
genus: Optional[str] = None
family: Optional[str] = None
class SpeciesCreate(SpeciesBase):
pass
class SpeciesUpdate(BaseModel):
scientific_name: Optional[str] = None
common_name: Optional[str] = None
genus: Optional[str] = None
family: Optional[str] = None
class SpeciesResponse(SpeciesBase):
id: int
created_at: datetime
image_count: int = 0
class Config:
from_attributes = True
class SpeciesListResponse(BaseModel):
items: List[SpeciesResponse]
total: int
page: int
page_size: int
pages: int
class SpeciesImportResponse(BaseModel):
imported: int
skipped: int
errors: List[str]