from abc import ABC, abstractmethod from fastapi_modules.fastapi_leaudit.domian.Dto.contractTemplateDto import ( ContractTemplateListQueryDTO, ContractTemplateSearchQueryDTO, ) from fastapi_modules.fastapi_leaudit.domian.vo.contractTemplateVo import ( ContractTemplateCategoryVO, ContractTemplateDetailVO, ContractTemplatePageVO, ContractTemplateSearchResultVO, ) class IContractTemplateService(ABC): """合同模板服务接口。""" @abstractmethod async def ListCategories(self, IncludeDisabled: bool, WithTemplateCount: bool) -> list[ContractTemplateCategoryVO]: ... @abstractmethod async def ListTemplates(self, Query: ContractTemplateListQueryDTO) -> ContractTemplatePageVO: ... @abstractmethod async def SearchTemplates(self, Query: ContractTemplateSearchQueryDTO) -> ContractTemplateSearchResultVO: ... @abstractmethod async def GetTemplateDetail(self, TemplateId: int) -> ContractTemplateDetailVO | None: ...