package com.jeesharp.business.modules.pay.paychannelconfig.mapper;

import com.jeesharp.business.modules.pay.paychannelconfig.entity.PayChannelConfig;
import com.jeesharp.business.modules.pay.paychannelconfig.vo.PayChannelConfigQueryVO;
import com.jeesharp.framework.mybatis.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 支付渠道公共配置 Mapper。
 *
 * @author jeesharp
 * @since 2026-05-25
 */
@Mapper
public interface PayChannelConfigMapper extends BaseMapper<PayChannelConfig, PayChannelConfigQueryVO> {

    /**
     * @deprecated 请使用 {@link #findActiveByChannelCodeAndTenant} 或平台兜底查询
     */
    @Deprecated
    PayChannelConfig findActiveByChannelCode(@Param("channelCode") String channelCode);

    PayChannelConfig findActiveByChannelCodeAndTenant(@Param("channelCode") String channelCode,
            @Param("tenantId") String tenantId);

    PayChannelConfig findActivePlatformByChannelCode(@Param("channelCode") String channelCode);

    PayChannelConfig findByChannelAndConfigCode(@Param("channelCode") String channelCode,
            @Param("configCode") String configCode);

    PayChannelConfig findByChannelConfigCodeAndTenant(@Param("channelCode") String channelCode,
            @Param("configCode") String configCode, @Param("tenantId") String tenantId);

    PayChannelConfig findByChannelConfigCodePlatform(@Param("channelCode") String channelCode,
            @Param("configCode") String configCode);

    int disableOtherActiveExcept(@Param("channelCode") String channelCode, @Param("tenantId") String tenantId,
            @Param("keepId") String keepId, @Param("enabledStatus") Integer enabledStatus,
            @Param("disabledStatus") Integer disabledStatus);
}
