CREATE TABLE `enterprise`
(
    `id`                                 bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    `customer_id`                        bigint(20) NOT NULL COMMENT '客户id',
    `customer_identifier_no`             varchar(32)                                           DEFAULT NULL COMMENT '用户编码',
    `enterprise_type`                    varchar(32)                                           DEFAULT NULL COMMENT '企业类型，枚举：enterprise_type',
    `country_code`                       char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin     DEFAULT 'CN' COMMENT '注册国家/地区，枚举：country_code',
    `name`                               varchar(300)                                          DEFAULT NULL COMMENT '企业名称',
    `cert_no`                            varchar(32)                                           DEFAULT NULL COMMENT '统一社会信用编码',
    `registration_number`                varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '注册号，HK企业必填',
    `customs_enterprise_code`            varchar(16)                                           DEFAULT NULL COMMENT '海关企业代码',
    `tax_no`                             varchar(20)                                           DEFAULT NULL COMMENT '纳税人识别号',
    `xt_eid`                             varchar(64)                                           DEFAULT NULL COMMENT '小图企业uuid',
    `establish_date`                     date                                                  DEFAULT NULL COMMENT '成立时间',
    `register_capital`                   decimal(15, 2)                                        DEFAULT NULL COMMENT '注册资本',
    `register_address`                   varchar(255)                                          DEFAULT NULL COMMENT '注册地址',
    `same_register_and_business_address` varchar(4)                                            DEFAULT NULL COMMENT '注册地址是否实际经营地址，枚举：sys_yes_no',
    `business_address`                   varchar(255)                                          DEFAULT NULL COMMENT '经营地址',
    `certification_status`               varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '企业所处认证状态',
    `export_type`                        varchar(32)                                           DEFAULT NULL COMMENT '出口类型，枚举：export_type',
    `business_product`                   varchar(32)                                           DEFAULT NULL COMMENT '匹配业务产品，枚举：business_product',
    `proxy_district_code`                varchar(16)                                           DEFAULT NULL COMMENT '代理公司所属地区，枚举类型district_code',
    `authorization_file`                 bigint(20)                                            DEFAULT NULL COMMENT '授权委托书id',
    `change_record_id`                   bigint(20)                                            DEFAULT NULL COMMENT '企业变更记录id',
    `tax_authority_area`                 varchar(32)                                           DEFAULT NULL COMMENT '主管税务机关，枚举：tax_authority_area',
    `remark`                             varchar(255)                                          DEFAULT NULL COMMENT '备注信息',
    `deleted`                            tinyint(4) NOT NULL                                   DEFAULT '0' COMMENT '逻辑删除',
    `create_by`                          varchar(64)                                           DEFAULT '' COMMENT '创建者',
    `update_by`                          varchar(64)                                           DEFAULT '' COMMENT '更新者',
    `gmt_create`                         timestamp  NOT NULL                                   DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`                       timestamp  NOT NULL                                   DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`),
    KEY `cert_no_idx` (`cert_no`) USING BTREE,
    KEY `name_idx` (`name`) USING BTREE,
    KEY `customer_id_idx` (`customer_id`, `deleted`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='企业信息';

CREATE TABLE `enterprise_change_record`
(
    `id`                                 bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    `customer_id`                        bigint(20) NOT NULL COMMENT '客户id',
    `enterprise_id`                      bigint(20)                                            DEFAULT NULL COMMENT '企业id',
    `enterprise_type`                    varchar(32)                                           DEFAULT NULL COMMENT '企业类型，枚举：enterprise_type',
    `country_code`                       char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin     DEFAULT 'CN' COMMENT '注册国家/地区，枚举：country_code',
    `name`                               varchar(300)                                          DEFAULT NULL COMMENT '企业名称',
    `cert_no`                            varchar(32)                                           DEFAULT NULL COMMENT '统一社会信用编码',
    `registration_number`                varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '注册号，HK企业必填',
    `customs_enterprise_code`            varchar(16)                                           DEFAULT NULL COMMENT '海关企业代码',
    `tax_no`                             varchar(20)                                           DEFAULT NULL COMMENT '纳税人识别号',
    `xt_eid`                             varchar(64)                                           DEFAULT NULL COMMENT '小图企业uuid',
    `establish_date`                     date                                                  DEFAULT NULL COMMENT '成立时间',
    `register_capital`                   decimal(15, 2)                                        DEFAULT NULL COMMENT '注册资本',
    `same_register_and_business_address` varchar(4)                                            DEFAULT NULL COMMENT '注册地址是否实际经营地址，枚举：sys_yes_no',
    `register_address`                   varchar(255)                                          DEFAULT NULL COMMENT '注册地址',
    `business_address`                   varchar(255)                                          DEFAULT NULL COMMENT '经营地址',
    `certification_status`               varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '企业所处认证状态',
    `export_type`                        varchar(32)                                           DEFAULT NULL COMMENT '出口类型，枚举：export_type',
    `proxy_district_code`                varchar(16)                                           DEFAULT NULL COMMENT '代理公司所属地区，枚举类型district_code',
    `business_product`                   varchar(32)                                           DEFAULT NULL COMMENT '匹配业务产品，枚举：business_product',
    `authorization_file`                 bigint(20)                                            DEFAULT NULL COMMENT '授权委托书id',
    `remark`                             varchar(255)                                          DEFAULT NULL COMMENT '备注信息',
    `deleted`                            tinyint(4) NOT NULL                                   DEFAULT '0' COMMENT '逻辑删除',
    `create_by`                          varchar(64)                                           DEFAULT '' COMMENT '创建者',
    `update_by`                          varchar(64)                                           DEFAULT '' COMMENT '更新者',
    `gmt_create`                         timestamp  NOT NULL                                   DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`                       timestamp  NOT NULL                                   DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `tax_authority_area`                 varchar(32)                                           DEFAULT NULL COMMENT '主管税务机关，枚举：tax_authority_area',
    PRIMARY KEY (`id`),
    KEY `cert_no_idx` (`cert_no`) USING BTREE,
    KEY `name_idx` (`name`) USING BTREE,
    KEY `customer_id_idx` (`customer_id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='企业信息变更记录';


CREATE TABLE `enterprise_related_person`
(
    `id`                          bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
    `enterprise_change_record_id` bigint(20) unsigned NOT NULL COMMENT '企业变更记录ID',
    `country_code`                char(2) COLLATE utf8mb4_bin       DEFAULT '' COMMENT '证件签发国家/地区，枚举：country_code',
    `personal_cert_type`          varchar(20) COLLATE utf8mb4_bin   DEFAULT '' COMMENT '证件类型，枚举值：personal_cert_type',
    `personal_cert_no`            varchar(50) COLLATE utf8mb4_bin   DEFAULT '' COMMENT '证件号码',
    `name`                        varchar(100) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '人员姓名',
    `mobile`                      varchar(100) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '人员联系电话',
    `email`                       varchar(100) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '人员联系邮箱',
    `birthday`                    date                              DEFAULT NULL COMMENT '生日',
    `is_authorized_person`        char(2) COLLATE utf8mb4_bin       DEFAULT 'N' COMMENT '是否被授权人，默认N，不是被授权人',
    `is_legal_person`             char(2) COLLATE utf8mb4_bin       DEFAULT 'N' COMMENT '是否法人（中国），默认N，不是法人',
    `is_director`                 char(2) COLLATE utf8mb4_bin       DEFAULT 'N' COMMENT '是否是董事（香港），默认N，不是董事 ',
    `is_beneficiary`              char(2) COLLATE utf8mb4_bin       DEFAULT 'N' COMMENT '是否最终受益人，默认N，不是最终受益人',
    `is_finance_person`           char(2) COLLATE utf8mb4_bin       DEFAULT 'N' COMMENT '是否财务负责人（中国），默认N，不是财务负责人',
    `is_control`                  char(2) COLLATE utf8mb4_bin       DEFAULT 'N' COMMENT '是否为实控人，默认N',
    `address`                     varchar(200) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '人员证件地址',
    `live_address`                varchar(200) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '实际居住地址',
    `marriage_status`             char(2) COLLATE utf8mb4_bin       DEFAULT '99' COMMENT '婚姻状况(0-未婚,1-已婚,2-离异,3-丧偶 )，枚举：marriage_status',
    `authorization_file_signed`   varchar(4) COLLATE utf8mb4_bin    DEFAULT '0' COMMENT '授权书签署状态，枚举：sys_sign_status',
    `sign_date`                   datetime                          DEFAULT NULL COMMENT '签署日期',
    `remark`                      varchar(200) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '备注',
    `deleted`                     tinyint(4)          NOT NULL      DEFAULT '0' COMMENT '逻辑删除',
    `create_by`                   varchar(64) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '创建者',
    `update_by`                   varchar(64) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '更新者',
    `gmt_create`                  timestamp           NOT NULL      DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`                timestamp           NOT NULL      DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
    PRIMARY KEY (`id`),
    KEY `idx_ent_business_id` (`enterprise_change_record_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_bin COMMENT ='企业相关人员';



CREATE TABLE `trading_platform`
(
    `id`                      bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    `platform_name`           varchar(255)        DEFAULT NULL COMMENT '贸易平台名称',
    `platform_code`           varchar(8)          DEFAULT NULL COMMENT '贸易平台编码',
    `district_code`           varchar(16)         DEFAULT NULL COMMENT '所属地区，枚举类型district_code',
    `establish_date`          date                DEFAULT NULL COMMENT '成立时间',
    `cert_no`                 varchar(32)         DEFAULT NULL COMMENT '证件编号',
    `legal_name`              varchar(16)         DEFAULT NULL COMMENT '法人代表',
    `legal_cert_no`           varchar(32)         DEFAULT NULL COMMENT '法人代表证件号',
    `legal_mobile`            varchar(32)         DEFAULT NULL COMMENT '法人代表手机',
    `legal_email`             varchar(64)         DEFAULT NULL COMMENT '法人代表邮箱',
    `register_address`        varchar(255)        DEFAULT NULL COMMENT '注册地址',
    `business_address`        varchar(255)        DEFAULT NULL COMMENT '经营地址',
    `contact_name`            varchar(16)         DEFAULT NULL COMMENT '联系人姓名',
    `contact_email`           varchar(64)         DEFAULT NULL COMMENT '联系邮箱',
    `contact_mobile`          varchar(16)         DEFAULT NULL COMMENT '联系电话',
    `tax_num`                 varchar(64)         DEFAULT NULL COMMENT '税号',
    `bank_name`               varchar(255)        DEFAULT NULL COMMENT '开户银行',
    `bank_num`                varchar(64)         DEFAULT NULL COMMENT '银行卡号',
    `has_sinosure_insurance`  char(4)             DEFAULT NULL COMMENT '是否拥有中信保保单，枚举：sys_yes_no',
    `remark`                  varchar(255)        DEFAULT NULL COMMENT '备注信息',
    `deleted`                 tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
    `create_by`               varchar(64)         DEFAULT '' COMMENT '创建者',
    `update_by`               varchar(64)         DEFAULT '' COMMENT '更新者',
    `gmt_create`              timestamp  NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`            timestamp  NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `customs_enterprise_code` varchar(36)         DEFAULT NULL COMMENT '海关企业代码',
    `xt_admin_user_id`        bigint(20)          DEFAULT NULL COMMENT '出口退税办理人（小图管理员用户ID）',
    `xt_user_id`              varchar(64)         DEFAULT NULL COMMENT '小图退税用id',
    `xt_eid`                  varchar(64)         DEFAULT NULL COMMENT '小图退税企业id',
    `tax_authority_area`      varchar(32)         DEFAULT NULL COMMENT '主管税务机关，枚举：tax_authority_area',
    `draft`                   tinyint(4)          DEFAULT '0' COMMENT '是否为草稿，ture为草稿，false为正式',
    PRIMARY KEY (`id`),
    KEY `cert_no_idx` (`cert_no`) USING BTREE,
    KEY `district_code_idx` (`district_code`) USING BTREE,
    KEY `platform_code_idx` (`platform_code`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='贸易平台';


CREATE TABLE `trading_platform_insurance`
(
    `id`               bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    `platform_id`      bigint(20) NOT NULL COMMENT '贸易平台id',
    `platform_code`    varchar(8)          DEFAULT NULL COMMENT '贸易平台编码',
    `insurance_type`   varchar(16)         DEFAULT NULL COMMENT '保险类型，枚举：insurance_type',
    `currency_code`    varchar(6)          DEFAULT NULL COMMENT '币种，枚举：currency_code',
    `total_amount`     decimal(16, 2)      DEFAULT '0.00' COMMENT '总保额',
    `remaining_amount` decimal(16, 2)      DEFAULT '0.00' COMMENT '剩余保额',
    `remark`           varchar(255)        DEFAULT NULL COMMENT '备注信息',
    `deleted`          tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
    `create_by`        varchar(64)         DEFAULT '' COMMENT '创建者',
    `update_by`        varchar(64)         DEFAULT '' COMMENT '更新者',
    `gmt_create`       timestamp  NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`     timestamp  NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`),
    KEY `platform_id_idx` (`platform_id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='贸易平台保险信息';

CREATE TABLE `trading_platform_qualification`
(
    `id`                                  bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    `platform_id`                         bigint(20) NOT NULL COMMENT '贸易平台id',
    `platform_code`                       varchar(8)          DEFAULT NULL COMMENT '贸易平台编码',
    `has_import_export_scope`             char(4)             DEFAULT NULL COMMENT '经营范围是否包含“货物进出口”业务类型，枚举：sys_yes_no',
    `finished_customs_consignor_register` varchar(4)          DEFAULT NULL COMMENT '是否已完成海关进出口货物收发货人登记，枚举：sys_yes_no',
    `finished_eport_access`               varchar(4)          DEFAULT NULL COMMENT '是否完成电子口岸入网，枚举：sys_yes_no',
    `finished_foreign_exchange_register`  varchar(4)          DEFAULT NULL COMMENT '是否完成外汇管理局外汇收支名录登记\r\n\r\n是否完成外汇管理局外汇收支名录登记，枚举：sys_yes_no',
    `finished_tax_refund_record`          varchar(4)          DEFAULT NULL COMMENT '是否完成出口退（免）税资格备案，枚举：sys_yes_no',
    `has_export_agent_qualify`            varchar(4)          DEFAULT NULL COMMENT '是否具备代理出口资质，枚举：sys_yes_no',
    `has_general_taxpayer_qualify`        varchar(4)          DEFAULT NULL COMMENT '是否具备一般纳税人资质，枚举：sys_yes_no',
    `has_import_export_qualification`     varchar(4)          DEFAULT NULL COMMENT '是否具备进出口资质，枚举：sys_yes_no',
    `remark`                              varchar(255)        DEFAULT NULL COMMENT '备注信息',
    `deleted`                             tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
    `create_by`                           varchar(64)         DEFAULT '' COMMENT '创建者',
    `update_by`                           varchar(64)         DEFAULT '' COMMENT '更新者',
    `gmt_create`                          timestamp  NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`                        timestamp  NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`),
    KEY `platform_id_idx` (`platform_id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='贸易平台资质';


CREATE TABLE `purchase_contract`
(
    `id`                bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
    `customer_user_id`  bigint(20) unsigned              DEFAULT '0' COMMENT '客户id',
    `contract_no`       varchar(64) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '合同编号',
    `contract_name`     varchar(300) COLLATE utf8mb4_bin DEFAULT '' COMMENT '合同名称',
    `sales_contract_no` varchar(64) COLLATE utf8mb4_bin  DEFAULT NULL COMMENT '销售合同编号',
    `vendor_entity_no`  varchar(16) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '供应商编号',
    `template_type`     tinyint(2)                       DEFAULT NULL COMMENT '是否使用标准模版 false-否 true-是',
    `sign_date`         datetime                         DEFAULT NULL COMMENT '签署日期',
    `draft`             tinyint(2)                       DEFAULT '1' COMMENT '提交状态 true-草稿 false-正式',
    `status`            int(11)                          DEFAULT NULL COMMENT '合同状态,枚举：purchase_contract_status',
    `contract_amount`   decimal(17, 2)                   DEFAULT NULL COMMENT '合同金额',
    `contract_currency` varchar(6) COLLATE utf8mb4_bin   DEFAULT 'CNY' COMMENT '合同币种',
    `deleted`           tinyint(1)                       DEFAULT '0' COMMENT '删除标识',
    `create_by`         varchar(64) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '创建者',
    `update_by`         varchar(64) COLLATE utf8mb4_bin  DEFAULT '' COMMENT '更新者',
    `gmt_submit`        timestamp           NULL         DEFAULT NULL COMMENT '提交时间',
    `gmt_create`        timestamp           NOT NULL     DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`      timestamp           NOT NULL     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
    PRIMARY KEY (`id`),
    KEY `uk_salescontract_No` (`sales_contract_no`, `customer_user_id`) USING BTREE,
    KEY `idx_cui` (`customer_user_id`, `contract_no`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_bin COMMENT ='采购合同表基础表';


CREATE TABLE `purchase_commodity`
(
    `id`                   bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
    `purchase_contract_id` bigint(20)                      DEFAULT NULL COMMENT '采购合同号',
    `sales_contract_id`    bigint(20)                      DEFAULT NULL COMMENT '销售合同id主键',
    `sales_commodity_id`   bigint(20)                      DEFAULT NULL COMMENT '销售商品id主键',
    `number`               int(11)                         DEFAULT '0' COMMENT '采购数量',
    `price_unit`           decimal(17, 4)                  DEFAULT '0.0000' COMMENT '采购单价',
    `currency`             varchar(3) COLLATE utf8mb4_bin  DEFAULT 'CNY' COMMENT '币种',
    `amount`               decimal(17, 4)                  DEFAULT '0.0000' COMMENT '采购金额',
    `total_amount`         decimal(17, 4)                  DEFAULT '0.0000' COMMENT '采购金额（含税）',
    `deleted`              tinyint(1)                      DEFAULT '0' COMMENT '删除标识',
    `create_by`            varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建者',
    `update_by`            varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新者',
    `gmt_create`           timestamp           NOT NULL    DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `gmt_modified`         timestamp           NOT NULL    DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
    PRIMARY KEY (`id`),
    KEY `uk_purchase_contract_id` (`purchase_contract_id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_bin COMMENT ='采购商品表';
