package shop.alien.store.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.store.StorePaymentConfig;

/**
 * 支付配置表 服务类
 *
 * @author system
 */
public interface StorePaymentConfigService extends IService<StorePaymentConfig> {

    /**
     * 根据店铺ID查询支付配置
     *
     * @param storeId 店铺ID
     * @return 支付配置，不存在返回 null
     */
    StorePaymentConfig getByStoreId(Integer storeId);

    /**
     * 根据店铺用户ID查询支付配置（设置收款账号场景）
     *
     * @param storeUserId 店铺用户ID（store_user.id）
     * @return 支付配置，不存在返回 null
     */
    StorePaymentConfig getByStoreUserId(Integer storeUserId);

    /**
     * 根据支付宝应用 app_id 精确查询一条支付配置（异步通知验签、按 app_id 反查门店）
     *
     * @param appId 应用ID
     * @return 多条时取一条，不存在返回 null
     */
    StorePaymentConfig getByAppId(String appId);

    /**
     * 分页查询支付配置列表
     *
     * @param page   分页参数
     * @param storeId 店铺ID（可选）
     * @param appId  应用ID（可选，模糊）
     * @return 分页结果
     */
    IPage<StorePaymentConfig> pageList(Page<StorePaymentConfig> page, Integer storeId, String appId);
}
