"""策略 Repository Protocol(M8.3)。""" from __future__ import annotations from typing import Protocol from app.domain.entities.strategy import StrategyDefinition class StrategyRepository(Protocol): def save(self, definition: StrategyDefinition) -> StrategyDefinition: """新建(name 冲突抛 ValueError)。""" def get(self, strategy_id: str) -> StrategyDefinition | None: ... def get_by_name(self, name: str) -> StrategyDefinition | None: ... def list(self) -> list[StrategyDefinition]: ... def delete(self, strategy_id: str) -> bool: ...