"""fin_holdings 持仓表 ORM 模型(当前/历史持仓快照)。""" from __future__ import annotations from datetime import datetime from decimal import Decimal from sqlalchemy import BigInteger, DateTime, Numeric, String, func from sqlalchemy.orm import Mapped, mapped_column from model.base import Base class FinHoldings(Base): __tablename__ = "fin_holdings" __table_args__ = {"comment": "持仓表(当前/历史持仓快照)"} id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True) customer_id: Mapped[int] = mapped_column(BigInteger) product_id: Mapped[int] = mapped_column(BigInteger) shares: Mapped[Decimal] = mapped_column(Numeric(18, 4), server_default="0") cost_amount: Mapped[Decimal] = mapped_column(Numeric(18, 2), server_default="0") current_value: Mapped[Decimal] = mapped_column(Numeric(18, 2), server_default="0") profit_loss: Mapped[Decimal] = mapped_column(Numeric(18, 2), server_default="0") profit_ratio: Mapped[Decimal] = mapped_column(Numeric(8, 4), server_default="0") status: Mapped[str] = mapped_column(String(16), server_default="持有中") create_time: Mapped[datetime] = mapped_column(DateTime, server_default=func.now()) update_time: Mapped[datetime] = mapped_column( DateTime, server_default=func.now(), onupdate=func.now() )