package org.dromara.main.service;

import org.dromara.main.domain.bo.CsOrderCardBo;
import org.dromara.main.domain.vo.CsOrderCardVo;

import java.util.Map;

public interface ICsOrderCardService {

    /**
     * 发送结算单
     */
    CsOrderCardVo sendOrderCard(CsOrderCardBo bo);

    /**
     * 查询结算单状态
     */
    CsOrderCardVo queryById(Long orderCardId);

    /**
     * 用户支付结算单
     */
    Boolean payOrderCard(Long orderCardId, Long userId);

    /**
     * 取消结算单
     */
    Boolean cancelOrderCard(Long orderCardId);

    /**
     * 定时校验并过期超时未支付的结算单
     */
    void checkExpiredOrderCards();


    Map<String, Object> createPayOrder(Long orderCardId, Long userId);

    void handlePaySuccess(String orderNo);

    /**
     * 测评咨询时自动创建结算单（不依赖客服手动发送）
     * @param sessionId 会话ID
     * @param studentId 学员ID
     * @param orderName 项目名称
     * @param orderPrice 金额
     * @param orderType 订单类型说明
     */
    CsOrderCardVo autoCreateForAssessment(Long sessionId, Long studentId, String orderName, java.math.BigDecimal orderPrice, String orderType);

}
