feat: add strategy set CRUD operations (API + CLI)

This commit is contained in:
2026-04-03 08:37:04 +00:00
parent 908068d9aa
commit 1b0991c9cf
12 changed files with 510 additions and 5 deletions
+10
View File
@@ -16,6 +16,7 @@ class FakeRepo:
self._portfolio = portfolio
self.entries: list[LedgerEntry] = []
self.strategy_set = StrategySet(id="set-1", name="target_value", config="{}", nick="target_value:99914b932bd3")
self._strategy_sets: dict[str, StrategySet] = {self.strategy_set.id: self.strategy_set}
self.closed = False
def close(self) -> None:
@@ -101,11 +102,20 @@ class FakeRepo:
def get_or_create_strategy_set(self, name: str, config: str) -> StrategySet:
self.strategy_set = StrategySet(id="set-1", name=name, config=config, nick=f"{name}:99914b932bd3")
self._strategy_sets[self.strategy_set.id] = self.strategy_set
return self.strategy_set
def get_strategy_set(self, id: str) -> StrategySet | None:
return self.strategy_set if self.strategy_set.id == id else None
def list_strategy_sets(self) -> list[StrategySet]:
from datetime import datetime, timezone
return sorted(self._strategy_sets.values(), key=lambda s: s.created_at or datetime.now(timezone.utc), reverse=True)
def delete_strategy_set(self, id: str) -> None:
if id in self._strategy_sets:
del self._strategy_sets[id]
def save(
self,
portfolio: Portfolio,