Files
2026-04-07 01:09:14 +08:00

35 lines
984 B
Python

from abc import ABC, abstractmethod
from .schemas import (
MailImportBatchDeleteRequest,
MailImportDeleteRequest,
MailImportExecuteRequest,
MailImportProviderDescriptor,
MailImportResponse,
MailImportSnapshot,
MailImportSnapshotRequest,
)
class BaseMailImportStrategy(ABC):
@property
@abstractmethod
def descriptor(self) -> MailImportProviderDescriptor:
raise NotImplementedError
@abstractmethod
def execute(self, request: MailImportExecuteRequest) -> MailImportResponse:
raise NotImplementedError
@abstractmethod
def get_snapshot(self, request: MailImportSnapshotRequest) -> MailImportSnapshot:
raise NotImplementedError
@abstractmethod
def delete(self, request: MailImportDeleteRequest) -> MailImportResponse:
raise NotImplementedError
@abstractmethod
def batch_delete(self, request: MailImportBatchDeleteRequest) -> MailImportResponse:
raise NotImplementedError