import uuid from typing import List from sqlalchemy.orm import Session from app.crud.base import CRUDBase from app.models.album import Album from app.schemas.album import AlbumCreate, AlbumUpdate class CRUDAlbum(CRUDBase[Album, AlbumCreate, AlbumUpdate]): def create(self, db: Session, *, obj_in: AlbumCreate) -> Album: album_id = str(uuid.uuid4()) db_obj = Album( id=album_id, title=obj_in.title, artist_id=obj_in.artist_id, release_year=obj_in.release_year, cover_image=obj_in.cover_image, description=obj_in.description, ) db.add(db_obj) db.commit() db.refresh(db_obj) return db_obj def get_by_artist(self, db: Session, *, artist_id: str, skip: int = 0, limit: int = 100) -> List[Album]: return db.query(Album).filter(Album.artist_id == artist_id).offset(skip).limit(limit).all() def search_by_title(self, db: Session, *, title: str, skip: int = 0, limit: int = 100) -> List[Album]: return db.query(Album).filter(Album.title.ilike(f"%{title}%")).offset(skip).limit(limit).all() album = CRUDAlbum(Album)