package com.njcn.msgpush.module.push.service.retry;


import com.njcn.msgpush.module.push.controller.admin.retry.vo.RetryStrategyConfigReqVO;
import com.njcn.msgpush.module.push.dal.dataobject.retry.RetryStrategyConfigDO;

import java.util.List;

/**
 * @author caozehui
 * @data 2026-03-05
 */
public interface RetryStrategyConfigService {
    /**
     * 获得指定渠道的重试策略
     *
     * @param channel
     * @return
     */
    RetryStrategyConfigDO getStrategyConfig(String channel);

    /**
     * 获得所有重试策略
     *
     * @return
     */
    List<RetryStrategyConfigDO> listAll();

    /**
     * 修改重试策略配置
     *
     * @param strategyConfigReqVO
     * @return
     */
    boolean updateStrategyConfig(RetryStrategyConfigReqVO strategyConfigReqVO);

    /**
     * 切换重试策略的启用/禁用状态
     *
     * @param id 重试策略配置ID
     * @return 是否切换成功
     */
    boolean toggleEnableField(String id);
}
