2025-06-02 11:37:11 +00:00

43 lines
937 B
Python

from typing import Optional
from pydantic import BaseModel, Field
# Shared properties
class ProductBase(BaseModel):
name: Optional[str] = None
sku: Optional[str] = None
description: Optional[str] = None
weight: Optional[float] = Field(None, description="Weight in kg")
dimensions: Optional[str] = Field(None, description="Format: 'length x width x height' in cm")
price: Optional[float] = None
is_active: Optional[bool] = True
# Properties to receive via API on creation
class ProductCreate(ProductBase):
name: str
sku: str
price: float
# Properties to receive via API on update
class ProductUpdate(ProductBase):
pass
class ProductInDBBase(ProductBase):
id: int
class Config:
from_attributes = True
# Additional properties to return via API
class Product(ProductInDBBase):
pass
# Additional properties stored in DB
class ProductInDB(ProductInDBBase):
pass