from django.db import models
from .named_enum import DocStatus, KeywordsType, RequestTeam, RequestTrigger, FailureReason, ProcessName, WorkflowName
from .consts import IC_CLASSIFY

# Create your models here.


# 上传文件记录表/任务表
class UploadDocRecords(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")
    metadata_version_id = models.CharField(max_length=64, verbose_name="元数据版本id")  # 索引
    application_id = models.CharField(max_length=64, verbose_name="申请id")
    main_applicant = models.CharField(max_length=16, verbose_name="主申请人")
    co_applicant = models.CharField(max_length=16, verbose_name="共同申请人")
    guarantor_1 = models.CharField(max_length=16, verbose_name="担保人1")
    guarantor_2 = models.CharField(max_length=16, verbose_name="担保人2")
    document_name = models.CharField(max_length=255, verbose_name="文件名")
    document_scheme = models.CharField(max_length=64, verbose_name="文件方案")
    business_type = models.CharField(max_length=64, verbose_name="业务类型")
    data_source = models.CharField(max_length=64, verbose_name="数据源")
    upload_finish_time = models.DateTimeField(verbose_name="上传完成时间")
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'upload_doc_records'
        situ_db_label = 'afc'


class HILDoc(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")
    metadata_version_id = models.CharField(max_length=64, verbose_name="元数据版本id")
    application_id = models.CharField(max_length=64, verbose_name="申请id")                  # 联合索引
    status = models.SmallIntegerField(default=DocStatus.INIT.value, verbose_name="文件状态")  # 联合索引
    retry_step = models.SmallIntegerField(null=True, verbose_name="重试环节")
    retry_times = models.SmallIntegerField(default=0, verbose_name="重试次数")
    is_retry = models.BooleanField(default=False, verbose_name="是否需要重试")
    # main_applicant = models.CharField(max_length=16, verbose_name="主申请人")
    # co_applicant = models.CharField(max_length=16, verbose_name="共同申请人")
    # guarantor_1 = models.CharField(max_length=16, verbose_name="担保人1")
    # guarantor_2 = models.CharField(max_length=16, verbose_name="担保人2")
    document_name = models.CharField(max_length=255, verbose_name="文件名")
    document_scheme = models.CharField(max_length=64, verbose_name="文件方案")
    data_source = models.CharField(max_length=64, verbose_name="数据源")
    upload_finish_time = models.DateTimeField(verbose_name="上传完成时间")           # 索引
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引
    start_time = models.DateTimeField(null=True, verbose_name='开始时间')            # 联合索引
    end_time = models.DateTimeField(null=True, verbose_name='结束时间')              # 联合索引
    duration = models.IntegerField(null=True, verbose_name='处理时长')

    bs_count = models.IntegerField(default=0, verbose_name='银行流水处理数目')
    mvi_count = models.IntegerField(default=0, verbose_name='机动车销售统一发票处理数目')
    ic_count = models.IntegerField(default=0, verbose_name='身份证处理数目')
    rp_count = models.IntegerField(default=0, verbose_name='居住证处理数目')
    bc_count = models.IntegerField(default=0, verbose_name='银行卡处理数目')
    bl_count = models.IntegerField(default=0, verbose_name='营业执照处理数目')
    uci_count = models.IntegerField(default=0, verbose_name='二手车发票处理数目')
    eep_count = models.IntegerField(default=0, verbose_name='港澳台通行证处理数目')
    dl_count = models.IntegerField(default=0, verbose_name='行驶证处理数目')
    pp_count = models.IntegerField(default=0, verbose_name='护照处理数目')
    mvc_count = models.IntegerField(default=0, verbose_name='机动车登记证书处理数目')
    vat_count = models.IntegerField(default=0, verbose_name='增值税发票处理数目')

    page_count = models.IntegerField(null=True, verbose_name='文件page数目')
    metadata = models.TextField(null=True, verbose_name="电子PDF专属,PDF信息")
    password = models.CharField(null=True, max_length=64, verbose_name="文件密码")

    class Meta:
        managed = False
        db_table = 'hil_doc'


class AFCDoc(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")
    metadata_version_id = models.CharField(max_length=64, verbose_name="元数据版本id")
    application_id = models.CharField(max_length=64, verbose_name="申请id")
    status = models.SmallIntegerField(default=DocStatus.INIT.value, verbose_name="文件状态")
    retry_step = models.SmallIntegerField(null=True, verbose_name="重试环节")
    retry_times = models.SmallIntegerField(default=0, verbose_name="重试次数")
    is_retry = models.BooleanField(default=False, verbose_name="是否需要重试")
    # main_applicant = models.CharField(max_length=16, verbose_name="主申请人")
    # co_applicant = models.CharField(max_length=16, verbose_name="共同申请人")
    # guarantor_1 = models.CharField(max_length=16, verbose_name="担保人1")
    # guarantor_2 = models.CharField(max_length=16, verbose_name="担保人2")
    document_name = models.CharField(max_length=255, verbose_name="文件名")
    document_scheme = models.CharField(max_length=64, verbose_name="文件方案")
    data_source = models.CharField(max_length=64, verbose_name="数据源")
    upload_finish_time = models.DateTimeField(verbose_name="上传完成时间")
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    start_time = models.DateTimeField(null=True, verbose_name='开始时间')
    end_time = models.DateTimeField(null=True, verbose_name='结束时间')
    duration = models.IntegerField(null=True, verbose_name='处理时长')

    bs_count = models.IntegerField(default=0, verbose_name='银行流水处理数目')
    mvi_count = models.IntegerField(default=0, verbose_name='机动车销售统一发票处理数目')
    ic_count = models.IntegerField(default=0, verbose_name='身份证处理数目')
    rp_count = models.IntegerField(default=0, verbose_name='居住证处理数目')
    bc_count = models.IntegerField(default=0, verbose_name='银行卡处理数目')
    bl_count = models.IntegerField(default=0, verbose_name='营业执照处理数目')
    uci_count = models.IntegerField(default=0, verbose_name='二手车发票处理数目')
    eep_count = models.IntegerField(default=0, verbose_name='港澳台通行证处理数目')
    dl_count = models.IntegerField(default=0, verbose_name='行驶证处理数目')
    pp_count = models.IntegerField(default=0, verbose_name='护照处理数目')
    mvc_count = models.IntegerField(default=0, verbose_name='机动车登记证书处理数目')
    vat_count = models.IntegerField(default=0, verbose_name='增值税发票处理数目')

    page_count = models.IntegerField(null=True, verbose_name='文件page数目')
    metadata = models.TextField(null=True, verbose_name="电子PDF专属,PDF信息")
    password = models.CharField(null=True, max_length=64, verbose_name="文件密码")

    class Meta:
        managed = False
        situ_db_label = 'afc'
        db_table = 'afc_doc'


class GCAPRecords(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")
    status = models.IntegerField(null=True, verbose_name='状态')
    rating = models.IntegerField(null=True, verbose_name='排名')
    entity = models.CharField(null=True, max_length=128, verbose_name="业务类型")
    application_id = models.CharField(max_length=64, verbose_name="申请id")
    application_version = models.IntegerField(null=True, verbose_name='申请版本')
    intermediate_decision = models.CharField(null=True, max_length=128, verbose_name="中间决策")
    submit_datetime = models.DateTimeField(null=True, verbose_name='提交时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        situ_db_label = 'afc'
        db_table = 'gcap_records'


class PriorityApplication(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 联合索引
    on_off = models.BooleanField(default=True, verbose_name="是否有效")       # 联合索引
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        situ_db_label = 'afc'
        db_table = 'priority_application'


class Keywords(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")
    keyword = models.CharField(max_length=64, verbose_name="关键词")
    type = models.SmallIntegerField(choices=KeywordsType.get_choices_lst(), verbose_name="类型")
    on_off = models.BooleanField(default=True, verbose_name="是否有效")
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        situ_db_label = 'afc'
        db_table = 'keywords'
        verbose_name = '银行流水关键词'
        verbose_name_plural = verbose_name


class Configs(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")
    value = models.CharField(max_length=255, verbose_name="配置值")
    comment = models.CharField(max_length=64, verbose_name="说明")

    class Meta:
        managed = False
        situ_db_label = 'afc'
        db_table = 'configs'
        verbose_name = '配置信息'
        verbose_name_plural = verbose_name


# 比对信息表
class AFCComparisonInfo(models.Model):
    id = models.BigAutoField(primary_key=True, verbose_name="id")  # 主键
    uniq_seq = models.CharField(max_length=128, verbose_name="唯一序列号")  # 索引?
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    # CUSTOMER_TYPE = ['TCCOR', 'TCDAS', 'TCFRE', 'TCIAS', 'TCIND', 'TCSEP', 'TCURE']
    customer_type = models.CharField(max_length=16, verbose_name="顾客类型")
    application_version = models.SmallIntegerField(default=0, verbose_name="应用版本")
    vehicle_status = models.CharField(max_length=16, verbose_name="车辆状况")  # VEHICLE_STATUS = ['PCUSD', 'PCNEW']

    individual_cus_info = models.TextField(verbose_name="个人信息")

    usedcar_info = models.TextField(null=True, verbose_name="二手车信息")

    corporate_cus_info = models.TextField(null=True, verbose_name="企业信息")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'afc_comparison_info'
        situ_db_label = 'afc'

# 比对信息表
class AFCSEComparisonInfo(models.Model):
    id = models.BigAutoField(primary_key=True, verbose_name="id")  # 主键
    uniq_seq = models.CharField(max_length=128, verbose_name="唯一序列号")  # 索引
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    application_version = models.SmallIntegerField(default=0, verbose_name="应用版本")
    # CUSTOMER_TYPE = ['TCCOR', 'TCDAS', 'TCFRE', 'TCIAS', 'TCIND', 'TCSEP', 'TCURE']
    customer_type = models.CharField(max_length=16, verbose_name="顾客类型")
    first_submmison_date = models.CharField(max_length=16, verbose_name="首次提交时间")
    property_doc_policy = models.CharField(null=True, max_length=16, verbose_name="申请及文件政策")

    individual_cus_info = models.TextField(verbose_name="个人信息")
    corporate_cus_info = models.TextField(null=True, verbose_name="公司信息")
    vehicle_info = models.TextField(verbose_name="车辆信息")
    insurance_info = models.TextField(verbose_name="保险信息")
    bank_info = models.TextField(verbose_name="银行信息")
    quotationt_info = models.TextField(verbose_name="报价信息")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'afc_se_comparison_info'
        situ_db_label = 'afc'


# 比对信息表
class HILSEComparisonInfo(models.Model):
    id = models.BigAutoField(primary_key=True, verbose_name="id")  # 主键
    uniq_seq = models.CharField(max_length=128, verbose_name="唯一序列号")  # 索引
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    application_version = models.SmallIntegerField(default=0, verbose_name="应用版本")
    # CUSTOMER_TYPE = ['TCCOR', 'TCDAS', 'TCFRE', 'TCIAS', 'TCIND', 'TCSEP', 'TCURE']
    customer_type = models.CharField(max_length=16, verbose_name="顾客类型")
    first_submmison_date = models.CharField(max_length=16, verbose_name="首次提交时间")
    property_doc_policy = models.CharField(null=True, max_length=16, verbose_name="申请及文件政策")

    individual_cus_info = models.TextField(verbose_name="个人信息")
    corporate_cus_info = models.TextField(null=True, verbose_name="公司信息")
    vehicle_info = models.TextField(verbose_name="车辆信息")
    insurance_info = models.TextField(verbose_name="保险信息")
    bank_info = models.TextField(verbose_name="银行信息")
    quotationt_info = models.TextField(verbose_name="报价信息")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'hil_se_comparison_info'


# 比对信息表
class AFCSECMSInfo(models.Model):
    id = models.BigAutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    content = models.TextField(verbose_name="CMS信息")
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'afc_se_cms_info'
        situ_db_label = 'afc'


# 比对信息表
class HILSECMSInfo(models.Model):
    id = models.BigAutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    content = models.TextField(verbose_name="CMS信息")
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'hil_se_cms_info'


# 比对信息表
class HILComparisonInfo(models.Model):
    id = models.BigAutoField(primary_key=True, verbose_name="id")  # 主键
    uniq_seq = models.CharField(max_length=128, verbose_name="唯一序列号")  # 索引?
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    # CUSTOMER_TYPE = ['TCCOR', 'TCDAS', 'TCFRE', 'TCIAS', 'TCIND', 'TCSEP', 'TCURE']
    customer_type = models.CharField(max_length=16, verbose_name="顾客类型")
    application_version = models.SmallIntegerField(default=0, verbose_name="应用版本")
    vehicle_status = models.CharField(max_length=16, verbose_name="车辆状况")  # VEHICLE_STATUS = ['PCUSD', 'PCNEW']

    individual_cus_info = models.TextField(verbose_name="个人信息")

    usedcar_info = models.TextField(null=True, verbose_name="二手车信息")

    corporate_cus_info = models.TextField(null=True, verbose_name="企业信息")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'hil_comparison_info'


# OCR结果累计表
class AFCOCRResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引

    bs_ocr = models.TextField(null=True, verbose_name="DDA")
    mvi_ocr = models.TextField(null=True, verbose_name="机动车销售统一发票")
    ic_ocr = models.TextField(null=True, verbose_name="身份证")
    rp_ocr = models.TextField(null=True, verbose_name="居住证")
    bc_ocr = models.TextField(null=True, verbose_name="银行卡")
    bl_ocr = models.TextField(null=True, verbose_name="营业执照")
    uci_ocr = models.TextField(null=True, verbose_name="二手车发票")
    eep_ocr = models.TextField(null=True, verbose_name="港澳台通行证")
    dl_ocr = models.TextField(null=True, verbose_name="行驶证")
    pp_ocr = models.TextField(null=True, verbose_name="护照")
    mvc_ocr = models.TextField(null=True, verbose_name="机动车登记证")
    vat_ocr = models.TextField(null=True, verbose_name="增值税发票")
    hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
    jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
    ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
    bd_ocr = models.TextField(null=True, verbose_name="保单")
    bss_ocr = models.TextField(null=True, verbose_name="银行流水")
    hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1")
    hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
    hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
    qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_ocr_result'
        situ_db_label = 'afc'


# OCR结果累计表
class HILOCRResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引

    bs_ocr = models.TextField(null=True, verbose_name="DDA")
    mvi_ocr = models.TextField(null=True, verbose_name="机动车销售统一发票")
    ic_ocr = models.TextField(null=True, verbose_name="身份证")
    rp_ocr = models.TextField(null=True, verbose_name="居住证")
    bc_ocr = models.TextField(null=True, verbose_name="银行卡")
    bl_ocr = models.TextField(null=True, verbose_name="营业执照")
    uci_ocr = models.TextField(null=True, verbose_name="二手车发票")
    eep_ocr = models.TextField(null=True, verbose_name="港澳台通行证")
    dl_ocr = models.TextField(null=True, verbose_name="行驶证")
    pp_ocr = models.TextField(null=True, verbose_name="护照")
    mvc_ocr = models.TextField(null=True, verbose_name="机动车登记证")
    vat_ocr = models.TextField(null=True, verbose_name="增值税发票")
    hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
    jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
    ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
    bd_ocr = models.TextField(null=True, verbose_name="保单")
    bss_ocr = models.TextField(null=True, verbose_name="银行流水")
    hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1")
    hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
    hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
    qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'hil_ocr_result'


# OCR结果累计表
class AFCSEOCRResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引

    bs_ocr = models.TextField(null=True, verbose_name="DDA")
    mvi_ocr = models.TextField(null=True, verbose_name="机动车销售统一发票")
    ic_ocr = models.TextField(null=True, verbose_name="身份证")
    rp_ocr = models.TextField(null=True, verbose_name="居住证")
    bc_ocr = models.TextField(null=True, verbose_name="银行卡")
    bl_ocr = models.TextField(null=True, verbose_name="营业执照")
    uci_ocr = models.TextField(null=True, verbose_name="二手车发票")
    eep_ocr = models.TextField(null=True, verbose_name="港澳台通行证")
    dl_ocr = models.TextField(null=True, verbose_name="行驶证")
    pp_ocr = models.TextField(null=True, verbose_name="护照")
    mvc_ocr = models.TextField(null=True, verbose_name="机动车登记证")
    vat_ocr = models.TextField(null=True, verbose_name="增值税发票")
    hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
    jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
    ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
    bd_ocr = models.TextField(null=True, verbose_name="保单")
    bss_ocr = models.TextField(null=True, verbose_name="银行流水")
    hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1")
    hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
    hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
    qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_se_ocr_result'
        situ_db_label = 'afc'


# OCR结果累计表
class HILSEOCRResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引

    bs_ocr = models.TextField(null=True, verbose_name="DDA")
    mvi_ocr = models.TextField(null=True, verbose_name="机动车销售统一发票")
    ic_ocr = models.TextField(null=True, verbose_name="身份证")
    rp_ocr = models.TextField(null=True, verbose_name="居住证")
    bc_ocr = models.TextField(null=True, verbose_name="银行卡")
    bl_ocr = models.TextField(null=True, verbose_name="营业执照")
    uci_ocr = models.TextField(null=True, verbose_name="二手车发票")
    eep_ocr = models.TextField(null=True, verbose_name="港澳台通行证")
    dl_ocr = models.TextField(null=True, verbose_name="行驶证")
    pp_ocr = models.TextField(null=True, verbose_name="护照")
    mvc_ocr = models.TextField(null=True, verbose_name="机动车登记证")
    vat_ocr = models.TextField(null=True, verbose_name="增值税发票")
    hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
    jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
    ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
    bd_ocr = models.TextField(null=True, verbose_name="保单")
    bss_ocr = models.TextField(null=True, verbose_name="银行流水")
    hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1")
    hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
    hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
    qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'hil_se_ocr_result'


# OCR Report
class HILOCRReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    case_number = models.CharField(max_length=64, verbose_name="申请id")
    request_team = models.SmallIntegerField(default=RequestTeam.ACCEPTANCE.value, verbose_name="来源")
    request_trigger = models.SmallIntegerField(default=RequestTrigger.POS.value, verbose_name="触发者")
    input_file = models.CharField(max_length=255, verbose_name="文件名")
    transaction_start = models.DateTimeField(verbose_name='开始时间')  # 索引
    transaction_end = models.DateTimeField(verbose_name='结束时间')
    successful_at_this_level = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.SmallIntegerField(null=True, verbose_name="失败原因")
    process_name = models.SmallIntegerField(default=ProcessName.ALL.value, verbose_name="流程名称")
    total_fields = models.IntegerField(null=True, verbose_name='比对字段数目')
    workflow_name = models.SmallIntegerField(null=True, verbose_name="工作流程")
    notes = models.CharField(null=True, max_length=2048, verbose_name="备注")

    bank_name = models.CharField(null=True, max_length=2048, verbose_name="版式名称")
    is_ebank = models.BooleanField(default=False, verbose_name="是否电子")
    bs_check_result = models.SmallIntegerField(default=0, verbose_name="鉴伪结果")  # 0 无鉴伪 1鉴伪pass 2鉴伪nopass 3鉴伪过程异常

    class Meta:
        managed = False
        db_table = 'hil_ocr_report'


class AFCOCRReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    case_number = models.CharField(max_length=64, verbose_name="申请id")
    request_team = models.SmallIntegerField(default=RequestTeam.ACCEPTANCE.value, verbose_name="来源")
    request_trigger = models.SmallIntegerField(default=RequestTrigger.POS.value, verbose_name="触发者")
    input_file = models.CharField(max_length=255, verbose_name="文件名")
    transaction_start = models.DateTimeField(verbose_name='开始时间')  # 索引
    transaction_end = models.DateTimeField(verbose_name='结束时间')
    successful_at_this_level = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.SmallIntegerField(null=True, verbose_name="失败原因")
    process_name = models.SmallIntegerField(default=ProcessName.ALL.value, verbose_name="流程名称")
    total_fields = models.IntegerField(null=True, verbose_name='比对字段数目')
    workflow_name = models.SmallIntegerField(null=True, verbose_name="工作流程")
    notes = models.CharField(null=True, max_length=2048, verbose_name="备注")

    bank_name = models.CharField(null=True, max_length=2048, verbose_name="版式名称")
    is_ebank = models.BooleanField(default=False, verbose_name="是否电子")
    bs_check_result = models.SmallIntegerField(default=0, verbose_name="鉴伪结果")  # 0 无鉴伪 1鉴伪pass 2鉴伪nopass

    class Meta:
        managed = False
        db_table = 'afc_ocr_report'
        situ_db_label = 'afc'


class HILCompareReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    case_number = models.CharField(max_length=64, verbose_name="申请id")
    request_team = models.SmallIntegerField(default=RequestTeam.ACCEPTANCE.value, verbose_name="来源")
    request_trigger = models.SmallIntegerField(default=RequestTrigger.SUBMITING.value, verbose_name="触发者")
    input_file = models.CharField(max_length=255, verbose_name="文件名", null=True)
    transaction_start = models.DateTimeField(verbose_name='开始时间')  # 索引
    transaction_end = models.DateTimeField(verbose_name='结束时间')
    successful_at_this_level = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.TextField(null=True, verbose_name="失败原因")
    process_name = models.SmallIntegerField(default=ProcessName.CACOMPARE.value, verbose_name="流程名称")
    total_fields = models.IntegerField(null=True, verbose_name='比对字段数目')
    workflow_name = models.CharField(max_length=255, verbose_name="工作流程", null=True)

    class Meta:
        managed = False
        db_table = 'hil_compare_report'


class AFCCompareReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    case_number = models.CharField(max_length=64, verbose_name="申请id")
    request_team = models.SmallIntegerField(default=RequestTeam.ACCEPTANCE.value, verbose_name="来源")
    request_trigger = models.SmallIntegerField(default=RequestTrigger.SUBMITING.value, verbose_name="触发者")

    input_file = models.CharField(max_length=255, verbose_name="文件名", null=True)
    transaction_start = models.DateTimeField(verbose_name='开始时间')  # 索引
    transaction_end = models.DateTimeField(verbose_name='结束时间')
    successful_at_this_level = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.TextField(null=True, verbose_name="失败原因")
    process_name = models.SmallIntegerField(default=ProcessName.CACOMPARE.value, verbose_name="流程名称")
    total_fields = models.IntegerField(null=True, verbose_name='比对字段数目')
    workflow_name = models.CharField(max_length=255, verbose_name="工作流程", null=True)

    class Meta:
        managed = False
        db_table = 'afc_compare_report'
        situ_db_label = 'afc'


class HILCompareOfflineReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    case_number = models.CharField(max_length=255, verbose_name="申请id")
    request_team = models.CharField(max_length=255, verbose_name="来源")
    request_trigger = models.CharField(max_length=1024, verbose_name="触发者")
    input_file = models.CharField(max_length=2048, verbose_name="文件名")
    transaction_start = models.DateTimeField(verbose_name='开始时间')  # 索引
    transaction_end = models.DateTimeField(verbose_name='结束时间')
    successful_at_this_level = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.TextField(null=True, verbose_name="失败原因")
    process_name = models.CharField(max_length=1024, verbose_name="流程名称")
    total_fields = models.IntegerField(verbose_name='比对字段数目', null=True)
    workflow_name = models.CharField(max_length=1024, verbose_name="工作流程")

    class Meta:
        managed = False
        db_table = 'hil_compare_offline_report'


class AFCCompareOfflineReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    case_number = models.CharField(max_length=255, verbose_name="申请id")
    request_team = models.CharField(max_length=255, verbose_name="来源")
    request_trigger = models.CharField(max_length=1024, verbose_name="触发者")
    input_file = models.CharField(max_length=2048, verbose_name="文件名")
    transaction_start = models.DateTimeField(verbose_name='开始时间')  # 索引
    transaction_end = models.DateTimeField(verbose_name='结束时间')
    successful_at_this_level = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.TextField(null=True, verbose_name="失败原因")
    process_name = models.CharField(max_length=1024, verbose_name="流程名称")
    total_fields = models.IntegerField(verbose_name='比对字段数目', null=True)
    workflow_name = models.CharField(max_length=1024, verbose_name="工作流程")

    class Meta:
        managed = False
        db_table = 'afc_compare_offline_report'
        situ_db_label = 'afc'


# DDA ID & BC     ----> HIL SE 专有
class DDARecords(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引

    is_dda_found = models.BooleanField(default=False, verbose_name="DDA是否找到")
    is_id_found = models.BooleanField(default=False, verbose_name="身份证是否找到")
    is_bc_found = models.BooleanField(default=False, verbose_name="银行卡是否找到")
    all_found = models.BooleanField(default=False, verbose_name="是否全找到")

    dda_path = models.CharField(null=True, max_length=1024, verbose_name="DDA图片路径")
    id_path = models.CharField(null=True, max_length=1024, verbose_name="身份证图片路径")
    bc_path = models.CharField(null=True, max_length=1024, verbose_name="银行卡图片路径")

    customer_name = models.CharField(null=True, max_length=1024, verbose_name="DDA身份证姓名")
    customer_id = models.CharField(null=True, max_length=1024, verbose_name="DDA身份证号码")
    account_id = models.CharField(null=True, max_length=1024, verbose_name="DDA银行卡号")

    dda_found_time = models.DateTimeField(null=True, verbose_name='DDA时间')
    id_found_time = models.DateTimeField(null=True, verbose_name='身份证时间')
    bc_found_time = models.DateTimeField(null=True, verbose_name='银行卡时间')

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')  # 索引
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'dda_records'


class IDBCRecords(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引

    target_name = models.CharField(null=True, max_length=1024, verbose_name="DDA身份证姓名")  # 与申请号联合索引
    target_id = models.CharField(max_length=1024, verbose_name="DDA身份证号码or银行卡号")  # 与申请号联合索引

    is_id = models.BooleanField(default=True, verbose_name="身份证or银行卡")

    file_path = models.CharField(max_length=1024, verbose_name="图片路径")

    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'idbc_records'


class AFCSECompareResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")   # 索引
    version = models.CharField(max_length=8, verbose_name="POS/CMS version")
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    failure_reason = models.TextField(null=True, verbose_name="failure reason for RPA")
    comments = models.TextField(null=True, verbose_name="备注")
    update_time = models.DateTimeField(auto_now=False, verbose_name='修改时间')  # 索引
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_se_compare_result'
        situ_db_label = 'afc'


class AFCCACompareResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")   # 索引
    version = models.CharField(max_length=8, verbose_name="POS/CMS version")
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    comments = models.TextField(null=True, verbose_name="备注")
    update_time = models.DateTimeField(auto_now=False, verbose_name='修改时间')  # 索引
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_ca_compare_result'
        situ_db_label = 'afc'


class HILSECompareResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    version = models.CharField(max_length=8, verbose_name="POS/CMS version")
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    failure_reason = models.TextField(null=True, verbose_name="failure reason for RPA")
    comments = models.TextField(null=True, verbose_name="备注")
    update_time = models.DateTimeField(auto_now=False, verbose_name='修改时间')  # 索引
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'hil_se_compare_result'


class HILCACompareResult(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    version = models.CharField(max_length=8, verbose_name="POS/CMS version")
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    comments = models.TextField(null=True, verbose_name="备注")
    update_time = models.DateTimeField(auto_now=False, verbose_name='修改时间')  # 索引
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'hil_ca_compare_result'


class AFCSECompareResultRecord(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    comments = models.TextField(null=True, verbose_name="备注")
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_se_compare_result_record'
        situ_db_label = 'afc'


class AFCCACompareResultRecord(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    comments = models.TextField(null=True, verbose_name="备注")
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_ca_compare_result_record'
        situ_db_label = 'afc'


class HILSECompareResultRecord(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    comments = models.TextField(null=True, verbose_name="备注")
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'hil_se_compare_result_record'


class HILCACompareResultRecord(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    is_finish = models.BooleanField(default=False, verbose_name="整体结果")
    compare_count = models.SmallIntegerField(default=0, verbose_name="比对字段总数")
    failed_count = models.SmallIntegerField(default=0, verbose_name="比对失败数目")
    reason1_count = models.SmallIntegerField(default=0, verbose_name="原因1数目")
    reason2_count = models.SmallIntegerField(default=0, verbose_name="原因2数目")
    reason3_count = models.SmallIntegerField(default=0, verbose_name="原因3数目")
    reason4_count = models.SmallIntegerField(default=0, verbose_name="原因4数目")
    reason5_count = models.SmallIntegerField(default=0, verbose_name="原因5数目")
    reason6_count = models.SmallIntegerField(default=0, verbose_name="原因6数目")
    reason7_count = models.SmallIntegerField(default=0, verbose_name="原因7数目")
    reason8_count = models.SmallIntegerField(default=0, verbose_name="原因8数目")
    reason9_count = models.SmallIntegerField(default=0, verbose_name="原因9数目")
    reason10_count = models.SmallIntegerField(default=0, verbose_name="原因10数目")
    result = models.TextField(null=True, verbose_name="比对结果")
    comments = models.TextField(null=True, verbose_name="备注")
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 索引

    class Meta:
        managed = False
        db_table = 'hil_ca_compare_result_record'


class HILAutoSettlement(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    aa_type = models.CharField(null=True, max_length=64, verbose_name="aa_type")

    rpa_result = models.SmallIntegerField(null=True, verbose_name="rpa_result")
    rpa_1st_eye_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_1st_eye_tat')
    rpa_2nd_eye_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_2nd_eye_tat')
    rpa_3rd_eye_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_3rd_eye_tat')
    rpa_total_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_total_tat')
    rpa_activated_time = models.DateTimeField(null=True, verbose_name='rpa_activated_time')  # 索引
    rpa_get_case_from_ocr_time = models.DateTimeField(null=True, verbose_name='rpa_get_case_from_ocr_time')  # 索引
    rpa_get_case_from_oc_time = models.DateTimeField(null=True, verbose_name='rpa_get_case_from_oc_time')
    rpa_payment_authorize_time = models.DateTimeField(null=True, verbose_name='rpa_payment_authorize_time')
    rpa_second_eye_time = models.DateTimeField(null=True, verbose_name='rpa_second_eye_time')

    on_off = models.BooleanField(default=True, verbose_name="是否有效")
    ocr_auto_result_pass = models.BooleanField(null=True, verbose_name="auto结果")
    ocr_whole_result_pass = models.BooleanField(null=True, verbose_name="整体结果")
    ocr_auto_result = models.TextField(null=True, verbose_name="auto比对结果")
    ocr_latest_comparison_time = models.DateTimeField(null=True, verbose_name='最新比对时间')  # 索引

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'hil_auto_settlement'


class AFCAutoSettlement(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    aa_type = models.CharField(null=True, max_length=64, verbose_name="aa_type")

    rpa_result = models.SmallIntegerField(null=True, verbose_name="rpa_result")
    rpa_1st_eye_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_1st_eye_tat')
    rpa_2nd_eye_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_2nd_eye_tat')
    rpa_3rd_eye_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_3rd_eye_tat')
    rpa_total_tat = models.DecimalField(max_digits=18, decimal_places=4, null=True, verbose_name='rpa_total_tat')
    rpa_activated_time = models.DateTimeField(null=True, verbose_name='rpa_activated_time')
    rpa_get_case_from_ocr_time = models.DateTimeField(null=True, verbose_name='rpa_get_case_from_ocr_time')
    rpa_get_case_from_oc_time = models.DateTimeField(null=True, verbose_name='rpa_get_case_from_oc_time')
    rpa_payment_authorize_time = models.DateTimeField(null=True, verbose_name='rpa_payment_authorize_time')
    rpa_second_eye_time = models.DateTimeField(null=True, verbose_name='rpa_second_eye_time')

    on_off = models.BooleanField(default=True, verbose_name="是否有效")
    ocr_auto_result_pass = models.BooleanField(null=True, verbose_name="auto结果")
    ocr_whole_result_pass = models.BooleanField(null=True, verbose_name="整体结果")
    ocr_auto_result = models.TextField(verbose_name="auto比对结果")
    ocr_latest_comparison_time = models.DateTimeField(null=True, verbose_name='最新比对时间')

    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_auto_settlement'
        situ_db_label = 'afc'


class HILbankVerification(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    on_off = models.BooleanField(default=True, verbose_name="是否有效")
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'hil_bank_verification'


class AFCbankVerification(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引
    on_off = models.BooleanField(default=True, verbose_name="是否有效")
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_bank_verification'
        situ_db_label = 'afc'


class MposReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键

    doc_type = models.SmallIntegerField(default=IC_CLASSIFY, verbose_name="文件类型")
    image_count = models.SmallIntegerField(default=0, verbose_name="图片数目")
    # status = models.SmallIntegerField(default=, verbose_name="请求状态")
    status = models.BooleanField(default=True, verbose_name="是否成功")
    source = models.SmallIntegerField(default=0, verbose_name="来源")  # 默认0,代表MPOS

    duration = models.IntegerField(null=True, verbose_name='处理时长')

    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'mpos_report'


class OfflineReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键

    input_folder = models.CharField(max_length=512, verbose_name="文件夹路径")
    doc_type = models.SmallIntegerField(default=0, verbose_name="文件类型")
    file_name = models.CharField(max_length=1024, verbose_name="文件名")
    status = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.SmallIntegerField(default=0, verbose_name="失败原因")
    duration = models.IntegerField(verbose_name='处理时长')

    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'offline_report'


class AFCOfflineReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键

    input_folder = models.CharField(max_length=512, verbose_name="文件夹路径")
    doc_type = models.SmallIntegerField(default=0, verbose_name="文件类型")
    file_name = models.CharField(max_length=1024, verbose_name="文件名")
    status = models.BooleanField(default=True, verbose_name="是否成功")
    failure_reason = models.SmallIntegerField(default=0, verbose_name="失败原因")
    duration = models.IntegerField(verbose_name='处理时长')

    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'afc_offline_report'
        situ_db_label = 'afc'


class GenericOCRReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    status = models.BooleanField(default=True, verbose_name="是否成功")
    duration = models.IntegerField(null=True, verbose_name='处理时长')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'generic_ocr_report'


class InterfaceReport(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键

    source = models.CharField(max_length=64, verbose_name="来源")
    target = models.CharField(max_length=64, verbose_name="目标")

    body = models.TextField(null=True, verbose_name="请求体")
    response = models.TextField(null=True, verbose_name="响应")

    status = models.BooleanField(default=True, verbose_name="是否成功")
    retry_times = models.SmallIntegerField(default=0, verbose_name="重试次数")
    duration = models.IntegerField(verbose_name='处理时长')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        managed = False
        db_table = 'interface_report'


class HILCompareReportNew(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")

    is_se = models.BooleanField(default=True, verbose_name="是否Settlement")
    is_auto = models.BooleanField(default=False, verbose_name="是否Settlement Auto")
    is_pass = models.BooleanField(default=False, verbose_name="是否全对")

    full_result = models.TextField(null=True, verbose_name="完整比对结果")
    field_result = models.TextField(null=True, verbose_name="各证件字段统计")

    start_time = models.DateTimeField(verbose_name='开始时间')  # 索引
    end_time = models.DateTimeField(verbose_name='结束时间')

    class Meta:
        managed = False
        db_table = 'hil_compare_report_new'


class AFCCompareReportNew(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="id")  # 主键
    application_id = models.CharField(max_length=64, verbose_name="申请id")  # 索引

    is_se = models.BooleanField(default=True, verbose_name="是否Settlement")
    is_auto = models.BooleanField(default=False, verbose_name="是否Settlement Auto")
    is_pass = models.BooleanField(default=False, verbose_name="是否全对")

    full_result = models.TextField(null=True, verbose_name="完整比对结果")
    field_result = models.TextField(null=True, verbose_name="各证件字段统计")

    start_time = models.DateTimeField(verbose_name='开始时间')  # 索引
    end_time = models.DateTimeField(verbose_name='结束时间')

    class Meta:
        managed = False
        db_table = 'afc_compare_report_new'
        situ_db_label = 'afc'