Initial commit — PlantGuideScraper project
This commit is contained in:
47
backend/app/schemas/image.py
Normal file
47
backend/app/schemas/image.py
Normal file
@@ -0,0 +1,47 @@
|
||||
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
|
||||
Reference in New Issue
Block a user