# coding: utf-8
from sqlalchemy import Column, DECIMAL, Date, DateTime, ForeignKeyConstraint, Index, LargeBinary, String, TIMESTAMP, Table, Text, text
from sqlalchemy.dialects.mysql import BIGINT, INTEGER, MEDIUMTEXT, SMALLINT, VARCHAR
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
from app.model.base import Base, BaseModel


class Account(Base, BaseModel):
    __tablename__ = 'account'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ac_pay_pwd = Column(String(64), comment='支付密码')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AccountAmount(Base, BaseModel):
    __tablename__ = 'account_amount'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    aa_balance = Column(BIGINT(12), comment='账户余额')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AccountAmountChangerecord(Base, BaseModel):
    __tablename__ = 'account_amount_changerecord'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    aad_type = Column(String(3), comment='变动类型')
    aad_balance_before = Column(BIGINT(12), comment='变动前账户金额')
    aad_balance_after = Column(BIGINT(12), comment='变动后账户金额')
    aad_balance = Column(BIGINT(12), comment='变动金额')
    aad_reason = Column(String(512), comment='变动原因')
    aad_refid = Column(String(64), comment='关联记录ID')
    aad_ext = Column(String(64), comment='扩展字段')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AccountBill(Base, BaseModel):
    __tablename__ = 'account_bill'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ab_price = Column(BIGINT(12), comment='原价')
    ab_score_deduct = Column(BIGINT(12), comment='积分抵扣')
    ab_realpay = Column(BIGINT(12), comment='实付金额')
    ab_type = Column(String(3), comment='类型')
    ab_refid = Column(String(64), comment='关联记录ID')
    ab_desc = Column(String(256), comment='描述')
    ab_limitation = Column(String(3), comment='时效类型')
    ab_limitation_starttime = Column(DateTime, comment='时效开始时间')
    ab_limitation_endtime = Column(DateTime, comment='时效结束时间')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AccountScore(Base, BaseModel):
    __tablename__ = 'account_score'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    as_total_score = Column(BIGINT(10), comment='总积分')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AccountScoreChangerecord(Base, BaseModel):
    __tablename__ = 'account_score_changerecord'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    asc_type = Column(String(3), comment='变动类型')
    asc_score_before = Column(BIGINT(10), comment='变动前总积分')
    asc_score_after = Column(BIGINT(10), comment='变动后总积分')
    asc_score = Column(BIGINT(10), comment='变动积分')
    asd_reason = Column(String(512), comment='变动原因')
    asc_refid = Column(String(64), comment='关联记录ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class Activity(Base, BaseModel):
    __tablename__ = 'activity'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    at_img = Column(String(256), comment='活动宣传图')
    at_name = Column(String(64), comment='活动名称')
    at_type = Column(String(3), comment='活动类型')
    at_starttime = Column(DateTime, comment='报名开始日期')
    at_endtime = Column(DateTime, comment='报名结束日期')
    at_desc = Column(String(1024), comment='描述')
    at_detail_imgs = Column(Text, comment='活动图片')
    at_city = Column(String(128), comment='城市')
    at_adress = Column(String(1024), comment='地址')
    at_begintime = Column(DateTime, comment='活动开始时间')
    at_finishtime = Column(DateTime, comment='活动结束时间')
    at_fa_isconfirm = Column(String(3), comment='理财师是否可自行确认 0：否 1：是')
    org_team = Column(String(512), comment='组织架构')
    org_id = Column(String(64), comment='机构Id')
    ac_auditor = Column(String(512), comment='活动签到负责人')
    at_share_desc = Column(String(512), comment='活动分享文案')
    at_tem_type = Column(String(3), comment='活动模版类型')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    at_share_logo = Column(String(256), comment='活动分享logo')
    at_product = Column(String(64), comment='关联产品')
    at_genre = Column(String(32), comment='会务类型')
    at_detail_status = Column(INTEGER(3), server_default=text("'0'"), comment='活动详情')
    at_detail_rich = Column(Text)
    qrCode = Column(String(256), comment='二维码链接')
    codeInfo = Column(String(64), comment='二维码描述')
    page_url = Column(String(250), comment='页面url')
    bm_type = Column(INTEGER(1), comment='1：线上  2：线下  3 ：线上和线下')
    task_notice = Column(INTEGER(3), nullable=False, server_default=text("'1'"), comment='1:发送任务通知 2:不发送任务通知')


class ActivityBaoming(Base, BaseModel):
    __tablename__ = 'activity_baoming'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ab_actid = Column(String(64), comment='活动ID')
    user_name = Column(String(32), comment='姓名')
    user_phone = Column(String(16), comment='手机号码')
    user_danwei = Column(String(32), comment='单位')
    user_zhiwei = Column(String(32), comment='职位')
    user_source = Column(String(32), comment='来源')
    ab_inviter = Column(String(64), comment='邀请人')
    ab_status = Column(String(3), comment='到场状态')
    ab_customer_status = Column(String(3), comment='客户状态：0：意向客户 1：潜力客户 2：成交客户')
    ab_member_id = Column(String(64), comment='会员号')
    ab_confirm_status = Column(String(3), comment='二次确认状态')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    ab_fission_userid = Column(String(64), comment='裂变人')
    ab_fission_path = Column(Text, comment='裂变路径')
    task_pro_send = Column(String(255), comment='任务发送通知')
    org_id = Column(String(64))
    status = Column(INTEGER(11), comment='审核状态')
    is_online = Column(INTEGER(11), comment='参与方式')
    ext_data = Column(String(255), comment='扩展')


class ActivityCustomerFollow(Base, BaseModel):
    __tablename__ = 'activity_customer_follow'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    acf_actid = Column(String(64), comment='活动ID')
    acf_baoming_id = Column(String(64), comment='报名记录ID')
    acf_customer_status = Column(String(3), comment='客户状态')
    acf_beizhu = Column(String(256), comment='客户备注')
    acf_member_id = Column(String(64), comment='会员号')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AdditionalInfo(Base, BaseModel):
    __tablename__ = 'additional_info'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ai_target_id = Column(String(64), comment='目标Id')
    ai_target_category = Column(INTEGER(1), comment='目标类型')
    ai_source_category = Column(INTEGER(1), comment='资源类别')
    ai_source_id = Column(String(1024), comment='资源Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class AdsPosition(Base, BaseModel):
    __tablename__ = 'ads_position'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ap_type = Column(INTEGER(3), comment='类型')
    ap_imgurl = Column(String(256), comment='图片地址')
    ap_link = Column(String(1024), comment='链接地址')
    ap_isshow = Column(INTEGER(3), comment='是否展示')
    create_time = Column(DateTime, comment='创建时间')
    rel_content = Column(String(200), comment='关联内容')
    rel_type = Column(INTEGER(1), comment='关联类型')
    rel_id = Column(String(64), comment='关联id')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    sort_priority = Column(INTEGER(11), server_default=text("'0'"), comment='排序')


class AiScanResult(Base, BaseModel):
    __tablename__ = 'ai_scan_result'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    asr_taskid = Column(String(64), comment='任务ID')
    asr_faid = Column(String(64), comment='理财师ID')
    asr_userid = Column(String(64), comment='用户ID')
    asr_interest = Column(INTEGER(3), comment='兴趣值')
    sc_lastbrowsetime = Column(DateTime, comment='最后访问时间')
    sc_pro_browsenum = Column(BIGINT(11), comment='产品浏览次数')
    sc_article_browsenum = Column(BIGINT(11), comment='文章浏览次数')
    sc_mp_browsenum = Column(BIGINT(11), comment='名片浏览次数')
    sc_company_browsenum = Column(BIGINT(11), comment='公司资料浏览次数')
    sc_dayreport_browsenum = Column(BIGINT(11), comment='日报浏览次数')
    sc_total_browsenum = Column(BIGINT(11), comment='浏览次数合计')
    sc_pro_timelong = Column(BIGINT(11), comment='产品浏览总时长')
    sc_article_timelong = Column(BIGINT(11), comment='文章浏览总时长')
    sc_mp_timelong = Column(BIGINT(11), comment='名片浏览总时长')
    sc_company_timelong = Column(BIGINT(11), comment='公司资料浏览总时长')
    sc_dayreport_timelong = Column(BIGINT(11), comment='日报浏览总时长')
    sc_total_timelong = Column(BIGINT(11), comment='浏览时长合计')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AiScanTask(Base, BaseModel):
    __tablename__ = 'ai_scan_task'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ast_taskid = Column(String(64), comment='任务ID')
    ast_cycle = Column(String(3), comment='周期')
    ast_timelong = Column(BIGINT(8), comment='时长')
    ast_browsenum = Column(BIGINT(8), comment='浏览次数')
    ast_obj = Column(String(128), comment='扫描对象')
    ast_status = Column(String(16), comment='扫描结果状态')
    ast_totalnum = Column(INTEGER(11), comment='扫描结果总条数')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class AppMessage(Base, BaseModel):
    __tablename__ = 'app_message'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    type = Column(INTEGER(5), comment='类型')
    sub_type = Column(INTEGER(5), comment='子类型')
    content = Column(String(1024), comment='内容')
    fa_id = Column(String(64), comment='理财师ID')
    read_status = Column(INTEGER(3), comment='阅读状态')
    remind_userid = Column(String(64))
    ref_id = Column(String(64), comment='关联ID')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class AppVersion(Base, BaseModel):
    __tablename__ = 'app_version'
    __table_args__ = {'comment': 'App版本信息'}

    id = Column(String(64), primary_key=True)
    proname = Column(String(64), nullable=False, comment='产品')
    pt = Column(String(16), nullable=False, comment='平台 ios | android')
    release_channel = Column(String(64), comment='渠道')
    version_num = Column(String(64), nullable=False, comment='发布版本号')
    build_num = Column(String(16), nullable=False, comment='打包版本号')
    down_mode = Column(INTEGER(3), comment='下载方式 0: 应用市场 1:官网')
    down_url = Column(String(512), comment='下载地址')
    up_desc = Column(String(1024), comment='升级说明')
    alert_flag = Column(String(64), comment='弹窗标识')
    min_flag = Column(String(64), comment='最低可用版本')
    release_status = Column(INTEGER(3), comment='发布状态 0:未发布 1:已发布')
    release_time = Column(DateTime, comment='发布时间')
    create_time = Column(DateTime)
    create_by = Column(String(64))
    update_time = Column(DateTime)
    update_by = Column(String(64))
    delete_tag = Column(INTEGER(3), nullable=False)


class ApplicationTemplateQuestion(Base, BaseModel):
    __tablename__ = 'application_template_question'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    q_type = Column(String(3), comment='题目类型')
    q_title = Column(String(512), comment='题干')
    q_option = Column(String(1024), comment='选项')
    q_required = Column(INTEGER(3), comment='是否必填项')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    q_choice = Column(INTEGER(3), comment='是否理财师必填 0: 理财师须填写 1: 非理财师填写 2: 所有人要填写')


class ArLabel(Base, BaseModel):
    __tablename__ = 'ar_labels'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ut_tem = Column(String(64), comment='标签名称')
    org_id = Column(String(64), comment='所属机构')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class Article(Base, BaseModel):
    __tablename__ = 'article'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ar_title = Column(String(128), comment='标题')
    ar_abstract = Column(String(1024), comment='摘要')
    ar_review_headurl = Column(String(256), comment='点评人头像')
    ar_review = Column(Text, comment='点评')
    ar_thumbnail = Column(String(256), comment='缩略图')
    ar_backgroundimg = Column(String(256), comment='大图')
    ar_showtype = Column(String(3), comment='展示图类型')
    ar_type = Column(String(64), comment='类型')
    ar_subject = Column(String(64), comment='主题')
    ar_column = Column(String(64), comment='专栏')
    ar_label = Column(String(128), comment='标签')
    ar_author = Column(String(32), comment='文章作者')
    ar_source = Column(String(32), comment='文章来源')
    ar_crawler_source = Column(String(32), comment='抓取来源')
    ar_crawler_url = Column(String(3000), comment='抓取来源Url')
    ar_content = Column(MEDIUMTEXT, comment='内容')
    ar_releasetime = Column(DateTime, comment='发布时间')
    ar_hot = Column(String(3), server_default=text("'0'"), comment='推荐标识')
    ar_status = Column(INTEGER(3), comment='状态')
    ar_praise_basenum = Column(BIGINT(20), comment='点赞虚拟数')
    ar_praise_actualnum = Column(BIGINT(20), comment='点赞真实数')
    ar_collect_basenum = Column(BIGINT(20), comment='收藏虚拟数')
    ar_collect_actualnum = Column(BIGINT(20), comment='收藏真实数')
    ar_read_basenum = Column(BIGINT(9), comment='虚拟阅读')
    ar_read_actualnum = Column(BIGINT(9), comment='真实阅读数')
    ar_settop_time = Column(DateTime, comment='置顶时间')
    ar_settop_expiry_date = Column(DateTime, comment='置顶有效期')
    ar_settop_state = Column(String(3), comment='是否置顶')
    ar_source_type = Column(String(3), comment='文章来源类型 0：后台添加 1：系统抓取 2：app用户微信链接抓取')
    ar_fee_type = Column(String(3), comment='收费类型 0：免费 1：收费')
    ar_vip_price = Column(BIGINT(12), comment='vip会员价格')
    ar_common_price = Column(BIGINT(12), comment='普通会员价格')
    ar_crawlarticletime = Column(DateTime, comment='抓取文章的原发布时间')
    ar_audio = Column(VARCHAR(256), comment='音频')
    ar_audio_length = Column(INTEGER(11), comment='音频时长')
    ar_review_by = Column(String(128), comment='审核人')
    ar_review_time = Column(DateTime, comment='审核时间')
    ar_submit_by = Column(String(128), comment='提交发布人')
    ar_push_labels = Column(Text, comment='推送标签')
    ar_pt = Column(String(128), comment='平台')
    ar_partne_planid = Column(String(64), comment='对外合作方案ID')
    ar_plan_type = Column(String(3))
    ar_tag = Column(String(2048), comment='文章标签')
    share_msg = Column(String(2048), comment='分享信息')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    ar_solt_by = Column(String(64), comment='下架人')
    ar_solt_time = Column(DateTime, comment='下架时间')
    ar_soltout_time = Column(DateTime, comment='预下架时间')
    ar_product = Column(String(64), comment='关联产品')


class ArticlePushLabel(Base, BaseModel):
    __tablename__ = 'article_push_label'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    label_name = Column(String(128), comment='名称')
    label_sort = Column(INTEGER(5), comment='排序')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class Auth(Base, BaseModel):
    __tablename__ = 'auth'
    __table_args__ = {'comment': '权限定义表'}

    id = Column(String(64), primary_key=True)
    ur_code = Column(String(16), nullable=False, unique=True, comment='权限唯一编码')
    ur_coll = Column(String(64), nullable=False, comment='角色是集合,数据权限是描述')
    ur_desc = Column(String(255), comment='权限描述')
    ur_name = Column(String(128), nullable=False, comment='用户角色描述（后台展示用）')
    ur_action = Column(String(64), nullable=False, comment='不满足当前权限要执行的动作')
    ur_action_desc = Column(String(128), nullable=False, comment='动作描述')
    ur_type = Column(INTEGER(3), nullable=False, comment='角色类型 0:功能角色 1:数据角色')
    create_by = Column(String(64), nullable=False)
    create_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
    update_by = Column(String(64))
    update_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"))
    priority = Column(INTEGER(11), nullable=False, server_default=text("'0'"), comment='优先级')


class AuthBusinessRel(Base, BaseModel):
    __tablename__ = 'auth_business_rel'
    __table_args__ = {'comment': '权限业务关系表'}

    id = Column(String(64), primary_key=True)
    ua_type = Column(String(16), nullable=False, comment='权限类型')
    ua_roles = Column(String(64), nullable=False, comment='权限（多选，eg：R1&S1）')
    ua_source_id = Column(String(64), nullable=False, comment='资源ID')
    ua_desc = Column(String(255), nullable=False, comment='描述')
    create_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
    update_by = Column(String(64))
    update_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
    delete_tag = Column(INTEGER(3), nullable=False, server_default=text("'0'"))
    create_by = Column(String(64))


class AuthInformation(Base, BaseModel):
    __tablename__ = 'auth_information'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='主键')
    user_name = Column(String(64), comment='姓名')
    user_phone = Column(String(64), comment='手机号')
    user_zhiwei = Column(String(64), comment='职位')
    user_email = Column(String(64), comment='邮箱')
    staff_no = Column(String(64), comment='工号')
    user_info_id = Column(String(64), comment='用户Id')
    org_id = Column(String(64), comment='机构Id')
    user_teamid = Column(String(64), comment='团队ID')
    status = Column(INTEGER(128), comment='状态')
    reviewer = Column(String(64), comment='审核人')
    review_time = Column(DateTime, comment='审核时间')
    user_role = Column(String(3), comment='角色')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class AuthTask(Base, BaseModel):
    __tablename__ = 'auth_task'
    __table_args__ = {'comment': '权限任务表'}

    id = Column(String(64), primary_key=True, comment='主键')
    auth_code = Column(String(16), nullable=False, comment='数据权限code')
    task_code = Column(String(16), nullable=False, comment='任务编号')
    task_param = Column(String(16), nullable=False, comment='任务数值')
    add_auth_code = Column(String(16), nullable=False, comment='添加的权限')
    start_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), comment='开始时间')
    end_time = Column(DateTime, server_default=text("'0000-00-00 00:00:00'"), comment='结束时间')
    create_by = Column(String(64), comment='创建人')
    create_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间')
    update_by = Column(String(64), comment='修改人')
    update_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), comment='修改时间')
    delete_tag = Column(INTEGER(3), nullable=False, server_default=text("'0'"), comment='删除标识 0:否 1:是')


