"""评查服务接口。"""

from abc import ABC, abstractmethod

from fastapi_modules.fastapi_leaudit.domian.vo.auditVo import AuditRunVO, AuditResultVO


class IAuditService(ABC):
    """评查服务接口。"""

    @abstractmethod
    async def Run(
        self,
        DocumentId: int,
        RuleType: str | None = None,
        Force: bool = False,
        Speed: str = "normal",
        TriggerUserId: int | None = None,
    ) -> AuditRunVO:
        """触发文档评查。"""
        ...

    @abstractmethod
    async def GetRunStatus(self, RunId: int) -> AuditRunVO:
        """查询评查运行状态。"""
        ...

    @abstractmethod
    async def GetResult(self, RunId: int) -> AuditResultVO:
        """获取评查结果。"""
        ...
