from __future__ import annotations

from pydantic import BaseModel, Field


class Money(BaseModel):
    amount: str = Field(description="Decimal-compatible amount as string; never JSON float.")
    currency: str = "CHF"
    display: str = ""


class Quantity(BaseModel):
    amount: str = Field(description="Decimal-compatible quantity as string; never JSON float.")
    unit: str = ""
    display: str = ""


class HealthStatus(BaseModel):
    status: str
    app: str
    api_version: str
    mode: str


class RuntimeStatus(BaseModel):
    db_available: bool
    db_path: str
    base_currency: str
    runtime_outside_repo: bool
    write_mode: str


class ProviderStatus(BaseModel):
    provider: str
    status: str
    message: str
