package com.ycwl.basic.pricing.service;

import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
import com.ycwl.basic.pricing.dto.PriceCalculationResult;
import com.ycwl.basic.pricing.dto.UpgradeCheckRequest;
import com.ycwl.basic.pricing.dto.UpgradeCheckResult;

/**
 * 价格计算服务接口
 */
public interface IPriceCalculationService {
    
    /**
     * 计算商品价格（支持自动优惠券应用）
     * 
     * @param request 价格计算请求
     * @return 价格计算结果
     */
    PriceCalculationResult calculatePrice(PriceCalculationRequest request);

    /**
     * 升单检测：综合已购与待购商品，判断是否命中一口价或打包优惠
     *
     * @param request 升单检测请求
     * @return 检测结果
     */
    UpgradeCheckResult checkUpgrade(UpgradeCheckRequest request);
}