# -*- coding: utf-8 -*- """Portfolio-related schemas.""" from pydantic import BaseModel class Position(BaseModel): """Position information - for Portfolio mode""" long: int = 0 # Long position quantity (shares) short: int = 0 # Short position quantity (shares) long_cost_basis: float = 0.0 # Long position average cost short_cost_basis: float = 0.0 # Short position average cost class Portfolio(BaseModel): """Portfolio - for Portfolio mode""" cash: float = 100000.0 # Available cash positions: dict[str, Position] = {} # ticker -> Position mapping # Margin requirement (0.0 means shorting disabled, 0.5 means 50% margin) margin_requirement: float = 0.0 margin_used: float = 0.0 # Margin used