from pydantic import BaseModel, Field from typing import Optional from datetime import datetime from uuid import UUID from enum import Enum class SoapColor(str, Enum): RED = "red" BLUE = "blue" GREEN = "green" class SoapBase(BaseModel): name: str = Field(..., description="Name of the soap") color: SoapColor = Field(..., description="Color of the soap") class SoapCreate(SoapBase): pass class SoapUpdate(SoapBase): name: Optional[str] = Field(None, description="Updated name of the soap") color: Optional[SoapColor] = Field(None, description="Updated color of the soap") class SoapSchema(SoapBase): id: UUID created_at: datetime updated_at: datetime class Config: orm_mode = True