Add Food schema

This commit is contained in:
Backend IM Bot 2025-03-28 15:59:14 +00:00
parent ea4ee774e6
commit 577d40634b

View File

@ -1,28 +1,38 @@
from pydantic import BaseModel, Field
from typing import Optional, Union
from typing import Optional
from uuid import UUID
# Base schema
class FoodBase(BaseModel):
name: str = Field(..., description="Name of the food item")
description: Optional[str] = Field(None, description="Description of the food item")
price: float = Field(..., gt=0, description="Price of the food item")
is_available: bool = Field(True, description="Availability status of the food item")
category: Optional[str] = Field(None, description="Category of the food item")
cuisine: Optional[str] = Field(None, description="Cuisine of the food item")
allergens: Optional[Union[list, dict]] = Field(None, description="Allergens present in the food item")
category_id: UUID = Field(..., description="ID of the food category")
# Schema for creating a new Food
class FoodCreate(FoodBase):
pass
class FoodResponse(FoodBase):
class Config:
schema_extra = {
"example": {
"name": "Margherita Pizza",
"description": "Classic Italian pizza with tomato sauce, mozzarella cheese, and fresh basil",
"name": "Pizza Margherita",
"description": "Classic Italian pizza with tomato sauce, mozzarella, and basil",
"price": 12.99,
"is_available": True,
"category": "Pizza",
"cuisine": "Italian",
"allergens": ["dairy", "wheat"]
"category_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
# Schema for Food responses
class Food(FoodBase):
id: UUID
class Config:
orm_mode = True
schema_extra = {
"example": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Pizza Margherita",
"description": "Classic Italian pizza with tomato sauce, mozzarella, and basil",
"price": 12.99,
"category_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}