-- ============================================
-- Feature表 - 添加成本价字段
-- 说明：为 feature 表添加天远API调用成本价字段
-- 执行时间：2025-01-13
-- ============================================

-- 添加成本价字段
ALTER TABLE `feature`
ADD COLUMN `cost_price` decimal(10, 2) DEFAULT 0.00 COMMENT '天远API调用成本价（单位：元）' AFTER `whitelist_price`;

-- ============================================
-- 说明：
-- 1. cost_price 默认值为 0.00，表示该feature的成本价为0元
-- 2. 后台可以在"功能管理"页面配置每个feature的调用成本
-- 3. 成本价用于统计天远API的调用成本
-- ============================================

-- ============================================
-- 天远API调用记录表
-- 说明：记录每次调用天远API的详细信息
-- ============================================

CREATE TABLE `tianyuanapi_call_log` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `feature_id` varchar(36) NOT NULL COMMENT '功能ID（关联feature表）',
    `api_id` varchar(50) NOT NULL COMMENT 'API标识（如：YYSYBE08）',
    `order_id` varchar(36) DEFAULT NULL COMMENT '订单ID（关联order表）',
    `query_id` varchar(36) DEFAULT NULL COMMENT '查询ID（关联query表）',
    `call_status` tinyint NOT NULL DEFAULT 0 COMMENT '调用状态：0=失败，1=成功',
    `call_time` datetime NOT NULL COMMENT '调用时间',
    `response_time` int DEFAULT NULL COMMENT '响应耗时（毫秒）',
    `cost_price` decimal(10, 2) DEFAULT 0.00 COMMENT '本次调用成本（成功时从feature.cost_price获取，失败时为0）',
    `error_code` varchar(50) DEFAULT NULL COMMENT '错误码（失败时记录）',
    `error_message` varchar(500) DEFAULT NULL COMMENT '错误信息（失败时记录）',
    `request_params` text DEFAULT NULL COMMENT '请求参数（JSON格式）',
    `response_data` text DEFAULT NULL COMMENT '响应数据（JSON格式，仅记录关键信息）',
    `transaction_id` varchar(100) DEFAULT NULL COMMENT '天远API流水号',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
    `del_state` tinyint NOT NULL DEFAULT 0 COMMENT '删除状态：0=未删除，1=已删除',
    `version` bigint NOT NULL DEFAULT 0 COMMENT '版本号（乐观锁）',
    PRIMARY KEY (`id`),
    KEY `idx_feature_id` (`feature_id`),
    KEY `idx_api_id` (`api_id`),
    KEY `idx_order_id` (`order_id`),
    KEY `idx_query_id` (`query_id`),
    KEY `idx_call_status` (`call_status`),
    KEY `idx_call_time` (`call_time`),
    KEY `idx_feature_time` (`feature_id`, `call_time`) COMMENT '复合索引：查询某个功能在某段时间的调用记录'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '天远API调用记录表';

-- ============================================
-- 说明：
-- 1. feature_id: 关联到feature表，记录是哪个接口的调用
-- 2. api_id: 天远API的接口标识（如：YYSYBE08）
-- 3. order_id/query_id: 关联订单或查询，方便追溯
-- 4. call_status: 调用状态，成功=1，失败=0
-- 5. cost_price: 成本价，成功时为feature.cost_price，失败时为0
-- 6. error_code/error_message: 失败时记录错误信息
-- 7. request_params/response_data: 请求和响应数据（可选择性记录）
-- 8. transaction_id: 天远API返回的流水号
-- 9. 无论成功失败都会记录，方便统计分析
-- ============================================