package com.zhentao.service;

import com.github.binarywang.wxpay.exception.WxPayException;

import java.util.List;
import java.util.Map;

/**
 * 课程订单服务接口
 */
public interface CourseOrderService {
    
    /**
     * 购买课程（创建订单并获取支付参数）
     * 
     * @param userId 用户ID
     * @param courseId 课程ID
     * @param courseName 课程名称
     * @param price 课程价格
     * @return 微信支付参数
     */
    Map<String, Object> purchaseCourse(Long userId, Integer courseId, String courseName, Double price) throws WxPayException;
    
    /**
     * 处理微信支付回调
     * 
     * @param notifyData 回调数据
     * @return 处理结果
     */
    String handlePayNotify(String notifyData) throws WxPayException;
    
    /**
     * 检查用户是否已购买课程
     * 
     * @param userId 用户ID
     * @param courseId 课程ID
     * @return 是否已购买
     */
    boolean checkPurchased(Long userId, Integer courseId);
    
    /**
     * 获取用户已购买的课程ID列表
     * 
     * @param userId 用户ID
     * @return 课程ID列表
     */
    List<Integer> getPurchasedCourseIds(Long userId);
}
