from pydantic import BaseModel from typing import Optional from datetime import datetime class BeatBase(BaseModel): title: str description: Optional[str] = None price: float genre: str bpm: Optional[int] = None key: Optional[str] = None class BeatCreate(BeatBase): pass class BeatUpdate(BaseModel): title: Optional[str] = None description: Optional[str] = None price: Optional[float] = None genre: Optional[str] = None bpm: Optional[int] = None key: Optional[str] = None is_available: Optional[bool] = None class BeatResponse(BeatBase): id: int file_path: str preview_path: Optional[str] = None artwork_path: Optional[str] = None is_available: bool producer_id: int created_at: datetime updated_at: datetime class Config: from_attributes = True