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()