Files
PlantGuideScraper/backend/app/schemas/image.py
2026-04-12 09:54:27 -05:00

48 lines
1.0 KiB
Python

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