-- 招商任务
CREATE TABLE `invest_task` (
  `id` BIGINT(20) NOT NULL COMMENT '主键ID',
  `tenant_id` VARCHAR(10) NOT NULL COMMENT '租户ID',
  `owner` json DEFAULT NULL COMMENT '负责人',
  `status` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '任务状态：-1-关闭;0-待分配;1-洽谈中;2-意向签约;3-已完成',
  `target_type` SMALLINT(2) NOT NULL DEFAULT '0' COMMENT '目标类型：0-商铺招租;1-其他',
  `target_id` BIGINT(20) NOT NULL COMMENT '目标ID',
  `content` json DEFAULT NULL COMMENT '任务设定条件',
  `last_time` DATETIME NOT NULL COMMENT '最晚出租时间',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_status_target` (`tenant_id`,`status`,`target_type`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='招商任务';

-- 客户需求
CREATE TABLE `invest_demand` (
  `id` BIGINT(20) NOT NULL COMMENT '主键ID',
  `tenant_id` VARCHAR(10) NOT NULL COMMENT '租户ID',
  `owner` BIGINT(20) DEFAULT NULL COMMENT '负责人',
  `customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
  `intent` json DEFAULT NULL COMMENT '客户意向',
  `target_type` SMALLINT(2) NOT NULL DEFAULT '0' COMMENT '目标类型：0-商铺招租;1-其他',
  `target_id` BIGINT(20) NOT NULL COMMENT '目标ID',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_owner_customer_target` (`tenant_id`,`owner`,`customer_id`,`target_type`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='客户需求';

-- 客户列表
CREATE TABLE `invest_customer` (
  `id` BIGINT(20) NOT NULL COMMENT '主键ID',
  `tenant_id` VARCHAR(10) NOT NULL COMMENT '租户ID',
  `name` VARCHAR(30) NOT NULL COMMENT '客户名称',
  `phone` VARCHAR(20) NOT NULL COMMENT '电话',
  `business_id` int(11) NOT NULL COMMENT '经营业态',
  `brand_id` BIGINT(20) NOT NULL COMMENT '品牌ID',
  `type` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '客户分类：0-潜在客户;1-意向客户;2-合作客户;3-谈判失败',
  `rating` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '客户预评级：0-无;1-主力店;2-次主力店;3-甲;4-乙;5-丙' ,
  `invest_channel` VARCHAR(10) NOT NULL COMMENT '招商渠道：0-无;1-电视;2-广播;3-报纸;4-刊物;5-物联网;6-招商活动;7-中介机构;8-自定义渠道',
  `contract_no` VARCHAR(100) NOT NULL COMMENT '合同编号',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_buss_type` (`tenant_id`,`business_id`,`type`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='客户列表';


-- 招商提醒
CREATE TABLE `invest_remind` (
  `id` BIGINT(20) NOT NULL COMMENT '主键ID',
  `tenant_id` VARCHAR(10) NOT NULL COMMENT '租户ID',
  `owner` BIGINT(20) NOT NULL COMMENT '提醒用户',
  `content` json DEFAULT NULL COMMENT '提醒内容',
  `minute` BIGINT(6) NOT NULL COMMENT '提醒时间',
  `begin_date` DATETIME NOT NULL COMMENT '开始时间',
  `end_date` DATETIME NOT NULL COMMENT '结束时间',
  `customer_id` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '客户ID',
  `negotiation_type` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '拜访方式：0-拜访;1-来访;2-电话;3-短信、微信或其它',
  `status` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '是否提醒：0-未提醒;1-已提醒',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_owner` (`tenant_id`,`owner`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='招商提醒';

-- 跟踪记录
CREATE TABLE `invest_follow_record` (
  `id` BIGINT(20) NOT NULL COMMENT '主键ID',
  `tenant_id` VARCHAR(10) NOT NULL COMMENT '租户ID',
  `owner` BIGINT(20) NOT NULL COMMENT '主谈人',
  `customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
  `content` json NOT NULL COMMENT '洽谈内容',
  `type` SMALLINT(2) NOT NULL COMMENT '跟踪类型：0-招商任务;1-客户需求',
  `follow_id` BIGINT(20) NOT NULL COMMENT '跟踪类型的主键ID',
  `operator` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '操作人：0-系统;其它',
  `follow_date` TIMESTAMP NOT NULL COMMENT '跟踪时间',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_owner_cus_follow` (`tenant_id`,`owner`,`customer_id`,`follow_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='跟踪记录';

-- 操作记录
CREATE TABLE `invest_operate_record` (
  `id` BIGINT(20) NOT NULL COMMENT '主键ID',
  `tenant_id` VARCHAR(10) NOT NULL COMMENT '租户ID',
  `tbl` VARCHAR(30) DEFAULT NULL COMMENT '表名称',
  `tid` BIGINT(20) NOT NULL COMMENT '主键ID',
  `operator` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '操作人：0-系统;其它',
  `operate_type` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '操作类型：0-ADD;1-UPDATE;2-DELETE',
  `content` json DEFAULT NULL COMMENT '更新内容',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_tbl_tid_operator` (`tenant_id`,`tbl`,`tid`,`operator`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='操作记录';

-- 消息提醒
CREATE TABLE `invest_message` (
  `id` BIGINT(20) NOT NULL COMMENT '主键ID',
  `tenant_id` VARCHAR(10) NOT NULL COMMENT '租户ID',
  `owner` BIGINT(20) NOT NULL COMMENT '主谈人',
  `tid` BIGINT(20) NOT NULL COMMENT '数据主键ID',
  `type` SMALLINT(2) NOT NULL COMMENT '消息类型：0-招商任务;1-客户需求',
  `tag` SMALLINT(2) NOT NULL COMMENT '消息标签：0-创建任务提醒;1-创建客户提醒;2-一个月内没完成任务;3-一周没有跟进客户',
  `message` VARCHAR(500) DEFAULT NULL COMMENT '消息内容',
  `deleted` smallint(1) DEFAULT '0' COMMENT '是否删除：0-否;1-是',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_owner_tid_type_tag` (`tenant_id`,`owner`,`tid`,`type`,`tag`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='操作记录';

-- 逻辑功能权限，保存模块或角色组合权限
CREATE TABLE `wx_logic_permission` (
  `id` bigint(20) NOT NULL,
  `name` VARCHAR(30) NOT NULL COMMENT '名称',
  `parent_id` bigint(20) NOT NULL COMMENT '权限父ID',
  `permission` json DEFAULT NULL COMMENT '权限列表',
  `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='逻辑权限表';

ALTER TABLE `mall_user_info` ADD COLUMN `invest_rule` tinyint(2) NOT NULL DEFAULT -1 COMMENT '招商用户角色:-1-无;0-招商管理人员;1-招商人员' AFTER `is_admin`;