class Banner(Base, BaseModel):
    __tablename__ = 'banner'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    type = Column(INTEGER(5), comment='类型')
    img_url = Column(String(128), comment='图片地址')
    ref_id = Column(String(64), comment='关联ID')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class CompositeIndexLog(Base, BaseModel):
    __tablename__ = 'composite_index_log'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    currentdate = Column(Date, comment='当前日期')
    indexcode = Column(String(80), comment='指数代码')
    indexname = Column(String(80), comment='指数名')
    indextype = Column(String(80), comment='指数类型(1国内，2全球)')
    indexendprice = Column(String(80), comment='指数值')
    indexchangeprice = Column(String(80), comment='涨跌额')
    indexchangepricerate = Column(String(80), comment='涨跌幅')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class ConstantDatum(Base, BaseModel):
    __tablename__ = 'constant_data'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    cd_type = Column(String(32), comment='类型')
    cd_value = Column(String(256), comment='赋值')
    cd_desc = Column(String(256), comment='描述')
    org_id = Column(String(64), comment='所属机构')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class CooperateCustomer(Base, BaseModel):
    __tablename__ = 'cooperate_customer'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    cc_customer_id = Column(String(64), comment='客户id')
    cc_customer_phone = Column(String(16))
    cc_customer_name = Column(String(64))
    cc_partner_teamid = Column(String(64), comment='合作伙伴所在团队')
    cc_partnerid = Column(String(64), comment='合作伙伴ID')
    manager_id = Column(String(64), comment='外拓经理Id')
    cc_planid = Column(String(64), comment='使用方案')
    cc_process_status = Column(String(32), comment='进度状态')
    cc_userrecord_id = Column(String(64), comment='用户行为记录ID')
    cc_userlinks = Column(Text, comment='用户链路')
    cc_articleid = Column(String(64))
    org_id = Column(String(64), comment='机构Id')
    cc_type = Column(String(3), comment='类型 0：异业合作 1：直销活动')
    ext = Column(String(5120), comment='扩展信息')
    share_status = Column(String(3), comment='分享状态 0：未分享 1：已分享')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CooperateCustomerProces(Base, BaseModel):
    __tablename__ = 'cooperate_customer_process'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    cc_ccid = Column(String(64), comment='引流方案记录ID')
    ccp_process_status = Column(String(32), comment='目标阶段')
    ccp_comm = Column(BIGINT(8), comment='佣金')
    ccp_beizhu = Column(String(256), comment='备注')
    ccp_planid = Column(String(64), comment='方案ID')
    ccp_teamid = Column(String(64), comment='合作引流团队')
    cc_partnerid = Column(String(64), comment='合作伙伴ID')
    manager_id = Column(String(64), comment='外拓经理Id')
    cc_customerid = Column(String(64), comment='客户ID')
    cc_imgurls = Column(String(256), comment='附件图片')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CooperateExistingCustomer(Base, BaseModel):
    __tablename__ = 'cooperate_existing_customer'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    plan_id = Column(String(64), comment='方案ID')
    customer_name = Column(String(64), comment='客户姓名')
    customer_mobilephone = Column(String(20), comment='客户手机号')
    activated = Column(INTEGER(1), comment='是否激活')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CooperatePartner(Base, BaseModel):
    __tablename__ = 'cooperate_partner'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    cp_openid = Column(String(64), comment='openid')
    cp_name = Column(String(64), comment='姓名')
    cp_phone = Column(String(64), comment='手机号')
    cp_userid = Column(String(64), comment='合作企业员工ID')
    cp_teamid = Column(String(64), comment='所在合作团队')
    cp_status = Column(String(3), comment='合作状态')
    cp_beizhu = Column(String(256), comment='备注')
    org_id = Column(String(64), comment='合作机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CooperatePlan(Base, BaseModel):
    __tablename__ = 'cooperate_plan'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    plan_name = Column(String(64), comment='方案名称')
    plan_status = Column(String(3), comment='方案状态')
    plan_coustomer_target = Column(String(1024), comment='客户目标')
    plan_detail = Column(String(1024), comment='方案详情')
    org_id = Column(String(64), comment='机构Id')
    plan_type = Column(String(3), comment='类型 0：异业合作 1：直销活动')
    validation_switch = Column(INTEGER(1), comment='是否开启手机号验证')
    share_switch = Column(INTEGER(1), comment='分享开关')
    share_articleid = Column(String(64), comment='分享标题')
    ext = Column(String(5120), comment='扩展信息')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CooperateTeam(Base, BaseModel):
    __tablename__ = 'cooperate_team'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ct_name = Column(String(64), comment='团队名称')
    ct_controteam = Column(String(3), comment='是否允许企业员工管理团队')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CrawlerConfigure(Base, BaseModel):
    __tablename__ = 'crawler_configure'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    weburlorwechatsubs = Column(String(256), comment='爬取的网址或公众号名称')
    wechatuid = Column(String(64), comment='微信公众号uid')
    wxcrawletype = Column(String(3), comment='微信爬取类型')
    crawlertype = Column(String(8), comment='抓取类别')
    contenttype = Column(String(8), comment='内容分类')
    crawlersource = Column(String(128), comment='抓取来源|网站')
    regex_list = Column(String(1024), comment='正则匹配')
    css_selector_list = Column(String(1024), comment='页面元素提取集合')
    task_time = Column(String(128), comment='定时抓取时间')
    personal = Column(INTEGER(1), comment='私有的')
    wechat_category = Column(String(1024), comment='微信公众号分类')
    wechat_imgurl = Column(String(256))
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    wechat_desc = Column(String(1024))


class CrawlerLog(Base, BaseModel):
    __tablename__ = 'crawler_log'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    crawler_wxname = Column(String(128), comment='公众号|网站')
    crawler_status = Column(String(255), comment='抓取状态')
    crawler_message = Column(String(255), comment='抓取结果')
    crawler_date = Column(DateTime, comment='抓取时间')


class CsFileRecord(Base, BaseModel):
    __tablename__ = 'cs_file_record'
    __table_args__ = (
        Index('idx_logical_path_file_type', 'logical_path', 'file_type'),
    )

    guid = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    original_name = Column(String(128), comment='文件原始名称')
    original_url = Column(String(256), comment='文件原链接')
    file_suffix = Column(String(128), comment='文件后缀名')
    file_type = Column(String(128), comment='文件类型')
    logical_name = Column(String(128), comment='文件逻辑名')
    logical_path = Column(String(256), comment='文件存放路径')
    refid = Column(Text, comment='关联数据ID')
    file_status = Column(INTEGER(128), comment='文件状态')
    ext1 = Column(String(128), comment='扩展字段1')
    ext2 = Column(String(128), comment='扩展字段2')
    ext3 = Column(String(128), comment='扩展字段3')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    ext4 = Column(String(64), comment='视频/音频时长')


class CurriculumChapter(Base, BaseModel):
    __tablename__ = 'curriculum_chapter'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    cc_id = Column(String(32), comment='所属课程')
    cc_title = Column(String(128), comment='章节标题')
    cc_firstcatalog_id = Column(String(64), comment='所属一级目录ID')
    cc_timelength = Column(INTEGER(128), comment='时长')
    cc_content = Column(MEDIUMTEXT, comment='章节文稿内容')
    cc_audio = Column(String(128), comment='章节音频')
    cc_buy_basenum = Column(BIGINT(8), comment='虚拟购买数')
    cc_buy_actualnum = Column(BIGINT(8), comment='实际购买数')
    cc_collect_basenum = Column(BIGINT(8), comment='虚拟收藏数')
    cc_collect_actualnum = Column(BIGINT(8), comment='实际收藏数')
    cc_praise_basenum = Column(BIGINT(8), comment='虚拟点赞数')
    cc_praise_actualnum = Column(BIGINT(8), comment='实际点赞数')
    cc_fee_type = Column(String(3), comment='收费类型')
    cc_status = Column(String(3), comment='状态')
    cc_release_time = Column(DateTime, comment='上架时间')
    uptime = Column(DateTime, comment='定时上架时间')
    org_id = Column(String(64), comment='机构ID')
    cc_territory = Column(String(64), comment='擅长领域')
    upload_type = Column(String(3), comment='上传文件类型')
    createby = Column(String(64), comment='创建人')
    createtime = Column(DateTime, comment='创建时间')
    updateby = Column(String(64), comment='修改人')
    updatetime = Column(DateTime, comment='修改时间')
    deletetag = Column(String(3), comment='删除标识')
    datum_chap = Column(String(128), comment='章节资料')
    cc_teaid = Column(String(64), comment='讲师ID')
    cc_desc = Column(String(1024))
    ci_teaid = Column(String(64), comment='讲师Id')
    upload_size = Column(String(128), comment='上传文件大小')
    cc_sort = Column(INTEGER(5), comment='章节排序')
    cc_label = Column(String(165), comment='课节标签')
    c_res_id = Column(String(64), index=True, comment='课程id')
    is_recommend = Column(INTEGER(1), comment='是否推荐')
    recommend_reason = Column(String(100), comment='推荐理由')
    recommend_cover = Column(String(128), comment='推荐封面')
    read_num = Column(INTEGER(11), server_default=text("'0'"), comment='阅读数')
    read_base_num = Column(INTEGER(11), server_default=text("'0'"), comment='阅读基数')


class CurriculumChapterFirstcatalog(Base, BaseModel):
    __tablename__ = 'curriculum_chapter_firstcatalog'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ccf_id = Column(String(32), comment='所属课程')
    ccf_title = Column(String(128), comment='标题')
    ccf_status = Column(String(3), comment='状态')
    ccf_release_time = Column(DateTime, comment='上架时间')
    org_id = Column(String(64), comment='机构ID')
    createby = Column(String(64), comment='创建人')
    createtime = Column(DateTime, comment='创建时间')
    updateby = Column(String(64), comment='修改人')
    updatetime = Column(DateTime, comment='修改时间')
    deletetag = Column(String(3), comment='删除标识')


class CurriculumColumn(Base, BaseModel):
    __tablename__ = 'curriculum_column'
    __table_args__ = {'comment': '栏目表'}

    id = Column(String(64), primary_key=True, comment='主键id')
    code = Column(String(64), comment='栏目code')
    title = Column(String(15), nullable=False, comment='栏目标题')
    info = Column(String(500), comment='简介')
    content = Column(MEDIUMTEXT, comment='文稿内容')
    cover = Column(String(100), nullable=False, comment='封面')
    level = Column(INTEGER(1), nullable=False, index=True, comment='目录等级 1：一级 2：二级')
    parent_id = Column(String(64), nullable=False, comment='上级栏目')
    status = Column(INTEGER(1), nullable=False, comment='状态')
    sort = Column(INTEGER(11), nullable=False, server_default=text("'0'"), comment='排序')
    module_id = Column(String(64), nullable=False, comment='模块id   nav：导航  selected：精选 live：直播  curriculum:课程')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(64), nullable=False, comment='创建人')
    update_time = Column(DateTime, nullable=False, comment='修改时间')
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否删除')


class CurriculumColumnRel(Base, BaseModel):
    __tablename__ = 'curriculum_column_rel'
    __table_args__ = (
        Index('idx_column_rel', 'curriculum_column_id', 'rel_id', unique=True),
        {'comment': '栏目关联表'}
    )

    id = Column(String(64), primary_key=True, comment='主键id')
    curriculum_column_id = Column(String(64), nullable=False, comment='栏目id')
    rel_id = Column(String(64), nullable=False, comment='关联对象id')
    rel_type = Column(INTEGER(1), nullable=False, comment='关联类型  1：栏目  3：直播 4：视频  5 音频')
    sort = Column(INTEGER(11), nullable=False, server_default=text("'0'"), comment='排序')
    status = Column(INTEGER(1), server_default=text("'1'"), comment='状态')
    status_update_time = Column(DateTime, comment='状态变更时间')
    create_time = Column(DateTime, nullable=False, comment='创建时间')


class CurriculumInfo(Base, BaseModel):
    __tablename__ = 'curriculum_info'
    __table_args__ = {'comment': 'introduce_img'}

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ci_title = Column(String(128), comment='课程标题')
    ci_subtitle = Column(String(128), comment='课程副标题')
    ci_briefintro = Column(MEDIUMTEXT, comment='课程简介')
    ci_label = Column(String(500), comment='课程标签')
    ci_cover = Column(String(128), comment='封面')
    ci_bakimg = Column(String(128), comment='详情背景')
    ci_teaid = Column(String(64))
    ci_author = Column(String(32), comment='作者')
    ci_authorheadurl = Column(String(128), comment='作者头像')
    ci_author_position = Column(String(128), comment='作者职位')
    ci_status = Column(String(3), comment='状态')
    ci_buy_basenum = Column(BIGINT(8), comment='虚拟购买数')
    ci_buy_actualnum = Column(BIGINT(8), comment='实际购买数')
    ci_collect_basenum = Column(BIGINT(8), comment='虚拟收藏数')
    ci_collect_actualnum = Column(BIGINT(8), comment='实际收藏数')
    cc_read_basenum = Column(BIGINT(8), comment='虚拟阅读数')
    cc_read_actualnum = Column(BIGINT(8), comment='实际阅读数')
    ci_uptime = Column(DateTime, comment='上架时间')
    ci_istop = Column(String(3), comment='是否置顶')
    ci_top_date = Column(DateTime, comment='置顶时间')
    ci_fee_type = Column(String(3), comment='收费类型')
    ci_flag = Column(String(3), comment='章节标识')
    ci_module = Column(String(3), comment='所属模块')
    ci_total_chapter = Column(INTEGER(5), comment='总章节')
    deletetag = Column(String(3), comment='删除标识')
    ci_catalog_type = Column(String(3), comment='目录模式')
    ci_chapter_updatetime = Column(DateTime, comment='章节最近更新时间')
    ci_smail_cover = Column(String(128))
    org_id = Column(String(64), comment='机构ID')
    createby = Column(String(64), comment='创建人')
    createtime = Column(DateTime, comment='创建时间')
    updateby = Column(String(64), comment='修改人')
    updatetime = Column(DateTime, comment='修改时间')
    ci_type = Column(String(64), comment='类型')
    ci_territory = Column(String(64), comment='擅长领域')
    ci_isrecommend = Column(INTEGER(5), comment='推荐标识')
    ci_isrecommend_time = Column(DateTime, comment='推荐时间')
    ci_reason = Column(String(256), comment='入选理由')
    ci_subject = Column(String(64), comment='专题ID')
    share_title = Column(String(128))
    share_pic = Column(String(256))
    share_desc = Column(String(256))
    ci_courseware = Column(Text)
    ci_fuli = Column(Text)
    ci_qrcode = Column(String(256))
    ci_canlisten_chapternum = Column(INTEGER(3))
    ci_teacher_info = Column(String(100), comment='老师介绍')
    ci_operators_reason = Column(String(500), comment='运营推荐语')
    ci_introduce_code = Column(String(50), comment='群设置/推荐码')
    ci_open_type = Column(INTEGER(1), comment='开放类型0 :任何人参与 1：探普会员 2 注册用户  3 密码')
    ci_open_pwd = Column(String(20), comment='开放密码')
    introduce_img = Column(String(128), comment='推荐课程图片')
    sort_priority = Column(INTEGER(11), server_default=text("'0'"), comment='排序')


class CurriculumInquiryOrder(Base, BaseModel):
    __tablename__ = 'curriculum_inquiry_order'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    of_ordernum = Column(String(64), comment='订单编号')
    ci_curid = Column(String(64), comment='课程ID')
    ci_uname = Column(String(64), comment='姓名')
    ci_phone = Column(String(64), comment='手机')
    ci_desc = Column(String(64), comment='问题描述')
    ci_fileurls = Column(String(4096), comment='附件')
    of_amount = Column(DECIMAL(5, 2), comment='订单金额')
    ci_status = Column(String(3), comment='订单状态')
    pay_status = Column(String(3), comment='支付状态')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CurriculumOften(Base, BaseModel):
    __tablename__ = 'curriculum_often'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    title = Column(String(64), comment='课程名称')
    often_time = Column(DateTime, comment='常听时间')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class CurriculumPackage(Base, BaseModel):
    __tablename__ = 'curriculum_package'
    __table_args__ = {'comment': '课程包表'}

    id = Column(String(64), primary_key=True, comment='主键id')
    title = Column(String(20), nullable=False, comment='课程包标题')
    info = Column(String(100), comment='简介')
    cover = Column(String(100), comment='封面')
    status = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='状态')
    tag = Column(INTEGER(5), comment='标签')
    sort = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='排序')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(50), nullable=False)
    update_time = Column(DateTime)
    delete_tag = Column(INTEGER(1), nullable=False)


class CurriculumPackageContent(Base, BaseModel):
    __tablename__ = 'curriculum_package_content'

    id = Column(String(64), primary_key=True)
    rel_id = Column(String(64), nullable=False, comment='关联id')
    title = Column(String(50), nullable=False, comment='标题')
    cover = Column(String(100), comment='封面')
    content_type = Column(INTEGER(1), nullable=False, comment='类型')
    start_time = Column(DateTime)
    status = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='状态')
    sort = Column(INTEGER(11), nullable=False, server_default=text("'0'"), comment='排序')
    create_time = Column(DateTime, nullable=False)
    create_by = Column(String(64), nullable=False, comment='创建人')
    update_time = Column(DateTime, nullable=False)
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='删除状态')
    res_id = Column(String(64), comment='关联资源ID')


