# -*- coding: utf-8 -*- from sqlalchemy import String, Column, Integer,DateTime,Text,BigInteger,Boolean,PrimaryKeyConstraint,Index,UniqueConstraint,CHAR,LargeBinary,TIMESTAMP,Float from sqlalchemy.dialects.mysql import TINYINT from sqlalchemy.sql import func from database import Base from datetime import datetime class TpVideoLog(Base): __tablename__ = 'tp_video_log' name = Column(String(255, collation='utf8mb4_bin'), autoincrement=True, primary_key=True, nullable=True, default=None) area = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) ip = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) status = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) status_lifetime = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) record_status = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) inspection_datetime = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) video_code_int = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) video_code = Column(String(255, collation='utf8mb4_bin'), nullable=True, default=None) class Config: orm_mode = True class TpVideoBase(Base): __tablename__ = 'tp_video_base' cameraid = Column(String(100), autoincrement=True, primary_key=True, nullable=True) indexcode = Column(String(100), nullable=True) name = Column(String(255), nullable=True) manufacturer = Column(String(50), nullable=True) model = Column(String(50), nullable=True) owner = Column(String(50), nullable=True) civilcode = Column(String(255), nullable=True) block = Column(String(100), nullable=True) address = Column(String(255), nullable=True) parental = Column(String(2), nullable=True) parentid = Column(String(255), nullable=True) safetyway = Column(String(2), nullable=True) registerway = Column(String(2), nullable=True) certnum = Column(String(2), nullable=True) certifiable = Column(String(2), nullable=True) errorcode = Column(String(10), nullable=True) endtime = Column(String(255), nullable=True) secrecy = Column(String(2), nullable=True) ipaddress = Column(String(255), nullable=True) port = Column(String(10), nullable=True) password = Column(String(10), nullable=True) status = Column(String(10), nullable=True) recordpos = Column(String(10), nullable=True) cameratype = Column(String(2), nullable=True) decodetag = Column(String(10), nullable=True) longitude = Column(Float, nullable=True) latitude = Column(Float, nullable=True) elevation = Column(String(5), nullable=True) targettype = Column(String(2), nullable=True) targetsubtype = Column(String(2), nullable=True) cascadeid = Column(String(10), nullable=True) cascadecode = Column(String(100), nullable=True) querystatus = Column(String(2), nullable=True) privilege = Column(String(5), nullable=True) updatatime = Column(String(255), nullable=True) elseex = Column(String(255), nullable=True) recordstate = Column(String(2), nullable=True) extrafield = Column(String(255), nullable=True) internalindexcode = Column(String(255), nullable=True) positioncode = Column(String(10), nullable=True) bstandard = Column(String(2), nullable=True) pushpath = Column(String(255), nullable=True) class Config: orm_mode = True class TpVideoTag(Base): __tablename__ = 'tp_video_tag' id = Column(String(255), primary_key=True) video_code = Column(String(255), nullable=True, comment='视频编号') dict_value = Column(String(255), nullable=True, comment='字典映射值') dict_type = Column(String(255), nullable=True, comment='字典映射类型') del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)') create_time = Column(DateTime, default=datetime.now, comment='数据创建时间') update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间') create_dept = Column(BigInteger, default=None, comment='创建部门') create_by = Column(BigInteger, default=None, comment='创建者') update_by = Column(BigInteger, default=None, comment='更新者') class Config: orm_mode = True class TpVideoLogTransportationAreaInfo(Base): __tablename__ = 'tp_video_log_transportation_area_info' id = Column(String(255), primary_key=True) video_code = Column(String(100),primary_key=True, nullable=True) area = Column(String(255), nullable=True) longitude = Column(Float, nullable=True) latitude = Column(Float, nullable=True) class Config: orm_mode = True class AvconDevice(Base): ''' 融合通信设备 ''' __tablename__ = 'avcon_device' dev_id = Column(String, primary_key=True, comment='设备ID') dev_name = Column(String, nullable=True, comment='设备名称') dev_type = Column(String, nullable=True, comment='设备类型') domain = Column(String, nullable=True, comment='区域') group_id = Column(String, nullable=True, comment='分组') group_name = Column(String, nullable=True, comment='分组名称') parent_group_id = Column(String, nullable=True, comment='父分组') status = Column(Integer, default=None, comment='状态') create_time = Column(DateTime, default=datetime.now, comment='数据创建时间') channel_num = Column(Integer, default=None, comment='通道数') class Config: orm_mode = True class AvconDeviceChannel(Base): ''' 融合通信设备 ''' __tablename__ = 'avcon_device_channel' channel_id = Column(String, primary_key=True, comment='通道ID') channel_name = Column(String, default='', nullable=True, comment='通道名称') channel_no = Column(String, default='', nullable=True, comment='通道名称') dev_id = Column(String, default='', nullable=True, comment='设备ID') status = Column(Integer, nullable=True, comment='设备类型') lat = Column(String, default='', nullable=True, comment='纬度') lng = Column(String, default='', nullable=True, comment='经度') live_url = Column(String, default='', nullable=True, comment='直播流') play_url = Column(String, default='', nullable=True, comment='通道直播页面完整地址') create_time = Column(DateTime, default=datetime.now, comment='数据创建时间') class Config: orm_mode = True class AvconUser(Base): ''' 融合设备账号映射 ''' __tablename__ = 'avcon_user' user_id = Column(BigInteger, primary_key=True,autoincrement=True, comment='用户ID') dev_id = Column(String, nullable=False, comment='融合设备ID') dev_name = Column(String, default='', nullable=True, comment='融合设备名称') class Config: orm_mode = True class VideoJob(Base): ''' 融合设备账号映射 ''' __tablename__ = 'tp_video_job' video_code = Column(String, primary_key=True, comment='点位编号') status = Column(Integer, nullable=True, comment='在线状态 1 在线 0 离线 9 未知') update_time = Column(DateTime, default=datetime.now, nullable=True, comment='更新时间') class Config: orm_mode = True class TPVideoInfo(Base): __tablename__ = "tp_video_info" cameraIndexCode = Column(String(100), primary_key=True, comment="摄像头索引码") gbIndexCode = Column(String(100), comment="国标索引码") name = Column(String(255), comment="摄像头名称") longitude = Column(Float, comment="经度") latitude = Column(Float, comment="纬度") altitude = Column(String(255), comment="海拔") pixel = Column(String(50), comment="像素") cameraType = Column(String(50), comment="摄像头类型代码") cameraTypeName = Column(String(100), comment="摄像头类型名称") installPlace = Column(String(255), comment="安装位置") unitIndexCode = Column(String(255), comment="所属组织编号") regionPath = Column(Text, comment='机构路径') updateTime = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间") createTime = Column(DateTime, server_default=func.now(), comment="创建时间") status = Column(String(255), comment="状态码") statusName = Column(String(250), comment="状态名称") location = Column(String(255)) # 存储 POINT 类型的字符串表示 class TPVideoRegion(Base): __tablename__ = 'tp_video_region' # 表名 # 字段定义 indexCode = Column(String(255),primary_key=True, nullable=False, comment='组织编号(长度1-255位)') name = Column(String(255), nullable=False, comment='组织名称(长度1-255位)') regionPath = Column(Text, comment='机构路径') parentIndexCode = Column(String(255), comment='父组织编号(长度1-255位)') treeCode = Column(String(255), comment='树编码') externalIndexCode = Column(String(255), comment='国标编码') sort = Column(Integer, comment='排序') updateTime = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间") createTime = Column(DateTime, server_default=func.now(), comment="创建时间") status = Column(String(255), comment="状态码") available=Column(Integer, comment='是否显示') leaf=Column(Integer, comment='是否叶')