from pydantic import BaseModel from datetime import datetime from typing import Optional, List class ImageBase(BaseModel): species_id: int source: str url: str license: str class ImageResponse(BaseModel): id: int species_id: int species_name: Optional[str] = None source: str source_id: Optional[str] = None url: str local_path: Optional[str] = None license: str attribution: Optional[str] = None width: Optional[int] = None height: Optional[int] = None quality_score: Optional[float] = None status: str created_at: datetime class Config: from_attributes = True class ImageListResponse(BaseModel): items: List[ImageResponse] total: int page: int page_size: int pages: int class ImageFilter(BaseModel): species_id: Optional[int] = None source: Optional[str] = None license: Optional[str] = None status: Optional[str] = None min_quality: Optional[float] = None search: Optional[str] = None