2025-06-05 14:29:01 +00:00

34 lines
1.1 KiB
Python

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)