from src.backend.app.api.database import Base  # 修复：导入 Base
from sqlalchemy import Column, Integer, String, DateTime, BigInteger, Float


class TrafficRecord(Base):
    """网络流量记录模型"""
    __tablename__ = "traffic_records"

    id = Column(Integer, primary_key=True, index=True)
    interface = Column(String(50), index=True)
    bytes_sent = Column(Integer)
    bytes_recv = Column(Integer)
    packets_sent = Column(Integer)
    packets_recv = Column(Integer)
    timestamp = Column(DateTime)

    def to_dict(self):
        return {
            "id": self.id,
            "interface": self.interface,
            "bytes_sent": self.bytes_sent,
            "bytes_recv": self.bytes_recv,
            "packets_sent": self.packets_sent,
            "packets_recv": self.packets_recv,
            "timestamp": self.timestamp.isoformat()
        }


class SwitchTrafficRecord(Base):
    __tablename__ = "switch_traffic_records"

    id = Column(Integer, primary_key=True, index=True)
    switch_ip = Column(String(50), index=True)
    interface = Column(String(50))
    bytes_in = Column(BigInteger)
    bytes_out = Column(BigInteger)
    rate_in = Column(Float)
    rate_out = Column(Float)
    timestamp = Column(DateTime)

    def to_dict(self):
        return {
            "id": self.id,
            "switch_ip": self.switch_ip,
            "interface": self.interface,
            "bytes_in": self.bytes_in,
            "bytes_out": self.bytes_out,
            "rate_in": self.rate_in,
            "rate_out": self.rate_out,
            "timestamp": self.timestamp.isoformat()
        }
