package com.haha.service.payment.payscore;

import com.haha.common.enums.PaymentChannel;
import java.util.Map;

/**
 * 支付分策略接口
 * 支付分（先享后付）与普通即时支付生命周期不同，独立定义策略接口
 */
public interface PayScoreStrategy {

    /**
     * 获取支持的支付渠道
     */
    PaymentChannel getChannel();

    /**
     * 创建支付分服务订单
     */
    PayScoreResult createServiceOrder(PayScoreCreateRequest request);

    /**
     * 完结服务订单（触发自动扣款）
     */
    PayScoreResult completeServiceOrder(PayScoreCompleteRequest request);

    /**
     * 取消服务订单
     */
    PayScoreResult cancelServiceOrder(PayScoreCancelRequest request);

    /**
     * 查询服务订单
     */
    PayScoreResult queryServiceOrder(String outOrderNo);

    /**
     * 解析支付分回调通知
     */
    PayScoreCallbackResult parseCallback(Map<String, Object> params);
}
