-- =============================================================================
-- 商户表 biz_merchant
-- 用途：存储商户主体资质、经营信息、结算银行及认证状态
-- 说明：平台端新增时可仅填最小主体字段；C 端入驻审核通过后写入完整快照
-- =============================================================================
CREATE TABLE IF NOT EXISTS `biz_merchant` (
  `merchant_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商户ID，主键',
  `merchant_type` char(1) NOT NULL COMMENT '主体类型：1个人 2企业',
  `cert_status` char(1) NOT NULL DEFAULT '0' COMMENT '认证状态：0正常 1已冻结 2已注销',
  `cert_time` datetime NOT NULL COMMENT '认证时间（平台新增或C端入驻完成时写入）',
  `biz_complete` char(1) NOT NULL DEFAULT '0' COMMENT '经营信息是否完整：0否 1是（开店前置条件）',
  `shop_count` int(11) NOT NULL DEFAULT '0' COMMENT '未逻辑删除的店铺数量',

  -- ---------- 个人主体 · 个人信息（merchant_type=1） ----------
  `person_name` varchar(64) DEFAULT NULL COMMENT '【个人】姓名；平台端新增时必填；列表「商户所属单位」',
  `id_card_no` varchar(32) DEFAULT NULL COMMENT '【个人】证件号码',
  `id_card_type` char(1) DEFAULT NULL COMMENT '【个人】证件类型：1大陆身份证 2来往内地通行证(中国香港居民)',
  `birth_date` date DEFAULT NULL COMMENT '【个人】出生日期',
  `id_valid_type` char(1) DEFAULT NULL COMMENT '【个人】证件有效期类型：1区间有效 2长期有效',
  `id_valid_start` date DEFAULT NULL COMMENT '【个人】证件有效期开始（id_valid_type=1时必填）',
  `id_valid_end` date DEFAULT NULL COMMENT '【个人】证件有效期结束（id_valid_type=1时必填）',
  `residence_address` varchar(255) DEFAULT NULL COMMENT '【个人】居住地址',
  `gender` char(1) DEFAULT NULL COMMENT '【个人】性别：0男 1女',
  `id_card_front` varchar(512) DEFAULT NULL COMMENT '【个人】证件照正面URL',
  `id_card_back` varchar(512) DEFAULT NULL COMMENT '【个人】证件照反面URL',

  -- ---------- 企业主体 · 法定代表人信息（merchant_type=2） ----------
  `legal_name` varchar(64) DEFAULT NULL COMMENT '【企业·法人】姓名；平台端新增时必填',
  `legal_id_card_no` varchar(32) DEFAULT NULL COMMENT '【企业·法人】证件号码',
  `legal_id_card_type` char(1) DEFAULT NULL COMMENT '【企业·法人】证件类型：1大陆身份证 2来往内地通行证(中国香港居民)',
  `legal_birth_date` date DEFAULT NULL COMMENT '【企业·法人】出生日期',
  `legal_id_valid_type` char(1) DEFAULT NULL COMMENT '【企业·法人】证件有效期类型：1区间有效 2长期有效',
  `legal_id_valid_start` date DEFAULT NULL COMMENT '【企业·法人】证件有效期开始',
  `legal_id_valid_end` date DEFAULT NULL COMMENT '【企业·法人】证件有效期结束',
  `legal_residence` varchar(255) DEFAULT NULL COMMENT '【企业·法人】居住地址',
  `legal_gender` char(1) DEFAULT NULL COMMENT '【企业·法人】性别：0男 1女',
  `legal_id_card_front` varchar(512) DEFAULT NULL COMMENT '【企业·法人】证件照正面URL',
  `legal_id_card_back` varchar(512) DEFAULT NULL COMMENT '【企业·法人】证件照反面URL',
  `legal_extra_photo` varchar(512) DEFAULT NULL COMMENT '【企业·法人】补充照片URL，选填',

  -- ---------- 企业主体 · 企业信息（merchant_type=2） ----------
  `company_name` varchar(128) DEFAULT NULL COMMENT '【企业】企业名称；平台端新增时必填；列表「商户所属单位」',
  `credit_code` varchar(32) DEFAULT NULL COMMENT '【企业】统一社会信用代码；未删除企业商户内唯一',
  `reg_address` varchar(255) DEFAULT NULL COMMENT '【企业】注册地址文本（兼容旧数据，新数据用 reg_region_* + company_detail_address）',
  `reg_region_code` varchar(64) DEFAULT NULL COMMENT '【企业】注册地址省市区编码（移动端必填）',
  `reg_region_name` varchar(128) DEFAULT NULL COMMENT '【企业】注册地址省市区名称（移动端必填）',
  `company_detail_address` varchar(255) DEFAULT NULL COMMENT '【企业】注册详细地址',
  `business_scope` varchar(1000) DEFAULT NULL COMMENT '【企业】经营范围',
  `license_valid_type` char(1) DEFAULT NULL COMMENT '【企业】营业期限类型：1区间有效 2长期有效',
  `license_valid_start` date DEFAULT NULL COMMENT '【企业】营业期限开始',
  `license_valid_end` date DEFAULT NULL COMMENT '【企业】营业期限结束',

  -- ---------- 商户经营信息（个人/企业共用；平台端新增可不填，编辑补全） ----------
  `merchant_name` varchar(128) DEFAULT NULL COMMENT '商户名称（对外经营名称）；平台内未删除商户唯一',
  `service_phone` varchar(20) DEFAULT NULL COMMENT '客服电话',
  `biz_region_code` varchar(64) DEFAULT NULL COMMENT '经营地址省市区编码',
  `biz_region_name` varchar(128) DEFAULT NULL COMMENT '经营地址省市区名称',
  `biz_detail_address` varchar(255) DEFAULT NULL COMMENT '经营详细地址',
  `business_license` varchar(512) DEFAULT NULL COMMENT '【企业】营业执照电子版URL',

  -- ---------- 联系人及结算银行（个人在 subject；企业在法人区块；落库统一在此） ----------
  `contact_name` varchar(64) DEFAULT NULL COMMENT '联系人姓名',
  `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系人手机',
  `contact_email` varchar(128) DEFAULT NULL COMMENT '常用邮箱',
  `bank_name` varchar(128) DEFAULT NULL COMMENT '开户银行',
  `bank_branch` varchar(128) DEFAULT NULL COMMENT '开户支行',
  `bank_account` varchar(64) DEFAULT NULL COMMENT '银行账号（个人/法人结算账号）',
  `corp_bank_account` varchar(64) DEFAULT NULL COMMENT '【企业·法人】对公银行账号',
  `account_permit` varchar(512) DEFAULT NULL COMMENT '【企业·法人】开户许可证URL',

  -- ---------- 公共字段 ----------
  `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志：0存在 2逻辑删除',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`merchant_id`),
  KEY `idx_cert_status` (`cert_status`,`del_flag`),
  KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商户表（主体资质+经营信息+认证）';