class CurriculumPrice(Base, BaseModel):
    __tablename__ = 'curriculum_price'
    __table_args__ = {'comment': '定价表'}

    id = Column(String(64), primary_key=True)
    rel_id = Column(String(64), nullable=False, index=True, comment='关联id')
    charge_mode = Column(INTEGER(1), nullable=False, comment='付费模式 1：免费 2：积分  3：现金')
    price = Column(BIGINT(10), comment='价格')
    crossed_price = Column(BIGINT(10), comment='划线价')
    promo = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否促销 0：否  1 ：是 ')
    promo_price = Column(BIGINT(10), comment='促销价格')
    promo_start_time = Column(DateTime, comment='促销开始日期')
    promo_end_time = Column(DateTime, comment='促销结束日期')
    use_score = Column(INTEGER(1), server_default=text("'0'"), comment='使用积分 0：不使用 1：使用 （保留字段）')
    score = Column(INTEGER(11), comment='积分')
    is_role_price = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否有角色价 0：没有  1：有')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(64), nullable=False, comment='创建人')
    update_time = Column(DateTime, nullable=False, comment='更新时间')
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='删除')


class CurriculumRel(Base, BaseModel):
    __tablename__ = 'curriculum_rel'
    __table_args__ = (
        Index('index_cid_relid_reltype', 'c_id', 'rel_id', 'rel_type'),
    )

    id = Column(String(64), primary_key=True, comment='主键id')
    c_id = Column(String(64), nullable=False, comment='课程id')
    rel_id = Column(String(64), nullable=False, comment='相关联id')
    rel_type = Column(INTEGER(1), nullable=False, comment='关联类型 1：课程 2：直播 3 ：精选 4：训练营')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(64), nullable=False, comment='创建人')
    delete_tag = Column(INTEGER(1), nullable=False, comment='删除标识')


class CurriculumRe(Base, BaseModel):
    __tablename__ = 'curriculum_res'
    __table_args__ = {'comment': '课程资源'}

    id = Column(String(64), primary_key=True, comment='主键id')
    title = Column(String(50), nullable=False, comment='课程名称')
    audio = Column(String(128), comment='课程音视频')
    audio_type = Column(INTEGER(1), comment='音频类型')
    teacher_id = Column(String(64), comment='讲师id')
    teacher_name = Column(String(128), comment='讲师姓名')
    content = Column(MEDIUMTEXT, comment='文稿内容')
    duration = Column(INTEGER(11), comment='时长')
    file_size = Column(INTEGER(11), comment='文件大小KB')
    org_id = Column(String(64), index=True, comment='组织id')
    room_pwd = Column(String(50), comment='房间密码')
    create_by = Column(String(64), nullable=False, comment='创建人')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    update_by = Column(String(64), comment='更新人')
    update_time = Column(DateTime, comment='更新时间')
    delete_tag = Column(INTEGER(1), nullable=False, comment='删除标识')
    read_num = Column(INTEGER(11), server_default=text("'0'"), comment='阅读数')
    read_base_num = Column(INTEGER(11), server_default=text("'0'"), comment='阅读基础数')
    status = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='状态')
    sort = Column(INTEGER(11), nullable=False, server_default=text("'0'"), comment='排序')
    info = Column(String(255), server_default=text("''"), comment='简介')
    cover = Column(String(255), nullable=False, server_default=text("''"), comment='封面')

#
# t_curriculum_share_config = Table(
#     'curriculum_share_config', metadata,
#     Column('id', String(64), nullable=False, comment='主键'),
#     Column('title', String(50), nullable=False, comment='分享标题'),
#     Column('content', String(100), nullable=False, comment='分享内容'),
#     Column('cover', String(100), nullable=False, comment='封面'),
#     Column('rel_id', String(64), nullable=False, comment='关联id'),
#     Column('create_time', DateTime, nullable=False, comment='创建内容'),
#     Column('update_time', DateTime, nullable=False, comment='更新时间'),
#     Column('create_by', String(64), nullable=False, comment='创建人'),
#     comment='课程分享配置'
# )


class CurriculumSubject(Base, BaseModel):
    __tablename__ = 'curriculum_subject'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    cs_name = Column(String(128), comment='专题名称')
    cs_desc = Column(String(1024), comment='专题描述')
    cs_imgurl = Column(String(256), comment='首页推荐图片')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    cs_detail = Column(MEDIUMTEXT, comment='专题详情')
    cs_introduce_code = Column(String(100), comment='群设置 推荐码 ')
    cs_open_type = Column(INTEGER(1), comment='0 :任何人参与 1 注册用户 ')
    status = Column(INTEGER(1), comment='状态')
    org_id = Column(String(64), comment='组织机构')
    update_status = Column(INTEGER(1), server_default=text("'0'"), comment='0: 更新中 1：停更')
    read_limit = Column(INTEGER(11), server_default=text("'0'"), comment='收听限制')


class CurriculumSubjectChapter(Base, BaseModel):
    __tablename__ = 'curriculum_subject_chapter'
    __table_args__ = {'comment': '专题章节'}

    id = Column(String(64), primary_key=True, comment='主键id')
    cs_id = Column(String(64), nullable=False, comment='专题id')
    title = Column(String(255), nullable=False, comment='章节名称')
    teacher_id = Column(String(64), comment='讲师id')
    teacher_name = Column(String(100), comment='讲师姓名')
    status = Column(INTEGER(1), nullable=False, comment='状态')
    uptime = Column(DateTime, comment='定时上架时间')
    release_time = Column(DateTime, comment='上架时间')
    fee_type = Column(INTEGER(1), comment='试听设置')
    content = Column(Text, comment='文稿')
    teacher_info = Column(Text, comment='讲师描述')
    audio = Column(String(128), nullable=False, comment='音频')
    audio_size = Column(INTEGER(11), comment='音频大小')
    audio_length = Column(INTEGER(11), comment='音频时长')
    audio_type = Column(INTEGER(1), comment='音频类型')
    read_base = Column(INTEGER(11), comment='阅读基数')
    read_num = Column(INTEGER(11), server_default=text("'0'"), comment='阅读人数')
    sort_priority = Column(INTEGER(11), server_default=text("'0'"), comment='排序')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(64), nullable=False, comment='创建人')
    update_time = Column(DateTime, comment='更新时间')
    update_by = Column(String(64), comment='更新人')


class CurriculumTeacher(Base, BaseModel):
    __tablename__ = 'curriculum_teacher'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ct_headimg = Column(String(128), comment='老师头像')
    ct_teaname = Column(String(64), comment='老师姓名')
    ct_teadesc = Column(String(1024), comment='老师简介')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    ct_userId = Column(String(64), comment='关联用户')
    ct_user_id = Column(String(64), comment='关联用户')


# t_customer_ifa_rel = Table(
#     'customer_ifa_rel', metadata,
#     Column('id', String(64), nullable=False, comment='主键'),
#     Column('user_id', String(64), nullable=False, comment='理财师id'),
#     Column('customer_id', String(64), nullable=False, comment='客户id'),
#     Column('create_time', DateTime, nullable=False, comment='创建时间'),
#     Column('create_by', String(64), nullable=False, comment='创建人'),
#     Column('update_time', DateTime, comment='更时间'),
#     Column('update_by', String(64), comment=' 更新人'),
#     Column('delete_id', INTEGER(1), nullable=False, server_default=text("'0'"), comment='删除标识'),
#     comment='客户理财师关联表'
# )


# t_customer_info = Table(
#     'customer_info', metadata,
#     Column('id', String(64), nullable=False, comment='主键'),
#     Column('customer_name', String(50), server_default=text("''"), comment='客户姓名'),
#     Column('create_time', DateTime, comment='创建时间'),
#     Column('create_by', String(64), server_default=text("''"), comment='创建人'),
#     Column('update_time', DateTime, comment='更新时间'),
#     Column('update_by', String(64), comment='更新人'),
#     Column('delete_tag', INTEGER(1), server_default=text("'0'"), comment='删除标识'),
#     comment='客户表'
# )


class CustomerInfo(Base, BaseModel):
    __tablename__ = 'customer_info'
    __table_args__ = {'comment': '客户表'}
    id =  Column(String(64), nullable=False, comment='主键')
    customer_name = Column(String(50), server_default=text("''"), comment='客户姓名')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), server_default=text("''"), comment='创建人')
    update_time = Column(DateTime, comment='更新时间')
    update_by = Column(String(64), comment='更新人')
    delete_tag = Column(INTEGER(1), server_default=text("'0'"), comment='删除标识')


# t_customer_order = Table(
#     'customer_order', metadata,
#     Column('id', String(64), nullable=False, comment='主键id'),
#     Column('user_id', String(64), server_default=text("''"), comment='理财师id'),
#     Column('customer_id', String(64), server_default=text("''"), comment='客户id'),
#     Column('folio_name', VARCHAR(64), server_default=text("'default'"), comment='组合名称，默认default，可以单用户多组合'),
#     Column('fund_id', String(64), server_default=text("''"), comment='产品id'),
#     Column('order_type', INTEGER(1), comment='1:申购  2：赎回'),
#     Column('pay_date', Date, comment='打款日期'),
#     Column('subscription_fee', DECIMAL(22, 6), comment='申购费'),
#     Column('confirm_share_date', Date, comment='份额确认日期'),
#     Column('confirm_share', DECIMAL(22, 6), comment='确认份额'),
#     Column('confirm_amount', DECIMAL(22, 6), comment='确认金额'),
#     Column('nav', DECIMAL(22, 6), comment='净值'),
#     Column('remark', String(255), comment='备注'),
#     Column('create_time', DateTime, comment='创建时间'),
#     Column('create_by', String(64), comment='创建时间'),
#     Column('update_time', DateTime, comment='更新时间'),
#     Column('update_by', String(64), comment='更新人'),
#     comment='客户订单'
# )


class CustomerOrder(Base, BaseModel):
    __tablename__ = 'customer_order'
    __table_args__ = {'comment': '客户订单'}
    id = Column(String(64), nullable=False, comment='主键id')
    user_id = Column(String(64), server_default=text("''"), comment='理财师id')
    customer_id = Column(String(64), server_default=text("''"), comment='客户id')
    folio_name = Column(VARCHAR(64), server_default=text("'default'"), comment='组合名称，默认default，可以单用户多组合')
    fund_id = Column(String(64), server_default=text("''"), comment='产品id')
    order_type = Column(INTEGER(1), comment='1:申购  2：赎回')
    pay_date = Column(Date, comment='打款日期')
    subscription_fee = Column(DECIMAL(22, 6), comment='申购费')
    confirm_share_date = Column(Date, comment='份额确认日期')
    confirm_share = Column(DECIMAL(22, 6), comment='确认份额')
    confirm_amount = Column(DECIMAL(22, 6), comment='确认金额')
    nav = Column(DECIMAL(22, 6), comment='净值')
    remark = Column(String(255), comment='备注')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建时间')
    update_time = Column(DateTime, comment='更新时间')
    update_by = Column(String(64), comment='更新人')


class DaySelection(Base, BaseModel):
    __tablename__ = 'day_selection'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ds_type = Column(String(64), comment='类型')
    ds_subject_id = Column(String(64), comment='主题ID')
    ds_id = Column(String(64), comment='关联数据ID')
    ds_sort = Column(INTEGER(128), comment='排序')
    ds_ext = Column(String(128), comment='扩展')
    ds_isrecommend = Column(String(3), comment='是否推荐0:否 1:是')
    ds_focus_topic = Column(String(3), comment='是否焦点话题0:否1:是')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class DaySubject(Base, BaseModel):
    __tablename__ = 'day_subject'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ds_title = Column(String(128), comment='标题')
    ds_date = Column(Date, comment='主题日期')
    ds_status = Column(String(3), comment='状态')
    ds_ispush_content = Column(String(3), comment='是否推内容 0:否 1:是')
    ds_picurl = Column(String(256), comment='不推内容时图片地址')
    ds_pic_link = Column(String(256), comment='图片跳转链接')
    ds_thumbnail = Column(String(256), comment='缩略图')
    ds_issettop = Column(String(3), comment='是否置顶0:否 1:是')
    ds_day_title = Column(String(128), comment='好奇心日语标题')
    ds_day_content = Column(Text, comment='好奇心日语内容')
    ds_taskuptime = Column(DateTime, comment='定时上架时间')
    ds_pt = Column(String(128), comment='平台')
    base_browse_num = Column(INTEGER(5))
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class Exam(Base, BaseModel):
    __tablename__ = 'exam'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ex_name = Column(String(256), comment='试卷名称')
    ex_starttime = Column(DateTime, comment='考试开始时间')
    ex_endtime = Column(DateTime, comment='考试结束时间')
    ex_totalscore = Column(INTEGER(5), comment='满分')
    ex_passscore = Column(INTEGER(5), comment='合格分')
    ex_status = Column(String(3), comment='状态')
    org_id = Column(String(64), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class ExamContent(Base, BaseModel):
    __tablename__ = 'exam_content'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ex_id = Column(String(64), comment='试卷ID')
    ec_type = Column(String(3), comment='题目类型')
    ec_title = Column(String(512), comment='标题')
    ec_content = Column(String(1024), comment='内容选项')
    ec_right = Column(String(64), comment='正确答案')
    ear_score = Column(INTEGER(5), comment='题目分数')
    org_id = Column(String(64), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class FinProRe(Base, BaseModel):
    __tablename__ = 'fin_pro_res'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    name = Column(String(64), comment='名称')
    abbr = Column(String(64), comment='名称简拼')
    bak = Column(String(128), comment='备注')
    status = Column(INTEGER(1), comment='状态')
    flag = Column(String(3), comment='标识0:机构产品 1：用户自定义产品')
    resjson = Column(Text, comment='产品资料')
    desjson = Column(MEDIUMTEXT, comment='宣传文案')
    pro_imgurl = Column(String(256), comment='产品缩略图')
    pro_bright = Column(Text, comment='产品亮点')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    org_id = Column(String(64), comment='机构Id')
    pro_tag = Column(String(2048), comment='产品标签')
    title_sw = Column(String(3), comment='名称开关')
    pro_title = Column(String(128), comment='列表名称')
    pro_risk_config = Column(Text, comment='风险揭示书配置')
    investor_certification_switch = Column(INTEGER(1), comment='风险管控开关')
    risk_level = Column(INTEGER(2), comment='风险评级')
    ar_review_by = Column(String(64), comment='审核人')
    ar_review_time = Column(DateTime, comment='审核时间')
    ar_submit_by = Column(String(64), comment='提交发布人')
    ar_submit_time = Column(DateTime, comment='提交发布时间')
    ar_release_by = Column(String(64), comment='上架人')
    ar_release_time = Column(DateTime, comment='上架时间')
    pro_type = Column(String(64), comment='产品类型')
    ar_solt_by = Column(String(64), comment='下架人')
    ar_solt_time = Column(DateTime, comment='下架时间')
    pro_soldout_Time = Column(DateTime, comment='预下架时间')
    raise_start = Column(DateTime, comment='募集开始时间')
    raise_end = Column(DateTime, comment='募集结束时间')
    pro_status = Column(String(64), comment='产品状态')
    raise_num = Column(String(64), comment='募集量')


class FriendArticle(Base, BaseModel):
    __tablename__ = 'friend_article'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    af_title = Column(VARCHAR(128), comment='标题')
    af_thumbnail = Column(String(256), comment='缩略图')
    af_author = Column(String(32), comment='文章作者')
    af_source = Column(String(32), comment='文章来源')
    af_crawler_url = Column(String(512), comment='抓取来源Url')
    af_content = Column(MEDIUMTEXT, comment='内容')
    af_imgs = Column(Text, comment='图片')
    af_status = Column(INTEGER(3), comment='状态')
    af_push_to = Column(String(3), comment='推送目标 0：全员 1：团队')
    af_push_teamid = Column(String(1024), comment='团队ID')
    af_type = Column(String(128), comment='文章类型')
    openid = Column(String(128), comment='openid')
    org_id = Column(String(128), comment='机构ID')
    share_msg = Column(String(2048), comment='分享信息')
    ar_abstract = Column(String(1024), comment='摘要')
    ar_audio = Column(String(256), comment='音频')
    ar_audio_length = Column(INTEGER(8), comment='音频时长')
    af_proid = Column(String(512), comment='关联产品ID')
    af_company_intro = Column(String(3), comment='是否关联公司介绍')
    af_planid = Column(String(64), comment='直销活动ID')
    af_tags = Column(String(128), comment='关联标签')
    af_articleid = Column(String(64), comment='原文章ID')
    af_is_protected = Column(INTEGER(128), comment='是否加密')
    af_password = Column(String(128), comment='密码')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    af_review_by = Column(String(64), comment='审核人')
    af_review_time = Column(DateTime, comment='审核时间')
    af_reject_reason = Column(String(64), comment='驳回理由')
    af_reject_time = Column(String(64), comment='驳回时间')


class Func(Base, BaseModel):
    __tablename__ = 'func'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='主键')
    f_tem_code = Column(String(16), comment='所属模块')
    f_tem_name = Column(String(32), comment='所属模块名称')
    f_code = Column(String(16), comment='功能码')
    f_name = Column(String(32), comment='功能名称')
    f_name_tp = Column(String(32), comment='探普学院对应功能名称')
    f_router = Column(String(256), comment='路由')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class HomeRemmend(Base, BaseModel):
    __tablename__ = 'home_remmend'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    remmend_data = Column(Text, comment='自定义')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class IfaWechatPoster(Base, BaseModel):
    __tablename__ = 'ifa_wechat_poster'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    poster_imgurl = Column(String(256), comment='海报图片地址')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class IfaWechatStore(Base, BaseModel):
    __tablename__ = 'ifa_wechat_store'
    __table_args__ = {'comment': '微店信息表'}

    id = Column(String(64), primary_key=True, comment='唯一主键')
    storename = Column(String(64))
    ifaid = Column(String(64), nullable=False, comment='理财师ID')
    today_guest = Column(INTEGER(11), nullable=False, comment='今日访客')
    today_new_guest = Column(INTEGER(11), nullable=False, comment='今日新增访客')
    sign = Column(String(64), comment='签名')
    today_date = Column(Date, comment='今日日期')


class ImpressionLabel(Base, BaseModel):
    __tablename__ = 'impression_label'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    il_label = Column(String(64), comment='印象标签')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class InvestorRz(Base, BaseModel):
    __tablename__ = 'investor_rz'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ir_explain = Column(String(512), comment='说明')
    option_a = Column(String(512), comment='选项A')
    option_b = Column(String(512), comment='选项B')
    staus = Column(INTEGER(3), nullable=False, server_default=text("'1'"), comment='启用状态 1:启用 0:不启用')
    ir_startime = Column(DateTime, comment='启用时间')
    ir_endtime = Column(DateTime, comment='到期时间')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='删除标识')
    title = Column(String(128), nullable=False, server_default=text("''"), comment='标题')
    sub_title = Column(String(512), server_default=text("''"), comment='副标题')


