# app/src/market_data/acquisition/models/instrument.py

from __future__ import annotations

from dataclasses import dataclass
from decimal import Decimal


# Независимое от источника справочное описание торгового инструмента.
@dataclass(frozen=True, slots=True)
class Instrument:
    symbol: str
    name: str
    status: str

    base_asset: str
    quote_asset: str
    asset_type: str | None

    market_type: str
    market_modes: tuple[str, ...]
    order_types: tuple[str, ...]

    base_asset_precision: int | None
    quote_asset_precision: int | None

    tick_size: Decimal | None
    tick_value: Decimal | None

    step_size: Decimal | None
    min_qty: Decimal | None
    max_qty: Decimal | None
    min_notional: Decimal | None

    country: str | None
    sector: str | None
    industry: str | None
    trading_hours: str | None