package com.sonic.lion.service;

import com.sonic.lion.domain.entity.AppStoreProduct;
import com.sonic.lion.domain.entity.PayCharge;
import com.sonic.lion.domain.input.SubChargeProductListInput;
import com.sonic.lion.domain.output.SubProductListOutput;

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

/**
 * @author: code
 * @date: 2025/06/24
 * @Description:
 * @version: 1.0.0
 */
public interface PayChargeService {

    /**
     * 根据应用id和产品id查询
     *
     * @param bundleId
     * @param productId
     * @return
     */
    PayCharge getByBundleIdAndProductIdAndPlatform(String bundleId, String productId,String platform);

    /**
     * 根据产品id查询
     * @param productId
     * @param platform
     * @return
     */
    PayCharge getByBundleIdAndProductIdAndPlatform(  String productId,String platform);

    /**
     * 列表
     *
     * @return
     */
    List<PayCharge> list(String platform);

    /**
     * 列表
     * @param platform
     * @param version
     * @return
     */
    List<PayCharge> list(String platform,String version);

    /**
     * 获取订阅档位列表
     * @param input
     * @return
     */
    List<SubProductListOutput> subProductList(SubChargeProductListInput input);

    /**
     *  获取AppStore产品
     * @param productId
     * @param platform
     * @return
     */
    AppStoreProduct getAppStoreProduct(String productId, String platform);

    /**
     * 获取充值档位基础数据
     * @param productId
     * @return
     */
    PayCharge getByProductId(String productId);

    /**
     * 获取充值档位基础数据
     * @param productId
     * @param platform
     * @return
     */
    PayCharge getByProductId(String productId, String platform);

}