class OperateActivityNewyeardraw(Base, BaseModel):
    __tablename__ = 'operate_activity_newyeardraw'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    oan_action = Column(String(3), comment='动作行为')
    oan_username = Column(String(64), comment='故事人')
    oan_type = Column(String(3), comment='签类型')
    oan_share_userid = Column(String(64), comment='分享人')
    oan_share_sourceid = Column(String(64), comment='分享源ID')
    oan_resimgurl = Column(String(256))
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class Operation(Base, BaseModel):
    __tablename__ = 'operation'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    operation_type = Column(INTEGER(11), comment='日志类型')
    sub_operation_type = Column(INTEGER(11), comment='内容类型')
    ref_id = Column(String(64), comment='内容编号')
    ref_title = Column(String(128), comment='内容标题')
    action_name = Column(INTEGER(11), comment='操作类型')
    org_id = Column(String(64), comment='机构ID')
    create_id = Column(String(64), comment='创建人Id')
    create_name = Column(String(128), comment='创建人姓名')
    create_time = Column(DateTime, comment='创建时间')


class OrderFlow(Base, BaseModel):
    __tablename__ = 'order_flow'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ab_ordernum = Column(String(128), comment='订单号')
    ab_price = Column(BIGINT(12), comment='产品价格')
    ab_score = Column(BIGINT(12), comment='积分')
    ab_score_deduct = Column(BIGINT(12), comment='积分抵扣')
    ab_account_deduct = Column(BIGINT(12), comment='账户余额抵扣')
    ab_payment = Column(BIGINT(12), comment='支付通道付款金额')
    ab_pay_mode = Column(String(3), comment='支付方式')
    ab_total_money = Column(BIGINT(12), comment='订单总额')
    ab_type = Column(String(3), comment='产品类型')
    ab_proid = Column(String(64), comment='产品ID')
    ab_pro_siid = Column(String(64), comment='产品规格ID')
    ab_si_type = Column(String(3), comment='产品规格类型')
    ab_si_name = Column(String(32), comment='产品规格规格名称')
    ab_si_code = Column(String(16), comment='产品规格规格编码')
    ab_si_pattern = Column(String(3), comment='产品规格定价模式')
    ab_status = Column(String(16), comment='状态')
    ab_rights_status = Column(String(3), comment='权益分配状态')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    unionid = Column(String(64), comment='微信unionid')


class Org(Base, BaseModel):
    __tablename__ = 'org'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='主键')
    org_code = Column(String(64), comment='机构唯一识别码')
    org_name = Column(String(64), comment='机构名称')
    automatic_processing = Column(INTEGER(128), comment='自动通过认证')
    isbuy_selection = Column(String(3), comment='是否购买了精选：0：否 1：是')
    isbuy_todayfocus = Column(String(3), comment='是否购买了今日聚焦 0：否 1：是')
    ar_push_labels = Column(Text, comment='推送标签')
    fun_codes = Column(String(1024), comment='功能码')
    homepage_custom = Column(Text, comment='个人主页定制')
    content_set = Column(String(512), comment='获客内容设置')
    card_template = Column(INTEGER(128), comment='名片模板')
    accredited_investor_switch = Column(INTEGER(1), comment='合格投资者认证开关')
    friend_tools_switch = Column(INTEGER(1), comment='朋友圈助手开关')
    tag_category_id = Column(String(64), comment='机构主体类别')
    aliyun_sign_name = Column(String(128), comment='阿里云短信签名')
    aliyun_tempcode = Column(String(128), comment='阿里云消息模版ID')
    aliyun_access_key_id = Column(String(128), comment='阿里云AccessKeyId')
    aliyun_access_key_secret = Column(String(128), comment='阿里云AccessKeySecret')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class PhotoLive(Base, BaseModel):
    __tablename__ = 'photo_live'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    pl_name = Column(String(128), comment='活动名称')
    pl_start_time = Column(DateTime, comment='活动开始时间')
    pl_end_time = Column(DateTime, comment='活动结束时间')
    pl_address = Column(String(256), comment='活动地点')
    pl_cover = Column(String(256), comment='欢迎页照片')
    pl_background = Column(String(256), comment='内容页照片')
    pl_watermark = Column(String(64), comment='照片水印')
    pl_share_desc = Column(String(64), comment='分享文案')
    pl_share_logo = Column(String(256), comment='分享图片')
    pl_adv = Column(String(128), comment='底部滚动条文案')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class PhotoLiveExt(Base, BaseModel):
    __tablename__ = 'photo_live_ext'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    photo_live_id = Column(String(64), comment='照片直播活动Id')
    ple_type = Column(INTEGER(3), comment='类型')
    target_id = Column(String(64), comment='目标Id')
    ple_adv_logo = Column(String(256), comment='广告图片')
    ple_adv_desc = Column(String(64), comment='广告语')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class PhotoLiveLike(Base, BaseModel):
    __tablename__ = 'photo_live_like'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    photo_live_id = Column(String(64), comment='照片直播活动Id')
    user_info_id = Column(String(64), comment='用户Id')
    file_id = Column(String(64), comment='图片文件Id')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class ProReservation(Base, BaseModel):
    __tablename__ = 'pro_reservation'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    pr_pro_id = Column(String(64), comment='产品ID')
    pr_user_id = Column(String(64), comment='用户id')
    pr_username = Column(String(80), comment='用户姓名')
    pr_mobile_phone = Column(String(20), comment='用户手机号')
    pr_fauser_id = Column(String(64), comment='理财师Id')
    pr_team_id = Column(String(64), comment='团队ID')
    pr_team_fullpathid = Column(String(1024), comment='团队全路径ID')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class ProblemFeedback(Base, BaseModel):
    __tablename__ = 'problem_feedback'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    pf_type = Column(String(32), comment='类型')
    pf_cont = Column(String(512), comment='反馈内容')
    pf_pic = Column(String(1024), comment='图片')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class QrtzCalendar(Base, BaseModel):
    __tablename__ = 'qrtz_calendars'

    SCHED_NAME = Column(String(120), primary_key=True, nullable=False)
    CALENDAR_NAME = Column(String(190), primary_key=True, nullable=False)
    CALENDAR = Column(LargeBinary, nullable=False)


class QrtzFiredTrigger(Base, BaseModel):
    __tablename__ = 'qrtz_fired_triggers'
    __table_args__ = (
        Index('IDX_QRTZ_FT_TRIG_INST_NAME', 'SCHED_NAME', 'INSTANCE_NAME'),
        Index('IDX_QRTZ_FT_JG', 'SCHED_NAME', 'JOB_GROUP'),
        Index('IDX_QRTZ_FT_T_G', 'SCHED_NAME', 'TRIGGER_NAME', 'TRIGGER_GROUP'),
        Index('IDX_QRTZ_FT_INST_JOB_REQ_RCVRY', 'SCHED_NAME', 'INSTANCE_NAME', 'REQUESTS_RECOVERY'),
        Index('IDX_QRTZ_FT_TG', 'SCHED_NAME', 'TRIGGER_GROUP'),
        Index('IDX_QRTZ_FT_J_G', 'SCHED_NAME', 'JOB_NAME', 'JOB_GROUP')
    )

    SCHED_NAME = Column(String(120), primary_key=True, nullable=False)
    ENTRY_ID = Column(String(95), primary_key=True, nullable=False)
    TRIGGER_NAME = Column(String(190), nullable=False)
    TRIGGER_GROUP = Column(String(190), nullable=False)
    INSTANCE_NAME = Column(String(190), nullable=False)
    FIRED_TIME = Column(BIGINT(13), nullable=False)
    SCHED_TIME = Column(BIGINT(13), nullable=False)
    PRIORITY = Column(INTEGER(11), nullable=False)
    STATE = Column(String(16), nullable=False)
    JOB_NAME = Column(String(190))
    JOB_GROUP = Column(String(190))
    IS_NONCONCURRENT = Column(String(1))
    REQUESTS_RECOVERY = Column(String(1))


class QrtzJobDetail(Base, BaseModel):
    __tablename__ = 'qrtz_job_details'
    __table_args__ = (
        Index('IDX_QRTZ_J_GRP', 'SCHED_NAME', 'JOB_GROUP'),
        Index('IDX_QRTZ_J_REQ_RECOVERY', 'SCHED_NAME', 'REQUESTS_RECOVERY')
    )

    SCHED_NAME = Column(String(120), primary_key=True, nullable=False)
    JOB_NAME = Column(String(190), primary_key=True, nullable=False)
    JOB_GROUP = Column(String(190), primary_key=True, nullable=False)
    DESCRIPTION = Column(String(250))
    JOB_CLASS_NAME = Column(String(250), nullable=False)
    IS_DURABLE = Column(String(1), nullable=False)
    IS_NONCONCURRENT = Column(String(1), nullable=False)
    IS_UPDATE_DATA = Column(String(1), nullable=False)
    REQUESTS_RECOVERY = Column(String(1), nullable=False)
    JOB_DATA = Column(LargeBinary)


class QrtzLock(Base, BaseModel):
    __tablename__ = 'qrtz_locks'

    SCHED_NAME = Column(String(120), primary_key=True, nullable=False)
    LOCK_NAME = Column(String(40), primary_key=True, nullable=False)


class QrtzPausedTriggerGrp(Base, BaseModel):
    __tablename__ = 'qrtz_paused_trigger_grps'

    SCHED_NAME = Column(String(120), primary_key=True, nullable=False)
    TRIGGER_GROUP = Column(String(190), primary_key=True, nullable=False)


class QrtzSchedulerState(Base, BaseModel):
    __tablename__ = 'qrtz_scheduler_state'

    SCHED_NAME = Column(String(120), primary_key=True, nullable=False)
    INSTANCE_NAME = Column(String(190), primary_key=True, nullable=False)
    LAST_CHECKIN_TIME = Column(BIGINT(13), nullable=False)
    CHECKIN_INTERVAL = Column(BIGINT(13), nullable=False)


class Quotation(Base, BaseModel):
    __tablename__ = 'quotations'
    __table_args__ = {'comment': '每日金句'}

    id = Column(String(64), primary_key=True)
    title = Column(String(100), comment='标题')
    content_type = Column(INTEGER(1), comment='1:金句 2:节日祝福 3正能量')
    quotation_date = Column(Date, comment='日期')
    content = Column(Text, nullable=False, comment='内容')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(64), nullable=False, comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    status = Column(INTEGER(1), nullable=False, comment='0:待上架 1：已上架  2：已下架')
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='删除标识 ')
    advance_time = Column(Date, comment='预上架时间')


class Rebroadcast(Base, BaseModel):
    __tablename__ = 'rebroadcast'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    rd_time = Column(DateTime, comment='转播时间')
    rd_by_themeid = Column(String(64), comment='被转播直播间ID')
    rd_themeid = Column(String(64), comment='直播间ID')
    company_name = Column(INTEGER(11), comment='预约人数')
    photo = Column(INTEGER(11), comment='参与人数')
    state = Column(INTEGER(11), comment='回放人数')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class ReportActvolume(Base, BaseModel):
    __tablename__ = 'report_actvolume'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ra_team_id = Column(String(64), comment='团队ID')
    ra_team_fullpathid = Column(String(1024), comment='团队全路径ID')
    ra_year = Column(INTEGER(5), comment='年')
    ra_date = Column(Date, comment='日期')
    ra_sharearticle_num = Column(BIGINT(11), comment='发文章次数')
    ra_sharemp_num = Column(BIGINT(11), comment='发名片次数')
    ra_sharehuiwu_num = Column(BIGINT(11), comment='发会务次数')
    ra_sharepro_num = Column(BIGINT(11), comment='发产品次数')
    ra_study_timelength = Column(BIGINT(11), comment='学习总时长')
    ra_sharecompany_num = Column(BIGINT(11), comment='发公司资料次数')
    ra_daka_num = Column(BIGINT(11), comment='拜访打卡次数')
    ra_peixun_canyu_num = Column(BIGINT(11), comment='培训总人数')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class ReportCnReportform(Base, BaseModel):
    __tablename__ = 'report_cn_reportform'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    cn_teamid = Column(String(64), comment='团队Id')
    cn_headimg = Column(String(256), comment='头像')
    cn_username = Column(String(64), comment='姓名')
    cn_year = Column(INTEGER(5), comment='年')
    cn_val = Column(INTEGER(5), comment='值')
    cn_type = Column(INTEGER(5), comment='类型')
    cn_article_chuda_num = Column(BIGINT(11), comment='文章触达客户人数')
    cn_article_frist_num = Column(BIGINT(11), comment='文章一级客户人数')
    cn_article_forword_num = Column(BIGINT(11), comment='文章客户转发次数')
    cn_article_fission_num = Column(BIGINT(11), comment='文章裂变客户数')
    cn_article_clickpro_num = Column(BIGINT(11), comment='文章点击产品人数')
    cn_article_clickmp_num = Column(BIGINT(11), comment='文章点击名片人数')
    cn_article_clickim_num = Column(BIGINT(11), comment='文章点击聊一聊')
    cn_mp_chuda_num = Column(BIGINT(11), comment='名片触达客户人数')
    cn_mp_change_num = Column(BIGINT(11), comment='名片交换/保存名片数')
    cn_mp_grant_num = Column(BIGINT(11), comment='名片授权电话客户数')
    cn_huiwu_chuda_num = Column(BIGINT(11), comment='会务触达客户人数')
    cn_huiwu_baoming_num = Column(BIGINT(11), comment='会务报名客户数')
    cn_huiwu_daochang_num = Column(BIGINT(11), comment='会务到场人数')
    cn_huiwu_chengjiao_num = Column(BIGINT(11), comment='会务成交客户数')
    cn_pro_chuda_num = Column(BIGINT(11), comment='产品触达客户人数')
    cn_pro_yuyue_num = Column(BIGINT(11), comment='产品预约客户数')
    cn_sharearticle_num = Column(BIGINT(11), comment='发文章次数')
    cn_sharemp_num = Column(BIGINT(11), comment='发名片次数')
    cn_sharehuiwu_num = Column(BIGINT(11), comment='发会务次数')
    cn_sharepro_num = Column(BIGINT(11), comment='发产品次数')
    cn_sharecompany_num = Column(BIGINT(11), comment='发公司资料次数')
    cn_study_timelength = Column(BIGINT(11), comment='学习总时长')
    cn_daka_num = Column(BIGINT(11), comment='拜访打卡次数')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class ReportProAnalysi(Base, BaseModel):
    __tablename__ = 'report_pro_analysis'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ta_year = Column(INTEGER(5), comment='年')
    ta_month = Column(INTEGER(5), comment='月')
    ta_day = Column(INTEGER(5), comment='日')
    ta_teamid = Column(String(64), comment='团队ID')
    ta_fullpathid = Column(String(1024), comment='团队全路径ID')
    ta_name = Column(String(128), comment='团队名称')
    ta_pro_id = Column(String(64), comment='产品Id')
    ta_tgd = Column(BIGINT(11), comment='推广度')
    ta_rxd = Column(BIGINT(11), comment='热销度')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class ReportProInterest(Base, BaseModel):
    __tablename__ = 'report_pro_interest'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    rpi_proid = Column(String(64), comment='产品ID')
    rpi_userid = Column(String(64), comment='用户id')
    rpi_interest_val = Column(INTEGER(5), comment='兴趣值')
    rpi_article_val = Column(INTEGER(5), comment='文章值')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class ReportTeamAnalysi(Base, BaseModel):
    __tablename__ = 'report_team_analysis'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ta_year = Column(INTEGER(5), comment='年')
    ta_month = Column(INTEGER(5), comment='月')
    ta_day = Column(INTEGER(5), comment='日')
    ta_teamid = Column(String(64), comment='团队ID')
    ta_fullpathid = Column(String(1024), comment='团队全路径ID')
    ta_name = Column(String(128), comment='团队名称')
    ta_hdl = Column(BIGINT(11), comment='活动量')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class Report(Base, BaseModel):
    __tablename__ = 'reports'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    rt_timetype = Column(String(3), comment='时间类型')
    rt_type = Column(String(3), comment='报告类型')
    rt_title = Column(String(128), comment='标题')
    rt_thumbnail = Column(String(256), comment='缩略图')
    rt_digest = Column(String(256), comment='摘要')
    rt_author = Column(String(64), comment='作者')
    rt_headerimg = Column(String(256), comment='头像')
    rt_content = Column(MEDIUMTEXT, comment='内容')
    rt_isoriginal = Column(String(3), comment='是否原创')
    rt_label = Column(String(64), comment='标签')
    rt_fee_type = Column(String(3), comment='收费类型')
    rt_status = Column(String(3), comment='状态')
    rt_release_time = Column(DateTime, comment='上架时间')
    rt_vip_price = Column(BIGINT(12), comment='vip会员价')
    rt_common_price = Column(BIGINT(12), comment='普通会员价')
    rt_files = Column(MEDIUMTEXT, comment='附件')
    rt_collect_basenum = Column(BIGINT(8), comment='虚拟收藏数')
    rt_collect_actualnum = Column(BIGINT(8), comment='实际收藏数')
    rt_report_time = Column(DateTime, comment='报告时间')
    rt_read_basenum = Column(BIGINT(10), comment='虚拟阅读量')
    rt_read_actualnum = Column(BIGINT(10), comment='实际阅读量')
    createby = Column(String(64), comment='创建人')
    createtime = Column(DateTime, comment='创建时间')
    updateby = Column(String(64), comment='修改人')
    updatetime = Column(DateTime, comment='修改时间')
    deletetag = Column(String(3), comment='删除标识')


