2025-03-26 13:31:49 +00:00

38 lines
1.2 KiB
Python

from pydantic import BaseModel, Field
from typing import Optional
from decimal import Decimal
class SoapBase(BaseModel):
name: str = Field(..., index=True, min_length=1, max_length=100)
brand: str = Field(..., min_length=1, max_length=100)
description: Optional[str] = None
price: Decimal = Field(..., ge=0, decimal_places=2)
weight: Decimal = Field(..., ge=0, decimal_places=2)
ingredients: Optional[str] = None
stock_quantity: int = Field(default=0, ge=0)
is_available: bool = Field(default=True)
fragrance: Optional[str] = None
type: Optional[str] = None
class SoapCreate(SoapBase):
class Config:
schema_extra = {
"example": {
"name": "Lavender Dreams",
"brand": "Natural Care",
"description": "Relaxing lavender soap bar",
"price": "5.99",
"weight": "100.00",
"ingredients": "Coconut oil, lavender essential oil, sodium hydroxide",
"stock_quantity": 100,
"is_available": True,
"fragrance": "Lavender",
"type": "Bar soap"
}
}
class Soap(SoapBase):
id: int = Field(..., gt=0)
class Config:
orm_mode = True