"""文档服务接口。""" from abc import ABC, abstractmethod from fastapi_modules.fastapi_leaudit.domian.vo.documentVo import ( DocumentListPageVO, DocumentTypeCreateDTO, DocumentTypeItemVO, DocumentTypeUpdateDTO, DocumentUploadVO, ) class IDocumentService(ABC): """文档服务接口。""" @abstractmethod async def Upload( self, FileName: str, FileContent: bytes, ContentType: str | None, TypeId: int | None = None, TypeCode: str | None = None, Region: str = "default", FileRole: str = "primary", CreatedBy: int | None = None, AutoRun: bool = False, Speed: str = "normal", ) -> DocumentUploadVO: """上传文档并建立 LeAudit document/file 记录。""" ... @abstractmethod async def ListDocuments( self, Page: int = 1, PageSize: int = 20, Keyword: str | None = None, TypeCode: str | None = None, Region: str | None = None, ProcessingStatus: str | None = None, ResultStatus: str | None = None, UserId: int | None = None, DateFrom: str | None = None, DateTo: str | None = None, ) -> DocumentListPageVO: """获取文档列表(仅最新版本,附历史版本摘要)。""" ... @abstractmethod async def ListDocumentTypes(self, Ids: list[int] | None = None) -> list[DocumentTypeItemVO]: """获取文档类型列表。""" ... @abstractmethod async def GetDocumentType(self, Id: int) -> DocumentTypeItemVO: """获取文档类型详情。""" ... @abstractmethod async def CreateDocumentType(self, Body: DocumentTypeCreateDTO) -> DocumentTypeItemVO: """创建文档类型。""" ... @abstractmethod async def UpdateDocumentType(self, Id: int, Body: DocumentTypeUpdateDTO) -> DocumentTypeItemVO: """更新文档类型。""" ... @abstractmethod async def DeleteDocumentType(self, Id: int) -> None: """删除文档类型(软删除)。""" ...