class RiskAssessment(Base, BaseModel):
    __tablename__ = 'risk_assessment'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    risk_name = Column(String(128), comment='测评名称')
    risk_description = Column(String(1024), comment='说明')
    risk_levels = Column(String(5120), comment='风险等级')
    risk_hight_score = Column(INTEGER(5), comment='测评最高分')
    risk_status = Column(String(128), comment='启用状态 0:否 1：是')
    risk_startime = Column(DateTime, comment='启用时间')
    risk_endtime = Column(DateTime, comment='到期时间')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    risk_expire = Column(INTEGER(3), comment='有效期（单位：月）')


class RiskAssessmentItem(Base, BaseModel):
    __tablename__ = 'risk_assessment_item'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    risk_id = Column(String(64), comment='测评ID')
    risk_group = Column(String(3), comment='分类(关联常量表 分组类别:riskAssType)')
    risk_item_type = Column(String(3), comment='类型')
    risk_item_stem = Column(String(512), comment='题干')
    risk_item_options = Column(String(5120), comment='选项')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class SensitiveWord(Base, BaseModel):
    __tablename__ = 'sensitive_word'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    sensitive_words = Column(Text, comment='敏感词列表')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class ShareCustom(Base, BaseModel):
    __tablename__ = 'share_custom'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    sc_type = Column(INTEGER(10), comment='模块类型')
    sc_name = Column(String(64), comment='模块名称')
    sc_title = Column(String(256), comment='分享标题')
    sc_desc = Column(String(256), comment='分享描述')
    sc_log = Column(String(256), comment='分享logo')
    org_id = Column(String(64), comment='所属机构')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class SharePoster(Base, BaseModel):
    __tablename__ = 'share_poster'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    sp_title = Column(String(64), comment='标题')
    sp_subhead = Column(String(64), comment='副标题')
    sp_copywriter = Column(String(1024), comment='海报文案')
    sp_image = Column(String(256), comment='海报图片')
    at_copy = Column(String(1024), comment='首次关注文案')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    sp_status = Column(String(3), comment='海报状态')


class ShyhMonthPerformance(Base, BaseModel):
    __tablename__ = 'shyh_month_performance'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    perf_date = Column(Date, comment='数据日期')
    staff_no = Column(String(128), comment='员工工号')
    staff_name = Column(String(128), comment='员工姓名')
    staff_mobile_phone = Column(String(128), comment='手机号')
    staff_head_img = Column(String(256), comment='头像')
    source_grade = Column(String(128), comment='当前等级')
    branch_name = Column(String(128), comment='分行')
    sub_branch_name = Column(String(128), comment='支行')
    branch_network_name = Column(String(128), comment='网点')
    kpi_item1 = Column(DECIMAL(25, 10), comment='非公募代销销量')
    kpi_item1_rank = Column(INTEGER(10), comment='分区组内排名1')
    kpi_item2 = Column(DECIMAL(25, 10), comment='公募基金销量')
    kpi_item2_rank = Column(INTEGER(10), comment='分区组内排名2')
    kpi_item3 = Column(DECIMAL(25, 10), comment='保险销量')
    kpi_item3_rank = Column(INTEGER(10), comment='分区组内排名3')
    kpi_item4 = Column(DECIMAL(25, 10), comment='财富管理类业务中收')
    kpi_item4_rank = Column(INTEGER(10), comment='分区组内排名4')
    kpi_item5 = Column(DECIMAL(25, 10), comment='月日均100万元（含）以上客户净增')
    kpi_item5_rank = Column(INTEGER(10), comment='分区组内排名5')
    kpi_item6 = Column(DECIMAL(25, 10), comment='信贷资产类销量')
    kpi_item6_rank = Column(INTEGER(10), comment='分区组内排名6')
    kpi_item7 = Column(DECIMAL(25, 10), comment='存款销量')
    kpi_item7_rank = Column(INTEGER(10), comment='分区组内排名7')
    kpi_item8 = Column(DECIMAL(25, 10), comment='信用卡新户')
    kpi_item8_rank = Column(INTEGER(10), comment='分区组内排名8')
    kpi_item9 = Column(DECIMAL(25, 10), comment='新增社保卡')
    kpi_item9_rank = Column(INTEGER(10), comment='分区组内排名9')
    cycleFlag = Column(String(128))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(3), comment='删除标识')


class ShyhPerformance(Base, BaseModel):
    __tablename__ = 'shyh_performance'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    perf_date = Column(Date, comment='数据日期')
    staff_no = Column(String(128), comment='员工工号')
    staff_name = Column(String(128), comment='员工姓名')
    staff_mobile_phone = Column(String(128), comment='手机号')
    staff_head_img = Column(String(256), comment='头像')
    staff_region = Column(String(128), comment='地域')
    branch_name = Column(String(128), comment='分行')
    sub_branch_name = Column(String(128), comment='支行')
    branch_network_name = Column(String(128), comment='网点')
    source_grade = Column(String(128), comment='当前等级')
    target_grade = Column(String(128), comment='评级分组')
    kpi_item1 = Column(DECIMAL(25, 10), comment='非公募代销销量')
    kpi_item1_rank = Column(INTEGER(10), comment='分区组内排名1')
    kpi_item1_wow = Column(INTEGER(10), comment='较上期1')
    kpi_item2 = Column(DECIMAL(25, 10), comment='公募基金销量')
    kpi_item2_rank = Column(INTEGER(10), comment='分区组内排名2')
    kpi_item2_wow = Column(INTEGER(10), comment='较上期2')
    kpi_item3 = Column(DECIMAL(25, 10), comment='保险销量')
    kpi_item3_rank = Column(INTEGER(10), comment='分区组内排名3')
    kpi_item3_wow = Column(INTEGER(10), comment='较上期3')
    kpi_item4 = Column(DECIMAL(25, 10), comment='财富管理类业务中收')
    kpi_item4_rank = Column(INTEGER(10), comment='分区组内排名4')
    kpi_item4_wow = Column(INTEGER(10), comment='较上期4')
    kpi_item5 = Column(DECIMAL(25, 10), comment='月日均100万元（含）以上客户净增')
    kpi_item5_rank = Column(INTEGER(10), comment='分区组内排名5')
    kpi_item5_wow = Column(INTEGER(10), comment='较上期5')
    kpi_item6 = Column(DECIMAL(25, 10), comment='信贷资产类销量')
    kpi_item6_rank = Column(INTEGER(10), comment='分区组内排名6')
    kpi_item6_wow = Column(INTEGER(10), comment='较上期6')
    kpi_item7 = Column(DECIMAL(25, 10), comment='存款销量')
    kpi_item7_rank = Column(INTEGER(10), comment='分区组内排名7')
    kpi_item7_wow = Column(INTEGER(10), comment='较上期7')
    kpi_item8 = Column(DECIMAL(25, 10), comment='信用卡新户')
    kpi_item8_rank = Column(INTEGER(10), comment='分区组内排名8')
    kpi_item8_wow = Column(INTEGER(10), comment='较上期8')
    kpi_item9 = Column(DECIMAL(25, 10), comment='新增社保卡')
    kpi_item9_rank = Column(INTEGER(10), comment='分区组内排名9')
    kpi_item9_wow = Column(INTEGER(10), comment='较上期9')
    score1 = Column(DECIMAL(12, 10), comment='销售业绩得分')
    score2 = Column(DECIMAL(12, 10), comment='价值贡献得分')
    score3 = Column(DECIMAL(12, 10), comment='综合贡献得分')
    add_score = Column(DECIMAL(12, 10), comment='奖励加分')
    subtract_score = Column(DECIMAL(12, 10), comment='惩罚减分')
    add_score_item1 = Column(DECIMAL(12, 10), comment='荣誉表彰')
    add_score_item2 = Column(DECIMAL(12, 10), comment='竞赛获奖')
    add_score_item3 = Column(DECIMAL(12, 10), comment='内训与带教')
    add_score_item4 = Column(DECIMAL(12, 10), comment='加分项4')
    add_score_item5 = Column(DECIMAL(12, 10), comment='加分项5')
    subtract_score_item1 = Column(DECIMAL(12, 10), comment='合规及反洗钱')
    subtract_score_item2 = Column(DECIMAL(12, 10), comment='销售资质持有')
    subtract_score_item3 = Column(DECIMAL(12, 10), comment='减分项3')
    subtract_score_item4 = Column(DECIMAL(12, 10), comment='减分项4')
    subtract_score_item5 = Column(DECIMAL(12, 10), comment='减分项5')
    grade_score = Column(DECIMAL(25, 10), comment='等级分')
    rank1 = Column(INTEGER(10), comment='全行排名')
    rank2 = Column(INTEGER(10), comment='分区组内排名')
    ratio2 = Column(DECIMAL(10, 9), comment='分区组内比')
    grade_desc = Column(String(128), comment='升降级')
    star = Column(INTEGER(10), comment='启明星合计')
    star_rank = Column(INTEGER(10), comment='启明星排名')
    star_item1 = Column(String(128), comment='启明星活动一')
    star_item2 = Column(String(128), comment='启明星活动二')
    star_item3 = Column(String(128), comment='启明星活动三')
    star_item4 = Column(String(128), comment='启明星活动四')
    star_item5 = Column(String(128), comment='启明星活动五')
    star_item6 = Column(String(128), comment='启明星活动六')
    star_item7 = Column(String(128), comment='启明星活动七')
    star_item8 = Column(String(128), comment='启明星活动八')
    star_item9 = Column(String(128), comment='启明星活动九')
    star_item10 = Column(String(128), comment='启明星活动十')
    star_item1_name = Column(String(128))
    star_item2_name = Column(String(128))
    cycleFlag = Column(String(128), comment='新的周期')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(3), comment='删除标识')
    star_item3_name = Column(String(128))
    star_item4_name = Column(String(128))
    star_item5_name = Column(String(128))
    star_item6_name = Column(String(128))
    star_item7_name = Column(String(128))
    star_item8_name = Column(String(128))
    star_item9_name = Column(String(128))
    star_item10_name = Column(String(128))


class ShyhWeekPerformance(Base, BaseModel):
    __tablename__ = 'shyh_week_performance'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    perf_date = Column(Date, comment='数据日期')
    staff_no = Column(String(128), comment='员工工号')
    staff_name = Column(String(128), comment='员工姓名')
    staff_mobile_phone = Column(String(128), comment='手机号')
    staff_head_img = Column(String(256), comment='头像')
    source_grade = Column(String(128), comment='当前等级')
    branch_name = Column(String(128), comment='分行')
    sub_branch_name = Column(String(128), comment='支行')
    branch_network_name = Column(String(128), comment='网点')
    kpi_item1 = Column(DECIMAL(25, 10), comment='非公募代销销量')
    kpi_item1_rank = Column(INTEGER(10), comment='分区组内排名1')
    kpi_item2 = Column(DECIMAL(25, 10), comment='公募基金销量')
    kpi_item2_rank = Column(INTEGER(10), comment='分区组内排名2')
    kpi_item3 = Column(DECIMAL(25, 10), comment='保险销量')
    kpi_item3_rank = Column(INTEGER(10), comment='分区组内排名3')
    kpi_item4 = Column(DECIMAL(25, 10), comment='财富管理类业务中收')
    kpi_item4_rank = Column(INTEGER(10), comment='分区组内排名4')
    kpi_item5 = Column(DECIMAL(25, 10), comment='月日均100万元（含）以上客户净增')
    kpi_item5_rank = Column(INTEGER(10), comment='分区组内排名5')
    kpi_item6 = Column(DECIMAL(25, 10), comment='信贷资产类销量')
    kpi_item6_rank = Column(INTEGER(10), comment='分区组内排名6')
    kpi_item7 = Column(DECIMAL(25, 10), comment='存款销量')
    kpi_item7_rank = Column(INTEGER(10), comment='分区组内排名7')
    kpi_item8 = Column(DECIMAL(25, 10), comment='信用卡新户')
    kpi_item8_rank = Column(INTEGER(10), comment='分区组内排名8')
    kpi_item9 = Column(DECIMAL(25, 10), comment='新增社保卡')
    kpi_item9_rank = Column(INTEGER(10), comment='分区组内排名9')
    cycleFlag = Column(String(128))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(3), comment='删除标识')


class SkuInfo(Base, BaseModel):
    __tablename__ = 'sku_info'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    si_type = Column(String(3), comment='类型')
    si_name = Column(String(32), comment='规格名称')
    si_code = Column(String(16), comment='规格编码')
    si_pattern = Column(String(3), comment='定价模式')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class SkuPrice(Base, BaseModel):
    __tablename__ = 'sku_price'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    sp_type = Column(String(3), comment='类型 0：课程 1:报告 2：vip充值 3:账户充值')
    sp_id = Column(String(32), comment='产品ID')
    sp_si_id = Column(String(32), comment='规格ID')
    sp_price = Column(BIGINT(12), comment='普通会员价格')
    sp_vip_price = Column(BIGINT(12), comment='vip价格')
    sp_line_price = Column(BIGINT(12))
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class Smsrecord(Base, BaseModel):
    __tablename__ = 'smsrecord'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    leixing = Column(String(3), comment='类型')
    phone = Column(String(32), comment='手机号')
    content = Column(String(128), comment='内容')
    createby = Column(String(64), comment='创建人')
    createtime = Column(DateTime, comment='创建时间')
    updateby = Column(String(64), comment='修改人')
    updatetime = Column(DateTime, comment='修改时间')
    deletetag = Column(String(3), comment='删除标识')


class SubjectColumn(Base, BaseModel):
    __tablename__ = 'subject_column'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    sc_name = Column(String(128), comment='名称')
    sc_type = Column(String(3), comment='类型')
    sc_thumbnail = Column(String(256), comment='缩略图')
    sc_backgroundimg = Column(String(256), comment='背景大图')
    sc_briefinfo = Column(String(512), comment='简介')
    sc_content_basenum = Column(BIGINT(10), comment='内容篇数虚拟数')
    sc_content_actualnum = Column(BIGINT(10), comment='内容篇数真实数')
    sc_follow_basenun = Column(BIGINT(10), comment='关注人数虚拟数')
    sc_follow_actualnum = Column(BIGINT(10), comment='关注人数真实数')
    sc_ishot = Column(String(3), comment='是否热门')
    sc_status = Column(String(3), comment='状态')
    sc_lastupdatetime = Column(DateTime, comment='最后更新时间')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class SubjectSelection(Base, BaseModel):
    __tablename__ = 'subject_selection'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    subject_id = Column(String(128), comment='专题id')
    selection_type = Column(INTEGER(64), comment='类型')
    selection_id = Column(String(64), comment='关联数据ID')
    selection_reason = Column(String(256), comment='入选理由')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class SysConstant(Base, BaseModel):
    __tablename__ = 'sys_constant'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    constant_group = Column(String(64), comment='常量分组')
    constant_code = Column(String(64), comment='常量标识码')
    constant_name = Column(String(64), comment='常量名称')
    constant_value = Column(String(256), comment='常量值')
    constant_description = Column(String(128), comment='常量描述')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    cd_paixu = Column(INTEGER(3), comment='排序')
    cd_show = Column(INTEGER(3))


