-- 客户统计数据表V2（支持标签级成本，行列转换存储）
DROP TABLE IF EXISTS `customer_statistics_data_v2`;

CREATE TABLE `customer_statistics_data_v2` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `corp_id` VARCHAR(100) NOT NULL COMMENT '企业ID',
    `cur_date` DATE NOT NULL COMMENT '统计日期',
    
    -- 维度信息
    `group_name` VARCHAR(50) NOT NULL COMMENT '组名（N组、O组等）',
    `tag_name` VARCHAR(100) DEFAULT NULL COMMENT '标签名（NULL表示组级汇总）',
    `tag_group_id` VARCHAR(100) DEFAULT NULL COMMENT '标签组ID（关联wecom_tag_group）',
    `tag_id` VARCHAR(100) DEFAULT NULL COMMENT '标签ID（关联wecom_tag）',
    
    -- 层级关系
    `data_level` TINYINT DEFAULT 1 COMMENT '数据级别：1-组级汇总，2-标签级明细',
    `parent_id` BIGINT(20) DEFAULT NULL COMMENT '父记录ID（标签级数据对应组级记录的ID）',
    
    -- 成本数据（支持标签级成本）
    `total_cost` DECIMAL(12,2) DEFAULT NULL COMMENT '总成本（手工录入）',
    `single_cost` DECIMAL(12,2) DEFAULT NULL COMMENT '单条成本（计算得出）',
    `order_cost` DECIMAL(12,2) DEFAULT NULL COMMENT '成单成本（计算得出）',
    `cost_input_type` VARCHAR(20) DEFAULT NULL COMMENT '成本录入类型：total-总成本，single-单条成本',
    
    -- 数量指标
    `order_count` INT DEFAULT 0 COMMENT '成单数',
    `customer_count` INT DEFAULT 0 COMMENT '进粉数',
    `timely_order_count` INT DEFAULT 0 COMMENT '及时单数',
    `non_timely_order_count` INT DEFAULT 0 COMMENT '非及时单数',
    
    -- 比率指标
    `conversion_rate` VARCHAR(10) DEFAULT '0%' COMMENT '转化率',
    `timely_rate` VARCHAR(10) DEFAULT '0%' COMMENT '及时单占比',
    `non_timely_rate` VARCHAR(10) DEFAULT '0%' COMMENT '非及时单占比',
    
    -- 客户属性指标
    `customer_attr_count` INT DEFAULT 0 COMMENT '客户属性数量',
    `parent_count` INT DEFAULT 0 COMMENT '家长数量',
    `student_count` INT DEFAULT 0 COMMENT '学生数量',
    `teacher_count` INT DEFAULT 0 COMMENT '老师数量',
    `unknown_attr_count` INT DEFAULT 0 COMMENT '未知属性数量',
    `parent_rate` VARCHAR(10) DEFAULT '0%' COMMENT '家长占比',
    `student_rate` VARCHAR(10) DEFAULT '0%' COMMENT '学生占比',
    `teacher_rate` VARCHAR(10) DEFAULT '0%' COMMENT '老师占比',
    `unknown_rate` VARCHAR(10) DEFAULT '0%' COMMENT '未知占比',
    
    -- 出单率指标
    `parent_order_count` INT DEFAULT 0 COMMENT '家长出单数量',
    `student_order_count` INT DEFAULT 0 COMMENT '学生出单数量',
    `teacher_order_count` INT DEFAULT 0 COMMENT '老师出单数量',
    `unknown_order_count` INT DEFAULT 0 COMMENT '未知出单数量',
    `parent_daily_count` INT DEFAULT 0 COMMENT '家长当日数量',
    `student_daily_count` INT DEFAULT 0 COMMENT '学生当日数量',
    `teacher_daily_count` INT DEFAULT 0 COMMENT '老师当日数量',
    `unknown_daily_count` INT DEFAULT 0 COMMENT '未知当日数量',
    `parent_daily_order_count` INT DEFAULT 0 COMMENT '家长当日出单数量',
    `student_daily_order_count` INT DEFAULT 0 COMMENT '学生当日出单数量',
    `teacher_daily_order_count` INT DEFAULT 0 COMMENT '老师当日出单数量',
    `unknown_daily_order_count` INT DEFAULT 0 COMMENT '未知当日出单数量',
    `parent_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '家长出单率',
    `student_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '学生出单率',
    `teacher_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '老师出单率',
    `unknown_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '未知出单率',
    
    -- 意向度指标
    `intention_count` INT DEFAULT 0 COMMENT '意向度数量',
    `active_quote_count` INT DEFAULT 0 COMMENT '主动报价数量',
    `passive_quote_count` INT DEFAULT 0 COMMENT '被动报价数量',
    `no_quote_count` INT DEFAULT 0 COMMENT '未开口报价数量',
    `deleted_quote_count` INT DEFAULT 0 COMMENT '已删除报价数量',
    `active_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '主动报价占比',
    `passive_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '被动报价占比',
    `no_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '未开口报价占比',
    `deleted_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '已删除报价占比',
    
    -- 年级指标
    `grade_count` INT DEFAULT 0 COMMENT '年级数量',
    `primary_count` INT DEFAULT 0 COMMENT '小学数量',
    `middle_count` INT DEFAULT 0 COMMENT '初中数量',
    `high_count` INT DEFAULT 0 COMMENT '高中数量',
    `primary_rate` VARCHAR(10) DEFAULT '0%' COMMENT '小学占比',
    `middle_rate` VARCHAR(10) DEFAULT '0%' COMMENT '初中占比',
    `high_rate` VARCHAR(10) DEFAULT '0%' COMMENT '高中占比',
    
    `sort_no` INT DEFAULT 0 COMMENT '排序号',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_corp_date_group_tag` (`corp_id`, `cur_date`, `group_name`, `tag_name`),
    INDEX `idx_corp_date` (`corp_id`, `cur_date`),
    INDEX `idx_group_name` (`group_name`),
    INDEX `idx_data_level` (`data_level`),
    INDEX `idx_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户统计数据表V2（支持标签级成本，行列转换）';

-- 成本录入记录表（用于追溯）
DROP TABLE IF EXISTS `cost_input_record_v2`;

CREATE TABLE `cost_input_record_v2` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `corp_id` VARCHAR(100) NOT NULL COMMENT '企业ID',
    `cur_date` DATE NOT NULL COMMENT '统计日期',
    `group_name` VARCHAR(50) NOT NULL COMMENT '组名',
    `tag_name` VARCHAR(100) DEFAULT NULL COMMENT '标签名（NULL表示组级）',
    `cost_type` VARCHAR(20) NOT NULL COMMENT 'total-总成本，single-单条成本',
    `input_value` DECIMAL(12,2) NOT NULL COMMENT '录入值',
    `actual_total_cost` DECIMAL(12,2) NOT NULL COMMENT '实际总成本',
    `input_by` VARCHAR(50) DEFAULT NULL COMMENT '录入人',
    `input_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '录入时间',
    `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
    PRIMARY KEY (`id`),
    INDEX `idx_corp_date_group` (`corp_id`, `cur_date`, `group_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成本录入记录表V2';
