from typing import Optional from datetime import date from pydantic import BaseModel # Shared properties class AlbumBase(BaseModel): title: Optional[str] = None release_date: Optional[date] = None cover_image_path: Optional[str] = None description: Optional[str] = None artist_id: Optional[int] = None # Properties to receive on album creation class AlbumCreate(AlbumBase): title: str artist_id: int # Properties to receive on album update class AlbumUpdate(AlbumBase): pass class AlbumInDBBase(AlbumBase): id: int title: str artist_id: int class Config: from_attributes = True # Properties to return to client class Album(AlbumInDBBase): pass # Properties stored in DB class AlbumInDB(AlbumInDBBase): pass