"""
Domain Handler Registry - 集中管理所有领域的 API 和 JSONL Handlers

使用方式：
    from sync_state_machine.domain.registry import API_HANDLERS, JSONL_HANDLERS
    
    # 添加所有 API handlers
    for handler_class in API_HANDLERS:
        api_ds.add_handler(handler_class())
    
    # 添加所有 JSONL handlers
    for handler_class in JSONL_HANDLERS:
        jsonl_ds.add_handler(handler_class(jsonl_ds))
"""

# ============================================
# API Handlers
# ============================================
from .company.api_handler import CompanyApiHandler
from .supplier.api_handler import SupplierApiHandler
from .user.api_handler import UserApiHandler
from .project.api_handler import ProjectApiHandler
from .contract.api_handler import ContractApiHandler
from .contract_change.api_handler import ContractChangeApiHandler
from .construction.api_handler import ConstructionTaskApiHandler
from .construction_task_detail.api_handler import ConstructionTaskDetailApiHandler
from .material.api_handler import MaterialApiHandler
from .material_detail.api_handler import MaterialDetailApiHandler
from .contract_settlement.api_handler import ContractSettlementApiHandler
from .contract_settlement_detail.api_handler import ContractSettlementDetailApiHandler
from .personnel.api_handler import PersonnelApiHandler
from .personnel_detail.api_handler import PersonnelDetailApiHandler
from .preparation.api_handler import PreparationApiHandler
from .production.api_handler import ProductionApiHandler
from .lar.api_handler import LarApiHandler
from .lar_change.api_handler import LarChangeApiHandler
from .units.api_handler import UnitsApiHandler
from .project_detail.api_handler import ProjectDetailApiHandler

# ============================================
# JSONL Handlers
# ============================================
from .company.jsonl_handler import CompanyJsonlHandler
from .supplier.jsonl_handler import SupplierJsonlHandler
from .user.jsonl_handler import UserJsonlHandler
from .project.jsonl_handler import ProjectJsonlHandler
from .contract.jsonl_handler import ContractJsonlHandler
from .contract_change.jsonl_handler import ContractChangeJsonlHandler
from .construction.jsonl_handler import ConstructionTaskJsonlHandler
from .construction_task_detail.jsonl_handler import ConstructionTaskDetailJsonlHandler
from .material.jsonl_handler import MaterialJsonlHandler
from .material_detail.jsonl_handler import MaterialDetailJsonlHandler
from .contract_settlement.jsonl_handler import ContractSettlementJsonlHandler
from .contract_settlement_detail.jsonl_handler import ContractSettlementDetailJsonlHandler
from .personnel.jsonl_handler import PersonnelJsonlHandler
from .personnel_detail.jsonl_handler import PersonnelDetailJsonlHandler
from .preparation.jsonl_handler import PreparationJsonlHandler
from .production.jsonl_handler import ProductionJsonlHandler
from .lar.jsonl_handler import LarJsonlHandler
from .lar_change.jsonl_handler import LarChangeJsonlHandler
from .units.jsonl_handler import UnitsJsonlHandler
from .project_detail.jsonl_handler import ProjectDetailJsonlHandler

# ============================================
# 导出列表
# ============================================
API_HANDLERS = [
    CompanyApiHandler,
    SupplierApiHandler,
    UserApiHandler,
    ProjectApiHandler,
    ContractApiHandler,
    ContractChangeApiHandler,
    ConstructionTaskApiHandler,
    ConstructionTaskDetailApiHandler,
    MaterialApiHandler,
    MaterialDetailApiHandler,
    ContractSettlementApiHandler,
    ContractSettlementDetailApiHandler,
    PersonnelApiHandler,
    PersonnelDetailApiHandler,
    PreparationApiHandler,
    ProductionApiHandler,
    LarApiHandler,
    LarChangeApiHandler,
    UnitsApiHandler,
    ProjectDetailApiHandler,
]

JSONL_HANDLERS = [
    CompanyJsonlHandler,
    SupplierJsonlHandler,
    UserJsonlHandler,
    ProjectJsonlHandler,
    ContractJsonlHandler,
    ContractChangeJsonlHandler,
    ConstructionTaskJsonlHandler,
    ConstructionTaskDetailJsonlHandler,
    MaterialJsonlHandler,
    MaterialDetailJsonlHandler,
    ContractSettlementJsonlHandler,
    ContractSettlementDetailJsonlHandler,
    PersonnelJsonlHandler,
    PersonnelDetailJsonlHandler,
    PreparationJsonlHandler,
    ProductionJsonlHandler,
    LarJsonlHandler,
    LarChangeJsonlHandler,
    UnitsJsonlHandler,
    ProjectDetailJsonlHandler,
]

__all__ = ["API_HANDLERS", "JSONL_HANDLERS"]