class SysFunction(Base, BaseModel):
    __tablename__ = 'sys_function'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    function_name = Column(String(80), comment='功能名称')
    function_type = Column(INTEGER(128), comment='类别')
    is_check = Column(INTEGER(128), comment='是否验证权限')
    p_id = Column(String(64), comment='所属菜单Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class SysRole(Base, BaseModel):
    __tablename__ = 'sys_role'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    role_name = Column(String(80), comment='角色名称')
    acl = Column(String(6000), comment='权限列表')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class SysSwitch(Base, BaseModel):
    __tablename__ = 'sys_switch'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    switch_group = Column(String(64), comment='开关分组')
    switch_code = Column(String(64), comment='开关标识码')
    switch_name = Column(String(64), comment='开关名称')
    switch_description = Column(String(128), comment='开关描述')
    switch_value = Column(String(64), comment='开关值')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class SysUser(Base, BaseModel):
    __tablename__ = 'sys_user'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    user_name = Column(String(80), comment='用户姓名')
    user_account = Column(String(80), comment='账号')
    user_password = Column(String(80), comment='密码')
    user_state = Column(INTEGER(128), comment='用户状态')
    user_roles = Column(String(6000), comment='用户角色列表')
    org_id = Column(String(64), comment='机构Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    is_user = Column(String(3), comment='是否关联用户')
    department = Column(String(64), comment='所属部门')


class SystemNotice(Base, BaseModel):
    __tablename__ = 'system_notice'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    sn_type = Column(String(64), comment='类型')
    sn_content = Column(String(512), comment='公告内容')
    sn_isshow = Column(String(3), comment='展示状态')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


# t_system_switch = Table(
#     'system_switch', metadata,
#     Column('id', String(64), nullable=False, server_default=text("''"), comment='唯一主键'),
#     Column('ss_name', String(64), comment='名称'),
#     Column('ss_key', String(64), comment='key'),
#     Column('ss_value', String(64), comment='value'),
#     Column('ss_desc', String(256), comment='描述'),
#     Column('createtime', DateTime, comment='创建时间'),
#     Column('createby', String(64), comment='创建人'),
#     Column('updatetime', DateTime, comment='修改时间'),
#     Column('updateby', String(64), comment='修改人'),
#     Column('deletetag', String(3), comment='删除标识')
# )


class Tag(Base, BaseModel):
    __tablename__ = 'tag'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    tag_name = Column(String(20), comment='标签名称')
    tag_category_id = Column(String(64), comment='所属类别')
    tag_remark = Column(String(128), comment='备注')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class TagCategory(Base, BaseModel):
    __tablename__ = 'tag_category'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    category_name = Column(String(20), comment='类别名称')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


# t_tag_rel = Table(
#     'tag_rel', metadata,
#     Column('id', String(64), nullable=False, comment='主键id'),
#     Column('tag_id', String(64), nullable=False, index=True, comment='标签id'),
#     Column('rel_id', String(64), nullable=False, index=True, comment='关联id'),
#     Column('rel_type', INTEGER(1), nullable=False, comment='关联类型'),
#     Column('tag_category_id', String(64), nullable=False, comment='标签分类'),
#     Column('tag_category_name', String(64), nullable=False, comment='标签分类'),
#     Column('create_time', DateTime, nullable=False, comment='创建时间')
# )


class TaskSchedule(Base, BaseModel):
    __tablename__ = 'task_schedule'
    __table_args__ = (
        Index('activity_id_create_by', 'activity_id', 'create_by', unique=True),
        {'comment': '任务进度表'}
    )

    id = Column(String(64, 'utf8mb4_unicode_ci'), primary_key=True)
    activity_id = Column(String(64, 'utf8mb4_unicode_ci'), nullable=False, comment='活动id 其他id')
    create_by = Column(String(64, 'utf8mb4_unicode_ci'), nullable=False, comment='创建人')
    task_pro_send = Column(String(255, 'utf8mb4_unicode_ci'))
    ext1 = Column(String(50, 'utf8mb4_unicode_ci'), comment='扩展字段')
    create_time = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
    update_time = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
    task_status = Column(INTEGER(3), nullable=False, server_default=text("'1'"), comment='1：进行中 2:通知完成')
    delete_tag = Column(INTEGER(3), nullable=False, server_default=text("'0'"))


class Team(Base, BaseModel):
    __tablename__ = 'team'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    team_name = Column(String(80), comment='团队名称')
    p_id = Column(String(64), comment='上级团队Id')
    full_path_id = Column(String(1024), comment='全路径')
    org_id = Column(String(64), comment='机构Id')
    full_path_name = Column(String(1024))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')
    team_category = Column(INTEGER(128), comment='团队类型')
    team_nature = Column(String(64), comment='团队业务性质')
    free_join_switch = Column(INTEGER(128), comment='自由加入开关')
    free_withdrawal_switch = Column(INTEGER(128), comment='自由退出开关')
    recruitment_switch = Column(INTEGER(128), comment='停止招募开关')
    closed_switch = Column(INTEGER(128), comment='停止运营开关')
    team_desc = Column(String(128), comment='邀请说明')
    content_reviewer = Column(Text, comment='内容审核者')


class TeamArticle(Base, BaseModel):
    __tablename__ = 'team_article'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    article_id = Column(String(64), comment='文章Id')
    team_id = Column(String(64), comment='团队Id')
    article_type = Column(INTEGER(11), comment='文章类型')
    org_id = Column(String(64))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class TeamProduct(Base, BaseModel):
    __tablename__ = 'team_product'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    product_id = Column(String(64), comment='产品Id')
    team_id = Column(String(64), comment='团队Id')
    org_id = Column(String(64))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


# t_test = Table(
#     'test', metadata,
#     Column('id', INTEGER(11)),
#     Column('createby', String(12)),
#     Column('faid', String(12))
# )


class ThreadTask(Base, BaseModel):
    __tablename__ = 'thread_task'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    task_name = Column(String(128), comment='任务名称')
    task_type = Column(String(3), comment='任务类型')
    task_status = Column(String(3), comment='任务状态')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(3), comment='删除标识')


class UbrFauser(Base, BaseModel):
    __tablename__ = 'ubr_fauser'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uf_uid = Column(String(64), comment='理财师ID')
    uf_uname = Column(String(32), comment='理财师姓名')
    uf_headimg = Column(String(256), comment='理财师头像')
    uf_shenfen = Column(String(3), comment='理财师身份')
    uf_grade = Column(String(64), comment='等级')
    uf_target_grade = Column(String(256))
    us_bumen = Column(String(256))
    uf_urcid = Column(String(64), comment='排名周期活动ID')
    uf_share_num = Column(BIGINT(8), comment='分享总次数')
    uf_browse_personnum = Column(BIGINT(8), comment='访客人数')
    uf_browse_num = Column(BIGINT(8), comment='访客浏览量')
    uf_forward_personnum = Column(BIGINT(8), comment='访客转发人数')
    uf_forward_num = Column(BIGINT(8), comment='访客转发量')
    uf_browse_visitors = Column(Text, comment='今日浏览的访客')
    uf_forward_visitors = Column(Text, comment='今日转发的访客')
    uf_article_share_num = Column(BIGINT(8), comment='文章分享总次数')
    uf_article_browse_personnum = Column(BIGINT(8), comment='文章访客人数')
    uf_article_browse_num = Column(BIGINT(8), comment='文章访客浏览量')
    uf_article_forward_personnum = Column(BIGINT(8), comment='文章访客转发人数')
    uf_article_forward_num = Column(BIGINT(8), comment='文章访客转发量')
    uf_article_browse_visitors = Column(Text, comment='今日文章浏览的访客')
    uf_article_forward_visitors = Column(Text, comment='今日文章转发的访客')
    uf_pro_share_num = Column(BIGINT(8), comment='产品分享总次数')
    uf_pro_browse_personnum = Column(BIGINT(8), comment='产品访客人数')
    uf_pro_browse_num = Column(BIGINT(8), comment='产品访客浏览量')
    uf_pro_forward_personnum = Column(BIGINT(8), comment='产品访客转发人数')
    uf_pro_forward_num = Column(BIGINT(8), comment='产品访客转发量')
    uf_pro_browse_visitors = Column(Text, comment='今日产品浏览的访客')
    uf_pro_forward_visitors = Column(Text, comment='今日产品转发的访客')
    uf_company_share_num = Column(BIGINT(8), comment='公司分享总次数')
    uf_company_browse_personnum = Column(BIGINT(8), comment='公司访客人数')
    uf_company_browse_num = Column(BIGINT(8), comment='公司访客浏览量')
    uf_company_forward_personnum = Column(BIGINT(8), comment='公司访客转发人数')
    uf_company_forward_num = Column(BIGINT(8), comment='公司访客转发量')
    uf_company_browse_visitors = Column(Text, comment='今日公司浏览的访客')
    uf_company_forward_visitors = Column(Text, comment='今日公司转发的访客')
    uf_mp_sharen_num = Column(BIGINT(8), comment='名片分享总次数')
    uf_mp_browse_personnum = Column(BIGINT(8), comment='名片访客人数')
    uf_mp_browse_num = Column(BIGINT(8), comment='名片访客浏览量')
    uf_mp_forward_personnum = Column(BIGINT(8), comment='名片访客转发人数')
    uf_mp_forward_num = Column(BIGINT(8), comment='名片访客转发量')
    uf_mp_browse_visitors = Column(Text, comment='今日名片浏览的访客')
    uf_mp_forward_visitors = Column(Text, comment='今日名片转发的访客')
    uf_article_tybg_share_num = Column(BIGINT(8), comment='文章分享总次数')
    uf_teamid = Column(String(1024), comment='团队')
    uf_date = Column(Date, comment='日期')
    uf_orgid = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    uf_article_ppxc_browse_personnum = Column(BIGINT(8))
    uf_article_ppxc_share_num = Column(BIGINT(8))
    uf_article_tybg_browse_personnum = Column(BIGINT(8))
    uf_article_browse_visitors_tybg = Column(Text)
    uf_article_browse_visitors_ppxc = Column(Text)
    uf_activity_share_num = Column(BIGINT(8))
    uf_activity_browse_personnum = Column(BIGINT(8))
    uf_activity_browse_visitors = Column(Text)
    uf_wq_num = Column(INTEGER(11))
    uf_huiwu_share_num = Column(BIGINT(8))
    uf_huiwu_browse_personnum = Column(BIGINT(20))
    uf_huiwu_browse_num = Column(BIGINT(20))
    uf_huiwu_forward_personnum = Column(BIGINT(20))
    uf_huiwu_forward_num = Column(BIGINT(20))
    uf_peixu_timelength = Column(BIGINT(20))
    uf_peixu_canyunum = Column(BIGINT(20))
    uf_peixu_baklooknum = Column(BIGINT(20))
    uf_peixu_ids = Column(Text)


class UbrGrade(Base, BaseModel):
    __tablename__ = 'ubr_grade'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ug_name = Column(String(16), comment='等级')
    uf_orgid = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UbrRankCycle(Base, BaseModel):
    __tablename__ = 'ubr_rank_cycle'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    urc_name = Column(String(256), comment='名称')
    urc_starttime = Column(Date, comment='开始时间')
    urc_endtime = Column(Date, comment='结束时间')
    urc_status = Column(String(3), comment='状态')
    urc_range = Column(String(3), comment='统计对比范围')
    urc_content_type = Column(String(3), comment='活动内容类型')
    uf_orgid = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UbrRankCycleDetail(Base, BaseModel):
    __tablename__ = 'ubr_rank_cycle_detail'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    urcd_urcid = Column(String(64), comment='排名周期活动ID')
    urcd_type = Column(String(3), comment='类型')
    urcd_refid = Column(String(64), comment='关联数据Id')
    urcd_title = Column(String(256), comment='标题')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UbrSharesource(Base, BaseModel):
    __tablename__ = 'ubr_sharesource'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    us_fausers_id = Column(String(64))
    us_uname = Column(String(128))
    us_urcid = Column(String(64), comment='排名周期活动ID')
    us_shenfen = Column(String(32))
    us_bumen = Column(String(256))
    us_type = Column(String(64), comment='资源类型')
    us_title = Column(String(256), comment='资源标题')
    us_refid = Column(String(64), comment='资源所属ID')
    us_share_personnum = Column(BIGINT(8), comment='分享人数')
    us_share_num = Column(BIGINT(8), comment='分享次数')
    us_browse_personnum = Column(BIGINT(8), comment='访问人数')
    us_browse_num = Column(BIGINT(8), comment='访问次数')
    us_forword_personnum = Column(BIGINT(8), comment='转发人数')
    us_forword_num = Column(BIGINT(8), comment='转发次数')
    us_date = Column(Date, comment='日期')
    us_orgid = Column(String(64), comment='机构ID')
    us_browse_visitors = Column(Text, comment='今日浏览的访客')
    us_forward_visitors = Column(Text, comment='今日转发的访客')
    us_share_fausers = Column(Text, comment='今日分享的理财师')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    us_headimg = Column(String(256))
    us_grade = Column(String(64))
    us_target_grade = Column(String(256))


class UserActivity(Base, BaseModel):
    __tablename__ = 'user_activity'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    user_id = Column(String(64), comment='用户Id')
    activity_id = Column(String(64), comment='会务Id')
    org_id = Column(String(64), comment='机构Id')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserApplication(Base, BaseModel):
    __tablename__ = 'user_application'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    username = Column(String(64), comment='姓名')
    mobile_phone = Column(String(64), comment='手机号')
    wechat_id = Column(String(64), comment='微信号')
    company_name = Column(String(128), comment='公司')
    photo = Column(String(1024), comment='照片')
    state = Column(INTEGER(3), comment='状态')
    reviewer = Column(String(64), comment='审核人')
    review_comment = Column(String(1024), comment='审核意见')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), index=True, comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    score = Column(INTEGER(3), server_default=text("'0'"), comment='得分')


class UserApplicationQuestion(Base, BaseModel):
    __tablename__ = 'user_application_question'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    user_application_id = Column(String(64), comment='用户申请表Id')
    q_type = Column(String(3), comment='题目类型')
    q_title = Column(String(512), comment='题干')
    q_option = Column(String(1024), comment='选项')
    q_required = Column(INTEGER(3), comment='是否必填项')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), index=True, comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    template_id = Column(String(64), comment='模板id')
    score = Column(INTEGER(3), server_default=text("'0'"), comment='得分')
    answer = Column(String(255), comment='答案')


class UserAuth(Base, BaseModel):
    __tablename__ = 'user_auth'
    __table_args__ = {'comment': '角色功能表'}

    id = Column(String(64), primary_key=True)
    ua_type = Column(String(16), nullable=False, comment='权限类型')
    ua_roles = Column(String(64), nullable=False, comment='需要角色（多选，eg：R1&S1）')
    ua_source_id = Column(String(64), nullable=False, comment='资源ID')
    ua_desc = Column(String(255), nullable=False, comment='描述')
    create_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
    update_by = Column(String(64))
    update_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
    delete_tag = Column(INTEGER(3), nullable=False, server_default=text("'0'"))
    create_by = Column(String(64))


class UserBehaviorRecord(Base, BaseModel):
    __tablename__ = 'user_behavior_record'
    __table_args__ = (
        Index('idx_routerurl_type', 'ubr_routerurl', 'ubr_type'),
    )

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ubr_type = Column(String(3), comment='类型')
    ubr_login_time = Column(DateTime, comment='登陆时间')
    ubr_logout_time = Column(DateTime, comment='登出时间')
    ubr_total_time = Column(BIGINT(8), comment='累计时长')
    ubr_last_time = Column(DateTime, comment='最后一次统计时间')
    ubr_source = Column(String(8), comment='访问来源')
    ubr_deviceid = Column(String(128), comment='设备唯一标识')
    ubr_channel = Column(String(128), index=True, comment='渠道')
    ubr_appversion = Column(String(16), comment='版本号')
    ubr_pid_deviceid = Column(String(128), comment='分享来源（设备ID）')
    ubr_pid_userid = Column(String(128), comment='分享来源（用户ID）')
    ubr_utype = Column(String(3), comment='用户类型')
    ubr_ushenfen = Column(String(3), comment='用户身份')
    fromto = Column(String(256), comment='上级链接')
    ubr_routerurl = Column(String(256), comment='路由链接')
    ubr_isshare = Column(String(3), comment='当前是否属于分享链接')
    ubr_ext1 = Column(String(128), comment='扩展字段1')
    ubr_ext2 = Column(String(128), index=True, comment='扩展字段2')
    ubr_ext3 = Column(String(128), comment='扩展字段3')
    ubr_ext4 = Column(String(128), comment='扩展4')
    ubr_ext5 = Column(String(128), comment='扩展5')
    ubr_ext6 = Column(String(128), comment='扩展6')
    ubr_ext7 = Column(String(128), comment='扩展7')
    ubr_ext8 = Column(String(128), comment='扩展8')
    ubr_ext9 = Column(String(128), comment='外拓经理ID')
    ubr_ext10 = Column(String(1024), comment='文章或产品标签')
    ubr_ext11 = Column(String(128))
    ubr_browse_uuid = Column(String(128), comment='页面停留标识')
    ubr_uuid = Column(String(128), comment='资源ID')
    ubr_source_refid = Column(String(128), comment='资源所属')
    ubr_time_length = Column(BIGINT(8), comment='停留时长（秒）')
    ubr_openid = Column(String(128), comment='openid')
    ubr_user_links = Column(Text, comment='客户链路')
    ubr_share_source = Column(String(128), comment='分享去向标识')
    ubr_toxcx = Column(String(16), comment='进入小程序方式')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    ubr_team_id = Column(String(128), comment='团队Id')
    ubr_teamid = Column(String(128), comment='理财师所在团队ID')
    ubr_full_teamid = Column(String(128), comment='理财师所在团队全路径')
    ubr_time_process = Column(String(32))


class UserChannel(Base, BaseModel):
    __tablename__ = 'user_channel'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    channel_id = Column(String(64), comment='渠道id')
    channel_name = Column(String(256), comment='渠道名称')
    delete_tag = Column(INTEGER(1), comment='逻辑删除标志位')
    create_time = Column(DateTime, comment='渠道创建时间')
    update_time = Column(DateTime, comment='渠道名称更新时间')
    create_by = Column(String(64), comment='渠道创建人')


