from __future__ import annotations

from pydantic import BaseModel

from jarvis_finance.api.schemas.positions import CashPosition


class PortfolioSummary(BaseModel):
    total_value_chf: str
    crypto_value_chf: str
    equity_value_chf: str
    postfinance_equity_value_chf: str = "0.00"
    truewealth_value_chf: str = "0.00"
    cash_value_chf: str
    unpriced_positions_count: int
    critical_alerts_count: int
    last_price_update: str | None = None
    data_quality_status: str


class CashSummary(BaseModel):
    base_currency: str
    cash_chf: str
    manual_accounts_count: int = 0
    csv_calculated_accounts_count: int = 0
    open_reconciliation_count: int = 0
    last_reconciliation_at: str | None = None
    positions: list[CashPosition]
