from datetime import datetime from typing import Optional from pydantic import BaseModel, Field class ReviewBase(BaseModel): product_id: int rating: float = Field(..., ge=1, le=5) comment: Optional[str] = None class ReviewCreate(ReviewBase): pass class ReviewUpdate(BaseModel): rating: Optional[float] = Field(None, ge=1, le=5) comment: Optional[str] = None class ReviewInDBBase(ReviewBase): id: int user_id: int created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True class Review(ReviewInDBBase): pass