-- 附加费用明细表
CREATE TABLE sys_task_additional_fee (
    id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    task_id BIGINT NOT NULL COMMENT '任务ID',
    fee_type VARCHAR(50) NOT NULL COMMENT '费用类型(字典task_additional_fee_type)',
    fee_name VARCHAR(100) NOT NULL COMMENT '费用名称',
    unit_amount DECIMAL(10,2) NOT NULL COMMENT '单价',
    quantity INT NOT NULL DEFAULT 1 COMMENT '数量',
    total_amount DECIMAL(10,2) NOT NULL COMMENT '总金额',
    remark VARCHAR(500) COMMENT '备注',
    created_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
    created_time DATETIME DEFAULT NULL COMMENT '创建时间',
    PRIMARY KEY (id),
    KEY idx_task_id (task_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='任务附加费用明细表';

-- 任务支付记录表
CREATE TABLE sys_task_payment (
    id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    task_id BIGINT NOT NULL COMMENT '任务ID',
    total_amount DECIMAL(10,2) NOT NULL COMMENT '总金额(成交价+附加费)',
    settlement_amount DECIMAL(10,2) NOT NULL COMMENT '结算金额',
    payment_method VARCHAR(20) NOT NULL COMMENT '支付方式:CASH现金,ON_ACCOUNT挂帐,WECHAT微信,ALIPAY支付宝',
    pay_status VARCHAR(20) NOT NULL DEFAULT 'UNPAID' COMMENT '支付状态:UNPAID未支付,PENDING待支付,PAID已支付,FAILED失败,REFUNDED已退款',
    pay_time DATETIME COMMENT '支付时间',
    out_trade_no VARCHAR(64) COMMENT '商户订单号',
    trade_no VARCHAR(64) COMMENT '三方交易号',
    code_url TEXT COMMENT '二维码链接',
    qr_expire_time DATETIME COMMENT '二维码过期时间',
    provider VARCHAR(20) COMMENT '支付提供商:WECHAT,ALIPAY',
    payment_ref_id VARCHAR(100) COMMENT '支付模块返回的唯一标识',
    callback_url VARCHAR(500) COMMENT '回调地址',
    remark VARCHAR(500) COMMENT '备注',
    created_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
    created_time DATETIME DEFAULT NULL COMMENT '创建时间',
    update_time DATETIME DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (id),
    UNIQUE KEY uk_out_trade_no (out_trade_no),
    KEY idx_task_id (task_id),
    KEY idx_pay_status (pay_status),
    KEY idx_payment_ref_id (payment_ref_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='任务支付记录表';

-- 附加费用类型字典
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) 
VALUES ('任务附加费用类型', 'task_additional_fee_type', '0', 'admin', NOW(), '转运任务附加费用类型字典');

-- 附加费用类型字典数据
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) VALUES
(1, '等待费', '1', 'task_additional_fee_type', '', 'default', 'N', '0', 'admin', NOW(), '等待费'),
(2, '担架', '2', 'task_additional_fee_type', '', 'default', 'N', '0', 'admin', NOW(), '担架'),
(3, '居家ICU', '3', 'task_additional_fee_type', '', 'default', 'N', '0', 'admin', NOW(), '居家ICU'),
(4, '医疗设备', '4', 'task_additional_fee_type', '', 'default', 'N', '0', 'admin', NOW(), '医疗设备');
