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'), # )