class UserClock(Base, BaseModel):
    __tablename__ = 'user_clock'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uc_type = Column(String(3), comment='类型')
    uc_status = Column(String(3), comment='客户状态')
    uc_memberno = Column(String(128), comment='会员号')
    uc_reason = Column(String(512), comment='事由')
    uc_address = Column(String(256), comment='地址')
    uc_lnt = Column(String(64), comment='精度')
    uc_lat = Column(String(64), comment='纬度')
    uc_time = Column(DateTime, comment='定位时间')
    org_id = Column(String(64), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserClueMessage(Base, BaseModel):
    __tablename__ = 'user_clue_message'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ucm_userid = Column(String(64), comment='客户ID')
    ucm_content = Column(String(1024), comment='消息')
    ucm_timelength = Column(BIGINT(8), comment='阅读时长')
    ucm_source = Column(String(64), comment='来源')
    ucm_propagation_path = Column(Text, comment='传播路径')
    ucm_type = Column(String(3), comment='消息类型')
    ucm_read_status = Column(String(3), comment='阅读状态')
    ucm_who_send = Column(String(3), comment='消息发送方')
    ucm_faid = Column(String(64), comment='理财师ID')
    ucm_refid = Column(String(64), comment='关联数据ID')
    ucm_ubrid = Column(String(64), comment='关联行为记录id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    msg_body = Column(String(8000), comment='消息体')


class UserComment(Base, BaseModel):
    __tablename__ = 'user_comment'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uc_ref_id = Column(String(64), comment='所属ID')
    uc_category = Column(INTEGER(1), comment='类型')
    uc_content = Column(String(1024), comment='内容')
    uc_status = Column(INTEGER(128), comment='审核状态')
    uc_is_excellent = Column(INTEGER(128), comment='是否精选评论')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserCompany(Base, BaseModel):
    __tablename__ = 'user_company'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uc_fileid = Column(String(64), comment='附件ID')
    uc_documentid = Column(String(64), comment='百度文档ID')
    uc_filename = Column(String(128), comment='文件名称')
    uc_watermark = Column(String(128), comment='水印')
    uc_logo = Column(String(128), comment='logo')
    uc_name = Column(String(128), comment='公司名称')
    uc_telephone = Column(String(128), comment='公司电话')
    uc_address = Column(String(512), comment='公司地址')
    uc_info = Column(String(1024), comment='公司简介')
    uc_mien = Column(String(1024), comment='公司风采')
    org_id = Column(String(64), comment='机构Id')
    uc_show_type = Column(String(3), comment='内容展示类型 0：pdf 1：文字图片')
    uc_info_detail = Column(Text)
    uc_intro = Column(Text, comment='公司介绍')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserCustomer(Base, BaseModel):
    __tablename__ = 'user_customer'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uc_openid = Column(String(128), comment='openid\\n')
    uc_source = Column(String(64), comment='来源')
    uc_unionid = Column(String(128), comment='unionId')
    uc_userid = Column(String(64), comment='用户id')
    uc_headimg = Column(String(256), comment='头像')
    uc_nickname = Column(String(32), comment='昵称')
    uc_name = Column(String(32), comment='姓名')
    uc_phone = Column(String(16), comment='手机号')
    uc_faid = Column(String(64), comment='理财师ID')
    org_id = Column(String(128), comment='机构')
    beizhu = Column(String(512), comment='备注')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(INTEGER(1), comment='删除标识')
    uc_contact_time_isopen = Column(String(3))
    uc_contact_time = Column(String(128), comment='方便联系时间')
    uc_hobby_isopen = Column(String(3))
    uc_hobby = Column(String(128))
    uc_marriage_isopen = Column(String(3))
    uc_marriage = Column(String(3))
    uc_native_isopen = Column(String(8))
    uc_native = Column(String(64))
    uc_position_isopen = Column(String(8))
    uc_position = Column(String(128))
    uc_work_isopen = Column(String(3))
    uc_work = Column(String(128))
    uc_adress_isopen = Column(String(3))
    uc_adress = Column(String(512))
    uc_email_isopen = Column(String(3))
    uc_email = Column(String(128))
    uc_birthday_isopen = Column(String(3))
    uc_birthday = Column(DateTime, comment='生日')
    uc_sex_isopen = Column(String(3))
    uc_sex = Column(String(3))
    uc_status = Column(INTEGER(3), comment='客户状态')


class UserCustomerProcessRecord(Base, BaseModel):
    __tablename__ = 'user_customer_process_record'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    customer_visitorid = Column(String(64), comment='客户ID')
    customer_content = Column(String(512), comment='跟进内容')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(INTEGER(1), comment='删除标识')
    customer_status = Column(INTEGER(3), comment='客户状态')
    deal_pro_id = Column(String(64), comment='成交产品Id')
    deal_datetime = Column(DateTime, comment='成交时间')


class UserEvaluate(Base, BaseModel):
    __tablename__ = 'user_evaluate'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ue_name = Column(String(32), comment='客户姓名')
    ue_position = Column(String(32), comment='客户职位')
    ue_company = Column(String(128), comment='所在公司')
    ue_introduction = Column(String(512), comment='客户简介')
    ue_content = Column(String(1024), comment='评价内容')
    ue_type = Column(String(3), comment='评价类型')
    ue_invite_status = Column(String(3), comment='邀请状态')
    ue_show_status = Column(String(3), comment='展示状态')
    ue_top_status = Column(String(3), comment='置顶状态')
    ue_top_time = Column(DateTime, comment='置顶时间')
    ue_evaluator_id = Column(String(64), comment='评价人ID')
    ue_be_evaluator_id = Column(String(64), comment='被评价人')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserExam(Base, BaseModel):
    __tablename__ = 'user_exam'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ex_id = Column(String(64), comment='试卷模版ID')
    ex_name = Column(String(256), comment='试卷名称')
    ex_starttime = Column(DateTime, comment='考试开始时间')
    ex_endtime = Column(DateTime, comment='考试结束时间')
    ex_totalscore = Column(INTEGER(5), comment='满分')
    ex_passscore = Column(INTEGER(5), comment='合格分')
    ex_done_examconid = Column(String(64), comment='当前题目进度')
    ex_resscore = Column(INTEGER(5), comment='试题得分')
    ex_status = Column(String(3), comment='答题状态')
    org_id = Column(String(64), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserExamContent(Base, BaseModel):
    __tablename__ = 'user_exam_content'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ex_id = Column(String(64), comment='试卷模版ID')
    u_ex_id = Column(String(64), comment='用户试卷ID')
    ec_type = Column(String(3), comment='题目类型')
    ec_title = Column(String(512), comment='标题')
    ec_content = Column(String(1024), comment='内容选项')
    ec_right = Column(String(64), comment='正确答案')
    ec_score = Column(INTEGER(5), comment='题目分数')
    ec_answer = Column(String(64), comment='用户答案')
    ear_resscore = Column(INTEGER(5), comment='结果得分')
    org_id = Column(String(64), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserFinprore(Base, BaseModel):
    __tablename__ = 'user_finprores'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    pro_id = Column(String(64), comment='产品ID')
    org_id = Column(String(64), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    is_recommend = Column(INTEGER(1), comment='首页展示')
    team_id = Column(String(64))
    team_full_path = Column(String(1024))


class UserImpressionLabel(Base, BaseModel):
    __tablename__ = 'user_impression_label'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uil_label_id = Column(String(64), comment='印象标签ID')
    uil_label = Column(String(64), comment='印象标签名称')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserImpressionLabelZan(Base, BaseModel):
    __tablename__ = 'user_impression_label_zan'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uil_label_id = Column(String(64), comment='用户所选印象标签ID')
    uil_faId = Column(String(64), comment='印象标签点赞记录')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserIndex(Base, BaseModel):
    __tablename__ = 'user_index'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    fa_id = Column(String(64), comment='理财师Id')
    index_date = Column(Date, comment='日期')
    follow_index = Column(DECIMAL(6, 2), comment='关注指数')
    fission_index = Column(DECIMAL(6, 2), comment='裂变指数')
    visitor = Column(DECIMAL(6, 2), comment='获客指数')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserInfo(Base, BaseModel):
    __tablename__ = 'user_info'

    id = Column(VARCHAR(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ui_openid = Column(String(128), comment='微信openId')
    ui_unionId = Column(String(64), comment='unionId')
    ui_telphone = Column(String(16), comment='手机号')
    ui_pwd = Column(String(64), comment='登录密码')
    ui_nickname = Column(VARCHAR(64), comment='昵称')
    ui_headimg = Column(String(256), comment='头像')
    ui_username = Column(VARCHAR(64), comment='姓名')
    ui_sex = Column(String(3), comment='性别 0：男 1：女')
    ui_birthday = Column(DateTime, comment='生日')
    ui_introduction = Column(VARCHAR(256), comment='个人介绍')
    ui_type_mp = Column(String(3), comment='名片样式 0：小名片 1：大名片')
    ui_headimg_mp = Column(String(256), comment='名片头像')
    ui_username_mp = Column(VARCHAR(32), comment='名片姓名')
    ui_telphone_mp = Column(String(16), comment='名片电话')
    ui_mobilephone_mp = Column(String(16), comment='手机')
    ui_company_mp = Column(String(128), comment='名片公司名称')
    ui_company_address_mp = Column(String(128), comment='名片公司地址')
    ui_position_mp = Column(VARCHAR(128), comment='名片职位')
    ui_industry_mp = Column(String(128), comment='行业')
    ui_email_mp = Column(String(128), comment='名片邮箱')
    ui_introduction_mp = Column(VARCHAR(256), comment='名片个人介绍')
    ui_wechat_qrcode = Column(String(256), comment='微信个人二维码名片')
    ui_wechat_xcx_qrcode = Column(String(256), comment='小程序二维码')
    ui_type = Column(String(3), comment='类型 0：app注册 1：平台添加')
    ui_shenfen = Column(String(3), comment='用户身份 0：普通用户 1：种子用户 2：超级用户')
    ui_rzstatus = Column(INTEGER(3), comment='认证状态 0:未认证 1:已认证')
    org_id = Column(String(64), comment='机构Id')
    team_id = Column(String(64), comment='团队Id')
    join_time = Column(DateTime, comment='加入团队时间')
    staff_no = Column(VARCHAR(128), comment='员工工号')
    investor_certified_status = Column(INTEGER(128), comment='合格投资者认证状态')
    investor_certified_time = Column(DateTime, comment='合格投资者认证时间')
    to_partner = Column(String(3), comment='对外合作权限')
    ui_grade = Column(String(64), comment='等级')
    content_review = Column(INTEGER(1), comment='内容审核')
    ui_honor = Column(String(256), comment='所获荣誉')
    ui_hb_userid = Column(String(64), comment='海报扫码关注公众号引流人')
    staff_region = Column(String(128))
    branch_name = Column(String(128))
    sub_branch_name = Column(String(128))
    branch_network_name = Column(String(128))
    ui_grade_name = Column(String(128))
    ui_target_grade_name = Column(String(256))
    ui_source = Column(String(32))
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    front_roles = Column(String(128), comment='前端角色')
    ui_check_status = Column(INTEGER(3), comment='名片检查')
    city = Column(String(64))
    province = Column(String(64))
    country = Column(String(64))
    ui_inviter = Column(String(32))
    ui_inviter_phone = Column(String(32))
    ui_age = Column(INTEGER(3))
    ui_region = Column(String(128))
    ui_wecaht = Column(String(128))
    ui_inviter_time = Column(DateTime)
    unionid = Column(String(100), comment='微信unionId')
    level = Column(INTEGER(11), comment='0游客，1注册用户，2理财师')
    age = Column(INTEGER(11), comment='年龄')
    district = Column(String(64), comment='区县')
    address = Column(String(300), comment='详细地址')
    education = Column(INTEGER(11), comment='学历：0: 未知，1：专科，2：本科，3：211本科，4：硕士及以上')
    wechat = Column(String(60), comment='微信号')
    high_worth_customer_num = Column(INTEGER(11), comment='高净值客户数（0:无，1:10人一下，2:10-30人，3:30-50人，4:50以上）')
    customer_asset = Column(INTEGER(11), comment='高净值客户资产配置：（0：无，1:100万一下，2:100-200万，3:200-400万，4:400-600万，5:600万以上）')
    financial_planner = Column(INTEGER(1), comment='自身是否是理财师')
    vip_end_time = Column(DateTime, comment='会员到期时间')
    ui_register_time = Column(DateTime)
    ui_auth = Column(String(256), comment='权限集 以英文;分割（S1-基础营）')
    ui_channel = Column(String(32))
    review_time = Column(DateTime, comment='审核时间')
    ui_apple_userid = Column(String(256), comment='苹果授权用户id')
    ifa_no = Column(String(20), comment='理财师编号')
    realname = Column(String(32), comment='真实姓名，禁用于运营维护')


class UserInfoExt(Base, BaseModel):
    __tablename__ = 'user_info_ext'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uie_userid = Column(String(64), comment='用户ID')
    uie_uselogo = Column(String(256), comment='用户当前使用的自定义logo')
    uie_uploadlogo = Column(String(256), comment='用户上传的自定义logo')
    uie_hbimg = Column(String(256))
    ui_setting = Column(String(5120), comment='用户设置')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(INTEGER(1), comment='删除标识')
    ui_peixun_notice = Column(INTEGER(3), comment='培训角标通知')
    ui_huiwu_notice = Column(INTEGER(3), comment='会务角标通知')
    ui_pro_notice = Column(INTEGER(3), comment='产品角标通知')
    service_year = Column(INTEGER(3), comment='服务年限')
    service_personnum = Column(INTEGER(8), comment='服务人数')
    sales_share = Column(String(64), comment='销售份额')
    weshop_poster = Column(String(2048), comment='微店模版')
    weshop_poster_new = Column(Text, comment='微店模版（新版）')


# t_user_info_history = Table(
#     'user_info_history', metadata,
#     Column('id', String(128), comment='唯一主键'),
#     Column('ui_openid', String(128), comment='微信openId'),
#     Column('ui_telphone', String(16), comment='手机号'),
#     Column('ui_nickname', String(64), comment='昵称'),
#     Column('ui_headimg', String(256), comment='头像'),
#     Column('ui_username', String(64), comment='姓名'),
#     Column('ui_sex', String(3), comment='性别'),
#     Column('ui_birthday', DateTime, comment='生日'),
#     Column('ui_introduction', String(256), comment='个人介绍'),
#     Column('ui_type_mp', String(3), comment='名片样式'),
#     Column('ui_headimg_mp', String(256), comment='名片头像'),
#     Column('ui_username_mp', String(32), comment='名片姓名'),
#     Column('ui_telphone_mp', String(16), comment='名片电话'),
#     Column('ui_mobilephone_mp', String(16), comment='名片手机'),
#     Column('ui_company_mp', String(128), comment='名片公司'),
#     Column('ui_company_address_mp', String(128), comment='名片公司地址'),
#     Column('ui_position_mp', String(128), comment='名片职位'),
#     Column('ui_email_mp', String(128), comment='名片邮箱'),
#     Column('ui_introduction_mp', String(256), comment='名片个人介绍'),
#     Column('ui_wechat_qrcode', String(256), comment='微信个人二维码'),
#     Column('ui_type', String(3), comment='类型'),
#     Column('ui_shenfen', String(3), comment='用户身份'),
#     Column('ui_rzstatus', INTEGER(3), comment='用户认证状态'),
#     Column('org_id', String(64), comment='机构Id'),
#     Column('team_id', String(64), comment='团队Id'),
#     Column('join_time', DateTime, comment='加入团队时间'),
#     Column('staff_no', String(128), comment='员工工号'),
#     Column('investor_certified_status', INTEGER(1), comment='合格投资者认证状态'),
#     Column('investor_certified_time', DateTime, comment='合格投资者认证时间'),
#     Column('createtime', DateTime, comment='创建时间'),
#     Column('createby', String(64), comment='创建人'),
#     Column('updatetime', DateTime, comment='修改时间'),
#     Column('updateby', String(64), comment='修改人'),
#     Column('deletetag', String(3), comment='删除标识'),
#     Column('version_time', DateTime, comment='版本时间')
# )


class UserInvestorRz(Base, BaseModel):
    __tablename__ = 'user_investor_rz'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uir_explain = Column(String(128), comment='说明')
    option_a = Column(String(128), comment='选项A')
    option_b = Column(String(128), comment='选项B')
    check_res = Column(String(128), comment='用户选择')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    investor_rz_id = Column(String(64), comment='模版ID')


class UserLike(Base, BaseModel):
    __tablename__ = 'user_like'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ul_ref_id = Column(String(64), comment='所属ID')
    ul_category = Column(INTEGER(1), comment='类型')
    ul_status = Column(INTEGER(1), comment='点赞状态')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserLoginSign(Base, BaseModel):
    __tablename__ = 'user_login_sign'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uls_sign = Column(String(128), comment='签名')
    uls_validity_time = Column(DateTime, comment='有效期')
    uls_status = Column(String(3), comment='使用状态')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserOperateLog(Base, BaseModel):
    __tablename__ = 'user_operate_log'

    id = Column(String(64), primary_key=True, comment='主键')
    operate_user_id = Column(String(64), nullable=False, comment='操作人id')
    operate_type = Column(INTEGER(11), nullable=False, comment='操作类型，根据业务定字典')
    pre_operate_info = Column(String(2000), comment='操作前信息')
    after_operate_info = Column(String(2000), comment='操作后信息')
    create_time = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
    update_time = Column(TIMESTAMP, nullable=False, server_default=text("'0000-00-00 00:00:00'"))
    status = Column(INTEGER(11), nullable=False, comment='状态,1待审核，2已完成，3已取消')


class UserRecallRecord(Base, BaseModel):
    __tablename__ = 'user_recall_record'

    id = Column(String(64), primary_key=True)
    user_id = Column(String(64), nullable=False, index=True, comment='用户id')
    wechat = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否加微信 0：否   1：是')
    wx_group = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否加微信群 0：否   1：是')
    recall = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否回访 0：否   1：是')
    remark = Column(String(255), comment='备注')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(64), nullable=False, comment='创建人')
    update_time = Column(DateTime, nullable=False, comment='更新时间')
    update_by = Column(String(64), nullable=False, comment='更新人')
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否删除')


class UserRecallRecordLog(Base, BaseModel):
    __tablename__ = 'user_recall_record_log'

    id = Column(String(64), primary_key=True)
    user_id = Column(String(64), nullable=False, comment='用户id')
    wechat = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否加微信 0：否   1：是')
    wx_group = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否加微信群 0：否   1：是')
    recall = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否回访 0：否   1：是')
    remark = Column(String(255), comment='备注')
    create_time = Column(DateTime, nullable=False, comment='创建时间')
    create_by = Column(String(64), nullable=False, comment='创建人')
    update_time = Column(DateTime, nullable=False, comment='更新时间')
    update_by = Column(String(64), nullable=False, comment='更新人')
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"), comment='是否删除')
    type = Column(INTEGER(11), nullable=False, comment='type:操作类型 1:是否加微信 2:是否加群 3:是否回访 4:加备注')


class UserRecommend(Base, BaseModel):
    __tablename__ = 'user_recommend'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    fa_id = Column(String(64), comment='理财师Id')
    visitor_id = Column(String(64), comment='访客ID')
    index_date = Column(Date, comment='日期')
    browse_num = Column(BIGINT(8), comment='当天查看次数')
    browse_lastdata = Column(INTEGER(3), comment='是否当天查看过往数据')
    browse_thddays = Column(INTEGER(3), comment='是否连续查看3天')
    browse_day_timelength = Column(BIGINT(8), comment='当天查看时长')
    browse_cont_timelength = Column(BIGINT(8), comment='查看单个内容超过10秒个数')
    forword_num = Column(BIGINT(8), comment='内容被转发次数')
    forword_browsenum = Column(BIGINT(8), comment='被转发内容带来查看次数')
    click_imnnum = Column(BIGINT(8), comment='点击聊一聊次数')
    click_cont_mp_num = Column(BIGINT(8), comment='点击分享内容上的名片次数')
    grant_phone_num = Column(BIGINT(8), comment='授权手机号或连续方式次数')
    reason_num = Column(INTEGER(3), comment='推荐用户')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserRight(Base, BaseModel):
    __tablename__ = 'user_rights'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ur_type = Column(String(3), comment='权益类型')
    ur_proid = Column(String(64), comment='产品ID')
    ur_limitation = Column(String(3), comment='时效类型')
    ur_limitation_starttime = Column(DateTime, comment='时效开始时间')
    ur_limitation_endtime = Column(DateTime, comment='时效结束时间')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserRightsDetail(Base, BaseModel):
    __tablename__ = 'user_rights_detail'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    urd_rights_id = Column(String(64), comment='权益ID')
    urd_type = Column(String(3), comment='类型')
    urd_souce = Column(String(3), comment='获取方式 0：购买 1：活动获取')
    urd_refid = Column(String(64), comment='关联记录ID')
    urd_limitation = Column(String(3), comment='时效类型')
    urd_limitation_starttime = Column(DateTime, comment='时效开始时间')
    urd_limitation_endtime = Column(DateTime, comment='时效结束时间')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserRiskAssessment(Base, BaseModel):
    __tablename__ = 'user_risk_assessment'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    risk_id = Column(String(128), comment='风险评测ID')
    risk_name = Column(String(128), comment='测评名称')
    risk_description = Column(String(1024), comment='说明')
    risk_levels = Column(String(5120), comment='风险等级')
    risk_hight_score = Column(INTEGER(5), comment='测评最高分')
    risk_endtime = Column(DateTime, comment='风险评测有效期到期时间')
    user_total_score = Column(INTEGER(5), comment='用户总得分')
    user_risk_type = Column(String(64), comment='用户风险等级类型(关联常量表 分组：riskProType)')
    user_risk_hightrisk_levels = Column(String(64), comment='用户风险评级')
    user_low_risk = Column(String(3), comment='是否是低风险客户')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')
    risk_expire = Column(INTEGER(3), comment='有效期（单位：月）')


class UserRiskAssessmentItem(Base, BaseModel):
    __tablename__ = 'user_risk_assessment_item'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    risk_assess_id = Column(String(64), comment='用户风险测评记录ID')
    risk_group = Column(String(3), comment='分类(关联常量表 分组类别:riskAssType)')
    risk_item_type = Column(String(3), comment='类型')
    risk_item_stem = Column(String(512), comment='题干')
    risk_item_options = Column(String(5120), comment='选项')
    user_answer = Column(String(64), comment='用户答案')
    user_score = Column(INTEGER(5), comment='用户得分')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserRistRz(Base, BaseModel):
    __tablename__ = 'user_rist_rz'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    urr_rz_phone = Column(String(64), comment='用户手机号认证')
    urr_rz_phone_date = Column(DateTime, comment='用户手机号认证时间')
    urr_rz_name = Column(String(32), comment='认证用户姓名')
    urr_rz_cert_type = Column(String(3), comment='身份信息认证-证件类型')
    urr_rz_cert_no = Column(String(64), comment='身份信息认证-证件号')
    urr_rz_cert_date = Column(DateTime, comment='身份信息认证时间')
    investor_certified_id = Column(String(64), comment='合格投资者认证关联用户记录')
    investor_certified_status = Column(INTEGER(1), comment='合格投资者认证状态')
    investor_certified_time = Column(DateTime, comment='合格投资者认证时间')
    investor_riskrz_id = Column(String(64), comment='风险测评认证关联用户记录')
    investor_riskrz_status = Column(INTEGER(1), comment='风险测评认证状态')
    investor_riskrz_time = Column(DateTime, comment='风险测评认证时间')
    expire_time = Column(DateTime, comment='测评到期时间')
    org_id = Column(String(128), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), index=True, comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(INTEGER(1), comment='删除标识')


class UserRole(Base, BaseModel):
    __tablename__ = 'user_role'
    __table_args__ = {'comment': '数据权限'}

    id = Column(String(64), primary_key=True)
    ur_code = Column(String(16), nullable=False, unique=True, comment='用户角色唯一编码')
    ur_coll = Column(String(64), nullable=False, comment='角色集合')
    ur_desc = Column(String(255), comment='角色集合描述')
    ur_name = Column(String(128), nullable=False, comment='用户角色描述（后台展示用）')
    ur_action = Column(String(64), nullable=False, comment='不满足当前权限要执行的动作')
    ur_action_desc = Column(String(128), nullable=False, comment='动作描述')
    ur_type = Column(INTEGER(3), nullable=False, comment='角色类型 0:功能角色 1:数据角色')
    create_by = Column(String(64), nullable=False)
    create_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
    update_by = Column(String(64))
    update_time = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
    delete_tag = Column(INTEGER(1), nullable=False, server_default=text("'0'"))


class UserShield(Base, BaseModel):
    __tablename__ = 'user_shield'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    iscontain_shield_user = Column(String(3), comment='是否包含屏蔽用户')
    shield_userid = Column(String(64), comment='屏蔽用户ID')
    org_id = Column(String(64), comment='机构ID')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserTalk(Base, BaseModel):
    __tablename__ = 'user_talk'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ut_content = Column(String(512), comment='内容')
    ut_paixu = Column(INTEGER(3), comment='排序')
    ut_type = Column(INTEGER(11), comment='类型 0：聊天自定义话术 1：文章插入产品自定义话术')
    org_id = Column(String(64), comment='机构Id')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserTeam(Base, BaseModel):
    __tablename__ = 'user_team'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    user_id = Column(String(64), comment='用户Id')
    team_id = Column(String(64), comment='团队Id')
    is_leader = Column(INTEGER(128), comment='是否为团队长')
    invited_by = Column(String(64), comment='邀请人Id')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserTemplate(Base, BaseModel):
    __tablename__ = 'user_template'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    ut_tem = Column(Text, comment='模块记录')
    ut_tem_del = Column(Text, comment='删除的模块')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserTemplate20190925(Base, BaseModel):
    __tablename__ = 'user_template_20190925'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ut_tem = Column(Text, comment='模块记录')
    ut_tem_del = Column(Text, comment='删除的模块')
    createtime = Column(DateTime, comment='创建时间')
    createby = Column(String(64), comment='创建人')
    updatetime = Column(DateTime, comment='修改时间')
    updateby = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class UserVisitorClue(Base, BaseModel):
    __tablename__ = 'user_visitor_clue'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uc_userid = Column(String(64), comment='客户ID')
    uc_name = Column(String(32), comment='客户姓名')
    uc_headimg = Column(String(256), comment='客户头像')
    uc_phone = Column(String(32), comment='客户手机')
    uc_real_phone = Column(String(32))
    uc_msg_num = Column(INTEGER(6), comment='未读消息数')
    uc_recent_visit_time = Column(DateTime, comment='最近访问时间')
    uc_recent_visit_title = Column(String(256), comment='最近访问内容标题')
    uc_visit_lable = Column(String(128), comment='访问标签')
    uc_visit_content = Column(Text, comment='访问内容集合')
    uc_faid = Column(String(64), comment='理财师ID')
    uc_fission = Column(String(3), comment='一级好友标志0一级好友，1裂变好友')
    uc_ismycustomer = Column(INTEGER(5))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    uc_visitor_category = Column(INTEGER(11), comment='访客类别，0普通，1重点加星客户')
    uc_recommend_val = Column(INTEGER(11), server_default=text("'11'"))
    orgid = Column(String(64), comment='机构代码')
    user_source = Column(String(3))
    first_room = Column(String(64), comment='第一次直播间Id')
    first_class_friend_room_id = Column(String(64), comment='成为一级好友的直播间Id')
    first_class_friend_time = Column(TIMESTAMP, comment='成为一级好友的时间')
    important_user_room_id = Column(String(128), comment='成为重点用户的直播间id')
    important_user_time = Column(TIMESTAMP, comment='成为重点用户的时间')
    collect_username = Column(String(64), comment=' 直播收集用户姓名')
    collect_phone = Column(String(16), comment='直播收集手机号')
    collect_isdone = Column(INTEGER(3), comment='直播是否收集过用户信息 0:否 1:是')
    collect_time = Column(DateTime, comment='直播收集用户信息时间')
    isconsult = Column(INTEGER(3), comment='是否咨询过理财师 0：否 1:是')


class UserWechat(Base, BaseModel):
    __tablename__ = 'user_wechats'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    uw_wechatid = Column(String(64), comment='公众号记录ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class UserWhitelist(Base, BaseModel):
    __tablename__ = 'user_whitelist'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    openid = Column(String(128), comment='用户openId')
    funcode = Column(String(256), comment='权限功能码')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class VipUser(Base, BaseModel):
    __tablename__ = 'vip_user'

    id = Column(String(64), primary_key=True, server_default=text("''"), comment='唯一主键')
    vp_name = Column(String(32), comment='用户姓名')
    vp_phone = Column(String(64), comment='手机号')
    vp_sex = Column(String(3), comment='用户性别')
    vp_birthday = Column(String(64), comment='用户生日')
    vp_city = Column(String(64), comment='所在城市')
    vp_isfa = Column(String(16), comment='是否是理财师')
    vp_level = Column(String(16), comment='等级')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class WxCpUser(Base, BaseModel):
    __tablename__ = 'wx_cp_user'

    user_id = Column(String(128), primary_key=True, server_default=text("''"), comment='企业微信ID')
    user_name = Column(String(128), comment='姓名')
    department_id = Column(String(128), comment='营业部代码')
    department_name = Column(String(128), comment='营业部名称')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class ZhiboAppointment(Base, BaseModel):
    __tablename__ = 'zhibo_appointment'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    za_themeid = Column(String(64), comment='主题ID')
    za_userid = Column(String(64), comment='预约人')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')


class ZhiboBlack(Base, BaseModel):
    __tablename__ = 'zhibo_black'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zb_user_id = Column(String(64), comment='用户id')
    zb_theme_id = Column(String(64), comment='主题ID')
    zb_room_num = Column(String(64), comment='直播房间号')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class ZhiboExam(Base, BaseModel):
    __tablename__ = 'zhibo_exam'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    ze_themeid = Column(String(64), comment='主题ID')
    ze_teaid = Column(String(64), comment='老师ID')
    ze_title = Column(String(128), comment='题目')
    ze_options = Column(String(2048), comment='选项')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class ZhiboExamAnswer(Base, BaseModel):
    __tablename__ = 'zhibo_exam_answer'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zs_themeid = Column(String(64), comment='主题ID')
    zs_msg = Column(String(64), comment='消息ID')
    zs_userid = Column(String(64), comment='用户ID')
    zs_answer = Column(String(64), comment='选择答案')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class ZhiboFile(Base, BaseModel):
    __tablename__ = 'zhibo_file'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zf_themeid = Column(String(32), comment='主题ID')
    zf_url = Column(String(32), comment='附件地址')
    zf_file_type = Column(String(3), comment='上传类型')
    zf_use = Column(String(3), comment='用途')
    zf_no = Column(INTEGER(3), comment='序号')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    org_id = Column(String(64), comment='机构ID')


class ZhiboHost(Base, BaseModel):
    __tablename__ = 'zhibo_host'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zh_roomnum = Column(String(32), comment='直播房间号')
    zh_status = Column(String(3), comment='直播状态')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    zh_room_name = Column(String(64), comment='直播房间名称')


class ZhiboManger(Base, BaseModel):
    __tablename__ = 'zhibo_manger'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zm_userid = Column(String(64), comment='管理员')
    zm_roomnum = Column(String(32), comment='直播房间号')
    zm_shenfen = Column(String(3), comment='管理员身份')
    zm_paixu = Column(INTEGER(3))
    zm_username = Column(String(32))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    org_id = Column(String(64), comment='机构ID')
    zm_teaid = Column(String(64), comment='讲师ID')


class ZhiboMessage(Base, BaseModel):
    __tablename__ = 'zhibo_message'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zm_content = Column(String(1024), comment='消息')
    zm_themeid = Column(String(64))
    zm_serviceid = Column(String(128), comment='微信serviceId')
    zm_format = Column(String(3), comment='消息格式')
    zm_type = Column(String(3), comment='消息类型')
    zm_askid = Column(String(64), comment='提问消息ID')
    zm_roomnum = Column(String(32), comment='直播房间号')
    zm_audiotimelength = Column(INTEGER(11), server_default=text("'5'"))
    zm_timesplit = Column(String(3))
    zm_audiotext = Column(String(512))
    zm_status = Column(String(3))
    zm_recordtime = Column(DateTime)
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    org_id = Column(String(64), comment='机构ID')
    highlighted = Column(INTEGER(3), comment='是否是重点')


class ZhiboPhrase(Base, BaseModel):
    __tablename__ = 'zhibo_phrase'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zp_type = Column(String(64), comment='类型')
    zp_content = Column(String(1024), comment='内容')
    zp_sort_num = Column(INTEGER(11), comment='排序')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(String(3), comment='删除标识')


class ZhiboSign(Base, BaseModel):
    __tablename__ = 'zhibo_sign'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zs_themeid = Column(String(64), comment='主题ID')
    zs_userid = Column(String(64), comment='签到人ID')
    zs_headimg = Column(String(256), comment='签到人头像')
    zs_uname = Column(String(64), comment='签到人姓名')
    org_id = Column(String(64), comment='机构ID')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')


class ZhiboTheme(Base, BaseModel):
    __tablename__ = 'zhibo_theme'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zt_name = Column(String(32), comment='主题名称')
    zt_starttime = Column(DateTime, comment='开播时间，显示的开始时间')
    zt_endtime = Column(DateTime, comment='结束时间，显示的结束时间')
    zt_desc = Column(String(512), comment='描述，介绍')
    zt_roomnum = Column(String(32))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    zt_status = Column(Text, comment='直播间状态')
    zt_backimg = Column(String(128), comment='直播背景图,封面')
    share_pattern = Column(INTEGER(3), comment='分享模式')
    zt_img = Column(String(128), comment='缩略图')
    zt_iszhibo = Column(String(3), comment='是否含直播')
    zt_proid = Column(String(64), comment='关联产品')
    zt_uname = Column(String(128), comment='培训人')
    zt_flag = Column(String(3), comment='参与人开放标识')
    org_id = Column(String(64), comment='机构ID')
    zt_password = Column(String(8), comment='密码')
    zt_label = Column(String(1024), comment='直播标签')
    zt_userids = Column(Text, comment='参与人')
    zt_mute = Column(String(3), comment='是否静音 0：否 1：是')
    zt_type = Column(String(64), comment='标签')
    zt_appointment_nums = Column(INTEGER(8))
    zt_info = Column(Text)
    zt_qrcode = Column(String(256))
    zt_fuli = Column(Text)
    zt_cardinal = Column(INTEGER(11), comment='直播基数')


class ZhiboUser(Base, BaseModel):
    __tablename__ = 'zhibo_users'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zu_themdid = Column(String(32), comment='主题ID')
    zu_uid = Column(String(32), comment='组织或人员ID')
    zu_type = Column(String(3), comment='类型')
    zu_fullpath = Column(String(512))
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    deletetag = Column(String(3), comment='删除标识')
    org_id = Column(String(64), comment='机构ID')


class Zidian(Base, BaseModel):
    __tablename__ = 'zidian'

    id = Column(String(64), primary_key=True, comment='唯一主键')
    zu = Column(String(64), comment='组')
    daima = Column(String(64), comment='代码')
    zhi = Column(String(64), comment='值')
    paixu = Column(INTEGER(4), comment='排序')
    create_time = Column(DateTime, comment='创建时间')
    create_by = Column(String(64), comment='创建人')
    update_time = Column(DateTime, comment='修改时间')
    update_by = Column(String(64), comment='修改人')
    delete_tag = Column(INTEGER(1), comment='删除标识')

