feat(api): expose strategy nick on portfolio items
This commit is contained in:
@@ -108,6 +108,7 @@ def _portfolio_to_item(
|
||||
# REQ-055: 전략·시장 메타데이터 additive 필드
|
||||
active_strategy_id=portfolio.active_strategy_id,
|
||||
strategy_name=portfolio.strategy_name,
|
||||
strategy_nick=portfolio.strategy_nick,
|
||||
strategy_params=portfolio.strategy_params,
|
||||
strategy_revision=portfolio.strategy_revision,
|
||||
markets=portfolio.markets,
|
||||
|
||||
@@ -120,6 +120,7 @@ class Portfolio:
|
||||
profit_buffer: float = 0.0
|
||||
active_strategy_id: str | None = None
|
||||
strategy_name: str | None = None # REQ-055: strategy_sets.name JOIN 결과
|
||||
strategy_nick: str | None = None # REQ-055: strategy_sets.nick JOIN 결과
|
||||
strategy_params: dict[str, Any] = field(default_factory=dict) # REQ-055: strategy_sets.config 파싱 결과
|
||||
strategy_revision: int | None = None
|
||||
markets: list[str] = field(default_factory=list) # REQ-055: assets.markets JOIN 결과
|
||||
|
||||
@@ -73,7 +73,8 @@ _SELECT_PORTFOLIO = """
|
||||
ss.name,
|
||||
ss.config,
|
||||
a.markets,
|
||||
ss.revision
|
||||
ss.revision,
|
||||
ss.nick
|
||||
FROM portfolios p
|
||||
JOIN assets a ON p.asset_id = a.asset_id
|
||||
LEFT JOIN strategy_sets ss ON p.active_strategy_id = ss.id
|
||||
@@ -572,6 +573,8 @@ class PostgresPortfolioRepository:
|
||||
_markets_raw = row[21] if len(row) > 21 else None
|
||||
markets: list[str] = list(_markets_raw) if _markets_raw else []
|
||||
strategy_revision = int(row[22]) if len(row) > 22 and row[22] is not None else None
|
||||
# REQ-055: strategy_nick (row[23] = ss.nick from LEFT JOIN strategy_sets)
|
||||
strategy_nick: str | None = row[23] if len(row) > 23 else None
|
||||
|
||||
return Portfolio(
|
||||
portfolio_id=row[0],
|
||||
@@ -595,6 +598,7 @@ class PostgresPortfolioRepository:
|
||||
tag_ids=[str(t) for t in row[17]] if len(row) > 17 and row[17] is not None else [],
|
||||
display_name=row[18] if len(row) > 18 else None,
|
||||
strategy_name=strategy_name,
|
||||
strategy_nick=strategy_nick,
|
||||
strategy_params=strategy_params,
|
||||
strategy_revision=strategy_revision,
|
||||
markets=markets,
|
||||
|
||||
@@ -286,6 +286,7 @@ class PortfolioItem(BaseModel):
|
||||
# REQ-055: 전략·시장 메타데이터 additive 필드
|
||||
active_strategy_id: str | None = None
|
||||
strategy_name: str | None = None
|
||||
strategy_nick: str | None = None
|
||||
strategy_params: dict[str, Any] = Field(default_factory=dict)
|
||||
strategy_revision: int | None = Field(default=None, ge=1)
|
||||
markets: list[str] = Field(default_factory=list)
|
||||
|
||||
Reference in New Issue
Block a user