from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
class ItemBase(BaseModel):
name: str = Field(..., min_length=1, max_length=100, description="Item name")
description: Optional[str] = Field(None, max_length=500, description="Item description")
category: Optional[str] = Field(None, max_length=50, description="Item category")
class ItemCreate(ItemBase):
pass
class ItemUpdate(BaseModel):
name: Optional[str] = Field(None, min_length=1, max_length=100, description="Item name")
description: Optional[str] = Field(None, max_length=500, description="Item description")
category: Optional[str] = Field(None, max_length=50, description="Item category")
class ItemResponse(ItemBase):
id: str = Field(..., description="Unique item ID")
createdAt: str = Field(..., description="Creation timestamp")
updatedAt: str = Field(..., description="Last update timestamp")
class Config:
from_attributes = True
class ItemListResponse(BaseModel):
success: bool = True
data: list[ItemResponse]
count: int
class ItemSingleResponse(BaseModel):
success: bool = True
data: ItemResponse
class SearchResponse(BaseModel):
success: bool = True
data: list[ItemResponse]
count: int
query: str
class ErrorResponse(BaseModel):
success: bool = False
error: str
class HealthResponse(BaseModel):
success: bool = True
message: str
timestamp: str