"""
背景音乐 API
===========

提供装修行业场景化 BGM 列表查询。
"""

from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession

from app.api.deps import get_db
from app.crud.bgm_music import bgm_music
from app.schemas.bgm_music import BgmMusicItem, BgmMusicListResponse
from app.schemas.common import ApiResponse

router = APIRouter()


@router.get("/bgm-musics", response_model=ApiResponse[BgmMusicListResponse])
async def list_bgm_musics(
    category: str | None = Query(None, description="场景分类筛选"),
    db: AsyncSession = Depends(get_db),
) -> ApiResponse[BgmMusicListResponse]:
    """
    获取背景音乐列表

    按场景分类返回可用的背景音乐列表。
    分类说明：
    - knowledge: 知识科普（极简、低频）
    - showcase: 案例展示（积极、有成就感）
    - promotion: 促销活动（轻快、有能量）
    - lifestyle: 家居生活（温馨、治愈）
    - tech: 智能家居（科技感、高级感）
    """
    items = await bgm_music.get_active_by_category(db, category=category)
    return ApiResponse(
        code=200,
        message="success",
        data=BgmMusicListResponse(
            items=[BgmMusicItem.model_validate(item) for item in items],
            total=len(items),
        ),
    )
