O2Sound_ver2_final/backend/app/repositories/music_repository.py

25 lines
952 B
Python

from sqlalchemy.orm import Session
from app.domain.models.music import Music
from app.repositories.base_repository import BaseRepository
from uuid import UUID
from typing import Optional, List
class MusicRepository(BaseRepository[Music]):
'''음악 레포지토리'''
def __init__(self, db: Session):
super().__init__(Music, db)
def get_by_order_id(self, order_id: UUID) -> Optional[Music]:
'''주문 ID로 음악 조회 (is_selected=True인 것 우선)'''
return self.db.query(Music).filter(
Music.order_id == order_id,
Music.deleted == False
).order_by(Music.is_selected.desc(), Music.index).first()
def get_all_by_order_id(self, order_id: UUID) -> List[Music]:
'''주문 ID로 모든 음악 조회'''
return self.db.query(Music).filter(
Music.order_id == order_id,
Music.deleted == False
).order_by(Music.index).all()