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

32 lines
1020 B
Python

import uuid
from typing import List, Optional
from sqlalchemy.orm import Session
from app.crud.base import CRUDBase
from app.models.artist import Artist
from app.schemas.artist import ArtistCreate, ArtistUpdate
class CRUDArtist(CRUDBase[Artist, ArtistCreate, ArtistUpdate]):
def create(self, db: Session, *, obj_in: ArtistCreate) -> Artist:
artist_id = str(uuid.uuid4())
db_obj = Artist(
id=artist_id,
name=obj_in.name,
bio=obj_in.bio,
image=obj_in.image,
)
db.add(db_obj)
db.commit()
db.refresh(db_obj)
return db_obj
def get_by_name(self, db: Session, *, name: str) -> Optional[Artist]:
return db.query(Artist).filter(Artist.name == name).first()
def search_by_name(self, db: Session, *, name: str, skip: int = 0, limit: int = 100) -> List[Artist]:
return db.query(Artist).filter(Artist.name.ilike(f"%{name}%")).offset(skip).limit(limit).all()
artist = CRUDArtist(Artist)