"""
背景音乐模型
==========

装修行业场景化 BGM 库，按知识科普/案例展示/促销活动/家居生活/智能家居
五个场景分类管理。
"""

from sqlalchemy import Float, Integer, String
from sqlalchemy.orm import Mapped, mapped_column

from app.models.base import BaseModelBigInt


class BgmMusic(BaseModelBigInt):
    """
    背景音乐表

    Attributes:
        title: 音乐名称
        artist: 艺术家
        category: 场景分类 (knowledge/showcase/promotion/lifestyle/tech)
        file_path: 相对文件路径（如 knowledge/3_Dance_with_Me.mp3）
        duration: 时长（秒）
        status: 状态 (active/inactive)
        sort_order: 排序权重（越小越靠前）
    """

    __tablename__ = "mjk_bgm_musics"

    title: Mapped[str] = mapped_column(String(255), nullable=False, comment="音乐名称")
    artist: Mapped[str] = mapped_column(String(255), nullable=True, comment="艺术家")
    category: Mapped[str] = mapped_column(
        String(32), nullable=False, index=True, comment="场景分类"
    )
    file_path: Mapped[str] = mapped_column(
        String(512), nullable=False, comment="相对文件路径"
    )
    url: Mapped[str] = mapped_column(
        String(1024), nullable=False, comment="七牛云 URL"
    )
    duration: Mapped[float] = mapped_column(
        Float, nullable=True, comment="时长（秒）"
    )
    status: Mapped[str] = mapped_column(
        String(16), default="active", nullable=False, comment="状态: active/inactive"
    )
    sort_order: Mapped[int] = mapped_column(
        Integer, default=0, nullable=False, comment="排序权重"
    )
