from datetime import datetime from typing import Optional from pydantic import BaseModel # Shared properties class AlbumBase(BaseModel): title: str artist_id: str release_year: Optional[int] = None cover_image: Optional[str] = None description: Optional[str] = None # Properties to receive via API on creation class AlbumCreate(AlbumBase): pass # Properties to receive via API on update class AlbumUpdate(AlbumBase): title: Optional[str] = None artist_id: Optional[str] = None class AlbumInDBBase(AlbumBase): id: str created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True # Additional properties to return via API class Album(AlbumInDBBase): pass # Additional properties stored in DB class AlbumInDB(AlbumInDBBase): pass