from dataclasses import dataclass
from typing import Dict, List, Any, Optional


@dataclass
class ResourceCategory:
    """素材分类数据结构"""
    id: str
    title: str  # 分类标题
    ai_prompt: str  # AI识别提示词
    color: str  # 展示颜色 (hex格式，如 #FF5733)
    created_at: str
    updated_at: str
    # is_cloud false 代表本地资源 那么只加载自己的 如果是 true 就是公用的
    is_cloud: bool = False
    # 创建用户
    user_id: str = ""
    is_active: bool = True


@dataclass
class MaterialInfo:
    """Material information structure"""
    id: str
    material_id: str
    name: str
    type: str  # video, audio, image, text, sticker, etc.
    original_path: str
    relative_path: str
    duration: Optional[int] = None
    size: Optional[int] = None
    
    # is_cloud false 代表本地资源 那么只加载自己的 如果是 true 就是公用的
    is_cloud: bool = False
    # 创建用户
    user_id: str = ""

@dataclass
class TemplateInfo:
    id: str
    name: str
    description: str
    thumbnail_path: str
    draft_content_path: str
    resources_path: str
    created_at: str
    updated_at: str
    canvas_config: Dict[str, Any]
    duration: int
    material_count: int
    track_count: int
    tags: List[str]
    # is_cloud false 代表本地资源 那么只加载自己的 如果是 true 就是公用的
    is_cloud: bool = False
    # 创建用户
    user_id: str = ""