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