package com.seer.teach.pay.app.notify.service;


import com.seer.teach.common.enums.pay.PayOrderSourceEnum;
import com.seer.teach.pay.entity.PayOrderEntity;
import com.seer.teach.pay.entity.RefundOrderEntity;

/**
 * 订单处理策略接口
 */
public interface OrderPayNotifyHandler {

    /**
     * 处理支付成功的订单
     *
     * @param payOrder 支付订单
     */
    void orderPayAfterSuccess(PayOrderEntity payOrder);

    /**
     * 处理支付失败的订单
     *
     * @param payOrder 支付订单
     */
    void orderPayAfterFail(PayOrderEntity payOrder);

    /**
     * 处理退款成功的订单
     *
     * @param refundOrder 退款订单
     */
    void orderRefundAfterSuccess(RefundOrderEntity refundOrder);

    /**
     * 处理退款失败的订单
     *
     * @param refundOrder 退款订单
     */
    void orderRefundAfterFail(RefundOrderEntity refundOrder);

    /**
     * 获取订单来源
     * @return 订单来源
     */
    PayOrderSourceEnum getOrderSource();
}
