"""回测组合 + 公共配置 Repository Protocol(2026-09 重构)。""" from __future__ import annotations from typing import Protocol from app.domain.entities.combo import BacktestCombo, GlobalConfig class GlobalConfigRepository(Protocol): def get(self) -> GlobalConfig: """读取全局配置;不存在则返回带默认值的实例(不写库)。""" def save(self, config: GlobalConfig) -> GlobalConfig: """upsert 单例(id 恒为 default)。""" class ComboRepository(Protocol): def save(self, combo: BacktestCombo) -> BacktestCombo: """新建或更新(name 冲突抛 ValueError)。""" def get(self, combo_id: str) -> BacktestCombo | None: ... def list(self) -> list[BacktestCombo]: ... def delete(self, combo_id: str) -> bool: ...