35 lines
828 B
Python
35 lines
828 B
Python
"""Amazon 结算报表 adapter 基类与数据契约。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import Any, Dict, Optional
|
|
|
|
|
|
@dataclass
|
|
class DownloadSettlementResult:
|
|
ok: bool
|
|
job_id: Optional[str]
|
|
file_path: Optional[str]
|
|
filename: Optional[str]
|
|
date_from: str
|
|
date_to: str
|
|
seller_code: Optional[str] = None
|
|
error_msg: Optional[str] = None
|
|
artifacts: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
class DownloadSettlementAdapterBase:
|
|
name: str = "base"
|
|
|
|
def download_settlement(
|
|
self,
|
|
*,
|
|
date_from: str,
|
|
date_to: str,
|
|
seller_code: Optional[str] = None,
|
|
downloads_dir: str = "",
|
|
artifacts_dir: str = "",
|
|
) -> DownloadSettlementResult:
|
|
raise NotImplementedError
|