from sqlalchemy import Column, Date, DateTime, Integer, Numeric, String, Text

from database.models import Base


class RealtimeSalesMonthly(Base):
    """
    即時業績月報 ORM。

    這張表先由 PostgreSQL init.sql 建出，之後又被程式碼與匯入流程持續擴充。
    這裡先把目前程式碼直接依賴的核心欄位納入 metadata，讓 create_all、
    metrics 與啟動自檢有一致的表定義。
    """

    __tablename__ = "realtime_sales_monthly"
    __table_args__ = {"extend_existing": True}

    id = Column(Integer, primary_key=True)
    日期 = Column(Date, index=True)
    訂單編號 = Column(String(50), index=True)
    商品ID = Column(String(100), index=True)
    商品編號 = Column(String(100), index=True)
    商品名稱 = Column(Text)
    數量 = Column(Integer)
    總業績 = Column(Numeric(15, 2))
    總成本 = Column(Numeric(15, 2))
    毛利 = Column(Numeric(15, 2))
    退貨數量 = Column(Integer)
    商品單位售價 = Column(Numeric(15, 2))
    廠商名稱 = Column(String(255), index=True)
    分類名稱 = Column(String(255), index=True)
    商品館 = Column(String(255), index=True)
    品牌名稱 = Column(String(255), index=True)
    時間 = Column(String(50))
    付款方式 = Column(String(100))
    折扣活動名稱 = Column(String(255))
    折價券折扣金額 = Column(Numeric(15, 2))
    折扣金額 = Column(Numeric(15, 2))
    滿額再折扣金額 = Column(Numeric(15, 2))
    分期手續費 = Column(Numeric(15, 2))
    created_at = Column(DateTime)
