from pydantic import BaseModel, Field from typing import Optional from datetime import datetime from uuid import UUID class FlowerBase(BaseModel): name: str = Field(..., index=True, min_length=1, max_length=100) scientific_name: Optional[str] = Field(None, max_length=150) description: Optional[str] = None color: Optional[str] = Field(None, max_length=50) bloom_season: Optional[str] = Field(None, max_length=50) height: Optional[int] = Field(None, ge=0) sunlight_needs: Optional[str] = Field(None, max_length=50) water_needs: Optional[str] = Field(None, max_length=50) is_perennial: bool = True hardiness_zone: Optional[str] = Field(None, max_length=50) class FlowerCreate(FlowerBase): class Config: schema_extra = { "example": { "name": "Rose", "scientific_name": "Rosa", "description": "A woody perennial flowering plant", "color": "Red", "bloom_season": "Summer", "height": 100, "sunlight_needs": "Full sun", "water_needs": "Moderate", "is_perennial": True, "hardiness_zone": "6-9" } } class Flower(FlowerBase): id: UUID created_at: datetime updated_at: datetime class Config: orm_mode = True