-- 创建代理商表
DROP TABLE IF EXISTS `mp_agent`;
CREATE TABLE `mp_agent` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '代理商ID',
    `agent_name` varchar(255) NOT NULL COMMENT '代理商名称',
    `agent_code` varchar(100) NOT NULL COMMENT '代理商编码',
    `agent_level` varchar(50) DEFAULT NULL COMMENT '代理商等级',
    `contact_name` varchar(100) DEFAULT NULL COMMENT '联系人姓名',
    `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
    `address` varchar(500) DEFAULT NULL COMMENT '代理商地址',
    `status` tinyint NOT NULL DEFAULT '1' COMMENT '代理商状态：0-禁用，1-启用',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
    `update_time` datetime  NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
    `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    `tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
     PRIMARY KEY (`id`) USING BTREE,
     UNIQUE KEY `uk_agent_code` (`agent_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商表';

-- 创建代理商员工关联表
DROP TABLE IF EXISTS `mp_agent_employee_relation`;
CREATE TABLE `mp_agent_employee_relation` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '关联ID',
    `agent_id` int NOT NULL COMMENT '代理商ID（对应user表的ID）',
    `employee_user_id` int NOT NULL COMMENT '员工用户ID（对应user表的ID）',
    `agent_name` varchar(50) COMMENT '代理商名称',
    `employee_name` varchar(50) COMMENT '员工名称',
    `position` varchar(50) COMMENT '员工职位',
    `status` tinyint NOT NULL DEFAULT '1' COMMENT '员工状态：0-禁用，1-启用',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
    `update_time` datetime  NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
    `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    `tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE KEY `uk_agent_employee` (`agent_id`, `employee_user_id`),
    KEY `idx_agent_id` (`agent_id`),
    KEY `idx_employee_user_id` (`employee_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商员工关联表';

-- 创建活动表
DROP TABLE IF EXISTS `mp_activity`;
CREATE TABLE `mp_activity` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '活动ID',
    `activity_name` varchar(255) NOT NULL COMMENT '活动名称，如千人助学计划',
    `description` text COMMENT '活动描述',
    `start_time` datetime NOT NULL COMMENT '活动开始时间',
    `end_time` datetime NOT NULL COMMENT '活动结束时间',
    `status` tinyint NOT NULL DEFAULT '1' COMMENT '活动状态：0-禁用，1-启用',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
    `update_time` datetime  NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
    `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    `tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商活动表';

-- 创建代理商活动参与记录表
DROP TABLE IF EXISTS `mp_agent_activity_participant`;
CREATE TABLE `mp_agent_activity_participant` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '参与记录ID',
    `agent_id` int DEFAULT NULL COMMENT '代理商ID（对应user表的ID）',
    `activity_id` int DEFAULT NULL COMMENT '活动ID',
    `activity_name` varchar(100) NOT NULL COMMENT '活动名称',
    `agent_name` varchar(100) NOT NULL COMMENT '代理商名称',
    `qr_code_url` varchar(255) NOT NULL COMMENT '二维码url',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
    `update_time` datetime  NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
    `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    `tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_activity_agent` (`activity_id`, `agent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商活动参与记录表';

-- 创建代理商活动操作日志表
DROP TABLE IF EXISTS `mp_agent_activity_log`;
CREATE TABLE `mp_agent_activity_log` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '日志ID',
    `activity_id` int DEFAULT NULL COMMENT '活动ID',
    `operator_id` int DEFAULT NULL COMMENT '操作人ID',
    `operation_type` varchar(50) DEFAULT NULL COMMENT '操作类型',
    `description` text COMMENT '操作描述',
    `before_data` text COMMENT '操作前数据（JSON格式）',
    `after_data` text COMMENT '操作后数据（JSON格式）',
    `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标记(0-正常,1-已删除)',
    `create_by` varchar(20) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(20) DEFAULT NULL COMMENT '修改人',
    `tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_activity_id` (`activity_id`),
    KEY `idx_operator_id` (`operator_id`),
    KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商活动操作日志表';

DROP TABLE IF EXISTS `mp_parent_agent_activity_relation`;
CREATE TABLE `mp_parent_agent_activity_relation` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '关系ID',
    `activity_id` int NOT NULL COMMENT '活动ID',
    `agent_id` int NOT NULL COMMENT '代理商ID',
    `parent_id` int NOT NULL COMMENT '家长ID',
    `activity_name` varchar(255)  NULL COMMENT '活动名称（冗余字段）',
    `agent_name` varchar(255)  NULL COMMENT '代理商名称（冗余字段）',
    `status` tinyint NOT NULL DEFAULT '1' COMMENT '参与状态：0-取消参与，1-正常参与',
    `sign_up_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '报名时间',
    `create_time` datetime  NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
    `update_time` datetime  NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
    `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
    `deleted` bit(1)  NULL DEFAULT b'0' COMMENT '是否删除',
    `tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_activity_id` (`activity_id`),
    KEY `idx_agent_id` (`agent_id`),
    KEY `idx_parent_id` (`parent_id`),
    KEY `idx_sign_up_time` (`sign_up_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='家长参与代理商活动关系表';

DROP TABLE IF EXISTS `mp_activity_info_collection`;
CREATE TABLE `mp_activity_info_collection` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '信息收集ID',
    `relation_id` int NOT NULL COMMENT '关联的家长参与代理商活动关系ID',
    `agent_id` int NOT NULL COMMENT '代理商ID',
    `activity_id` int NOT NULL COMMENT '活动ID',
    `parent_id` int NOT NULL COMMENT '家长ID',
    `child_name` varchar(100) COMMENT '孩子姓名',
    `child_gender` varchar(10) COMMENT '孩子性别(M-男,F-女)',
    `child_birth_date` date COMMENT '出生年月',
    `grade` varchar(20) COMMENT '年级',
    `school` varchar(255) COMMENT '学校',
    `region` varchar(255) COMMENT '地区',
    `parent_identity` varchar(20) COMMENT '家长身份(爸爸,妈妈)',
    `learning_situation` varchar(20) COMMENT '学习情况(优、良、中、差)',
    `weak_subject_ids` varchar(50) COMMENT '薄弱科目',
    `strong_subject_ids` varchar(50) COMMENT '优势科目',
    `weak_subject` varchar(50) COMMENT '偏科(数学、英语等)',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
    `update_time` datetime  NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
    `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    `tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_activity_id` (`activity_id`),
    KEY `idx_parent_id` (`parent_id`),
    KEY `idx_relation_id` (`relation_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='活动信息收集表';