from datetime import datetime
from sqlalchemy import Column, String, DateTime, Integer, Text, ForeignKey, Index, BigInteger
from sqlalchemy.orm import relationship
from app.core.database import Base



class Image(Base):
    __tablename__ = "image"
    
    imageId = Column(BigInteger, primary_key=True, autoincrement=True, comment='图片ID')
    localPath = Column(String(500), comment='本地存储路径')
    type = Column(String(2), comment='图片类型, 0 ocr 图片, 1 目标检测图片')
    result = Column(String(500), comment='检测结果')
    createTime = Column(DateTime, default=datetime.now, comment='创建时间')
    updateTime = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='更新时间')
    

# class Event(Base):
#     __tablename__ = "event"

#     eventId = Column(String(50), primary_key=True)
#     tenantInfoId = Column(String(100))
#     reportEventId = Column(String(100))
#     number = Column(String(20))
#     name = Column(String(20))
#     eclassify = Column(String(5))
#     operationType = Column(String(5))
#     etype = Column(String(20))
#     etypeName = Column(String(20))
#     enTypeName = Column(String(30))
#     hkTypeName = Column(String(20))
#     reportStatus = Column(String(5))
#     results = Column(String(5))
#     insDate = Column(DateTime)
#     insDateShow = Column(DateTime)
#     updDate = Column(DateTime)
#     updDateShow = Column(DateTime)
#     fileType = Column(String(5))
#     area = Column(String(20))
#     floor = Column(String(10))
#     map = Column(String(20))
#     staffId = Column(String(40))
#     targetUserId = Column(String(40))
#     position = Column(String(100))
#     actualStaffName = Column(String(20))
#     targetStaffName = Column(String(20))
#     routeName = Column(String(20))
#     phoneAddress = Column(String(500))
#     width = Column(String(10))
#     height = Column(String(10))
#     resolution = Column(String(10))
#     originX = Column(String(20))
#     originY = Column(String(20))
#     imgList = Column(String(20))
#     robotType = Column(String(5))
#     eventFloor = Column(String(10))
#     floorName = Column(String(10))
#     coordId = Column(String(40))
#     coord = Column(String(40))
#     coordName = Column(String(30))
#     positonName = Column(String(20))
#     processingRemark = Column(String(300))
#     carId = Column(String(40))
#     parkingSpaceType = Column(String(10))
#     parkingSpaceNumber = Column(String(40))
#     carNumber = Column(String(40))
#     eno = Column(String(40))
#     instrument = Column(String(40))
#     evideo = Column(String(40))
#     createTime = Column(DateTime, default=datetime.now, comment='本地后台创建时间')
#     updateTime = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='本地后台更新时间')

#     # 关系
#     images = relationship("Image", back_populates="event", cascade="all, delete-orphan")
#     temperatures = relationship("Temperature", back_populates="event", cascade="all, delete-orphan")
#     process_logs = relationship("ProcessLog", back_populates="event", cascade="all, delete-orphan")


# class Image(Base):
#     __tablename__ = "image"

#     imageId = Column(BigInteger, primary_key=True, autoincrement=True, comment='图片ID')
#     eventId = Column(String(50), ForeignKey('event.eventId'), nullable=False, comment='关联事件ID')
#     imageUrl = Column(String(500), nullable=False, comment='图片URL')
#     localPath = Column(String(500), comment='本地存储路径')
#     createTime = Column(DateTime, default=datetime.now, nullable=False, comment='创建时间')

#     # 关系
#     event = relationship("Event", back_populates="images" )
#     temperatures = relationship("Temperature", back_populates="image")

#     __table_args__ = (
#         Index('idx_image_event_id', 'eventId'),
#     )


# class Temperature(Base):
#     __tablename__ = "temperature"

#     tempId = Column(BigInteger, primary_key=True, autoincrement=True, comment='温度记录ID')
#     eventId = Column(String(50), ForeignKey('event.eventId'), nullable=False, comment='关联事件ID')
#     imageId = Column(BigInteger, ForeignKey('image.imageId'), nullable=False, comment='关联图片ID')
#     temperature = Column(String(20), nullable=False, comment='温度值')
#     # status = Column(String(2), comment='温度是否正常')
#     confidence = Column(String(40), nullable=False, comment='识别置信度')
#     createTime = Column(DateTime, default=datetime.now, nullable=False, comment='创建时间')

#     # 关系
#     event = relationship("Event", back_populates="temperatures")
#     image = relationship("Image", back_populates="temperatures")

#     __table_args__ = (
#         Index('idx_temp_event_id', 'eventId'),
#         Index('idx_temp_create_time', 'createTime'),
#     )


# class ProcessLog(Base):
#     __tablename__ = "process_log"

#     logId = Column(BigInteger, primary_key=True, autoincrement=True, comment='日志ID')
#     eventId = Column(String(50), ForeignKey('event.eventId'), nullable=False, comment='关联事件ID')
#     processStatus = Column(Integer, nullable=False, comment='处理状态')
#     errorMessage = Column(Text, comment='错误信息')
#     createTime = Column(DateTime, default=datetime.now, nullable=False, comment='创建时间')

#     # 关系
#     event = relationship("Event", back_populates="process_logs")

#     __table_args__ = (
#         Index('idx_log_event_id', 'eventId'),
#         Index('idx_log_create_time', 'createTime'),
#     ) 