"""
Tag 系统枚举定义

包含 Tag 配置中使用的所有枚举类型，用于减少用户输入错误。
"""
from enum import Enum

class FileName(Enum):
    """文件名枚举"""
    SETTINGS = "settings.py"
    TAG_WORKER = "tag_worker.py"

class TagUpdateMode(Enum):
    """Tag 系统更新模式枚举（只支持增量更新和全量刷新）"""
    INCREMENTAL = "incremental"  # 增量更新
    REFRESH = "refresh"          # 全量刷新


class TagTargetType(Enum):
    """Tag 目标类型：实体标签 or 全局标签。"""

    ENTITY_BASED = "entity_based"
    GENERAL = "general"


class TagExecutionMode(Enum):
    """Tag 执行模式：按实体分批（默认）或按日历片全市场 bulk。"""

    ENTITY_TIMELINE = "entity_timeline"
    CALENDAR_SLICE = "calendar_slice"


# 已废弃：版本管理相关枚举已移除
# class VersionChangeAction(Enum):
#     """版本变更时的行为枚举（Scenario 级别）"""
#     REFRESH_SCENARIO = "refresh_scenario"
#     NEW_SCENARIO = "new_scenario"

# class EnsureMetaAction(Enum):
#     """确保元信息动作枚举（内部使用）"""
#     NO_CHANGE = "no_change"
#     META_UPDATE = "meta_update"
#     NEW_SCENARIO = "new_scenario"
#     ROLLBACK = "rollback"


class SupportedDataSource(Enum):
    """支持的数据源枚举"""
    KLINE = "kline"
    CORPORATE_FINANCE = "corporate_finance"