-- 订单管理展示字段补充
-- 为 main_order 表添加前端展示所需的字段
-- 注意：phone、userAvatar、productName、productImg 应通过关联查询获取，不应冗余存储

-- 1. 添加客户单号字段
ALTER TABLE `main_order` ADD COLUMN `customer_sn` varchar(100) DEFAULT NULL COMMENT '客户单号' AFTER `order_no`;

-- 2. 添加订单来源字段
ALTER TABLE `main_order` ADD COLUMN `source` varchar(50) DEFAULT '小程序' COMMENT '订单来源（小程序/APP/PC）' AFTER `buyer_name`;

-- 3. 添加定金字段
ALTER TABLE `main_order` ADD COLUMN `deposit` decimal(10,2) DEFAULT 0.00 COMMENT '定金金额' AFTER `total_amount`;

-- 4. 添加尾款字段
ALTER TABLE `main_order` ADD COLUMN `balance` decimal(10,2) DEFAULT 0.00 COMMENT '尾款金额' AFTER `deposit`;

-- 5. 添加数量字段
ALTER TABLE `main_order` ADD COLUMN `quantity` int DEFAULT 1 COMMENT '商品数量' AFTER `balance`;

-- 说明：
-- 1. customer_sn: 客户自定义单号，用于对账
-- 2. source: 订单来源渠道，便于统计分析
-- 3. deposit/balance: 定金订单的金额拆分，全款订单时 deposit=0, balance=total_amount
-- 4. quantity: 商品数量
-- 
-- 以下字段应通过关联查询获取，不需要添加到订单表：
-- - phone: 从 main_student.mobile 关联查询（当 buyer_type=2 时）
-- - userAvatar: 从 main_student.avatar 关联查询（当 buyer_type=2 时）
-- - productName: 从 main_product 表关联查询
-- - productImg: 从 main_product 表关联查询


-- =====================================================
-- main_back_candidate 表 Offer 管理字段补充
-- 支持企业和学员双向确认流程
-- =====================================================

-- 1. 添加企业意愿状态字段
ALTER TABLE `main_back_candidate` ADD COLUMN `enterprise_status` varchar(20) DEFAULT 'pending' COMMENT '企业意愿状态（pending-待处理/adopted-录用/rejected-不录用）' AFTER `source`;

-- 2. 添加学员意愿状态字段
ALTER TABLE `main_back_candidate` ADD COLUMN `student_status` varchar(20) DEFAULT 'pending' COMMENT '学员意愿状态（pending-待确认/accepted-已接受/rejected-已拒绝）' AFTER `enterprise_status`;

-- 3. 添加Offer文件地址字段
ALTER TABLE `main_back_candidate` ADD COLUMN `offer_file_url` varchar(500) DEFAULT NULL COMMENT 'Offer PDF文件URL' AFTER `student_status`;

-- 4. 添加Offer文件名字段
ALTER TABLE `main_back_candidate` ADD COLUMN `offer_file_name` varchar(255) DEFAULT NULL COMMENT 'Offer PDF文件名' AFTER `offer_file_url`;

-- 5. 添加企业发送Offer时间字段
ALTER TABLE `main_back_candidate` ADD COLUMN `offer_time` datetime DEFAULT NULL COMMENT '企业发送Offer时间' AFTER `offer_file_name`;

-- 6. 添加学员确认/拒绝时间字段
ALTER TABLE `main_back_candidate` ADD COLUMN `student_reply_time` datetime DEFAULT NULL COMMENT '学员确认或拒绝Offer时间' AFTER `offer_time`;

-- 7. 修改status字段长度（兼容新状态值）
ALTER TABLE `main_back_candidate` MODIFY COLUMN `status` varchar(20) DEFAULT NULL COMMENT '状态（兼容旧数据）';

-- 说明：
-- 1. enterprise_status: 企业对候选人的录用意愿
-- 2. student_status: 学员对企业Offer的接受意愿
-- 3. offer_file_url/offer_file_name: Offer PDF文件信息
-- 4. offer_time: 企业发出Offer的时间点
-- 5. student_reply_time: 学员回复的时间点
--
-- 状态组合逻辑：
-- - enterprise_status=pending, student_status=pending: 待审核（企业未处理）
-- - enterprise_status=adopted, student_status=pending: 待确认（Offer已发出）
-- - enterprise_status=adopted, student_status=accepted: 已录用（双方确认）
-- - enterprise_status=adopted, student_status=rejected: 已拒绝（学员拒绝）
-- - enterprise_status=rejected: 不录用（企业拒绝）
