43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from datetime import date, datetime, timezone
|
|
from typing import Optional
|
|
from sqlmodel import Field, SQLModel
|
|
|
|
|
|
class RecolteCreate(SQLModel):
|
|
quantite: float
|
|
unite: str = "kg" # kg|g|unites|litres|bottes
|
|
date_recolte: date
|
|
notes: Optional[str] = None
|
|
|
|
|
|
class Recolte(SQLModel, table=True):
|
|
id: Optional[int] = Field(default=None, primary_key=True)
|
|
plantation_id: int = Field(foreign_key="planting.id", index=True)
|
|
quantite: float
|
|
unite: str = "kg"
|
|
date_recolte: date
|
|
notes: Optional[str] = None
|
|
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
|
|
|
|
|
class ObservationCreate(SQLModel):
|
|
type: str # maladie|ravageur|traitement|note
|
|
titre: str
|
|
description: Optional[str] = None
|
|
date: date
|
|
photo_url: Optional[str] = None
|
|
plantation_id: Optional[int] = None
|
|
garden_id: Optional[int] = None
|
|
|
|
|
|
class Observation(SQLModel, table=True):
|
|
id: Optional[int] = Field(default=None, primary_key=True)
|
|
type: str
|
|
titre: str
|
|
description: Optional[str] = None
|
|
date: date
|
|
photo_url: Optional[str] = None
|
|
plantation_id: Optional[int] = Field(default=None, foreign_key="planting.id")
|
|
garden_id: Optional[int] = Field(default=None, foreign_key="garden.id")
|
|
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|