"""Signal Repository Protocol(M8.1 落库)。""" from __future__ import annotations from datetime import date from typing import Protocol from app.domain.entities.signal import SignalMeta, SignalResult class SignalRepository(Protocol): def save(self, signal_id: str, result: SignalResult) -> None: """snapshot 一行 + 事件逐行(同事务,调用方 commit)。""" def get(self, signal_id: str) -> SignalResult | None: ... def list_recent( self, as_of: date | None = None, limit: int = 20 ) -> list[SignalMeta]: ...