25 lines
952 B
Python
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() |