package com.cm.common.service.templateconfig;

import com.cm.common.exception.RemoveException;
import com.cm.common.exception.SearchException;
import com.cm.common.pojo.ListPage;
import com.cm.common.pojo.dtos.templateconfig.TemplateConfigDTO;
import com.cm.common.pojo.vos.templateconfig.TemplateConfigVO;
import com.cm.common.result.SuccessResult;
import com.cm.common.result.SuccessResultList;
import java.util.List;
import java.util.Map;

/**
 * @ClassName: ITemplateConfigService
 * @Description: 模板表
 * @Author: WenG
 * @Date: 2020-05-07 16:44
 * @Version: 1.0
 **/
public interface ITemplateConfigService {

    /**
     * 新增模板表
     *
     * @param templateConfigVO
     * @return
     * @throws Exception
     */
    SuccessResult saveTemplateConfig(TemplateConfigVO templateConfigVO) throws Exception;

    /**
     * 新增模板表(APP)
     *
     * @param token
     * @param templateConfigVO
     * @return
     * @throws Exception
     */
    SuccessResult saveTemplateConfigByToken(String token, TemplateConfigVO templateConfigVO) throws Exception;

    /**
     * 删除模板表
     *
     * @param ids
     * @return
     * @throws RemoveException
     */
    SuccessResult removeTemplateConfig(String ids) throws RemoveException;

    /**
     * 删除模板表(APP)
     *
     * @param token
     * @param ids
     * @return
     * @throws RemoveException
     */
    SuccessResult removeTemplateConfigByToken(String token, String ids) throws RemoveException;

    /**
     * 修改模板表
     *
     * @param newsTemplateId
     * @param templateConfigVO
     * @return
     * @throws Exception
     */
    SuccessResult updateTemplateConfig(String newsTemplateId, TemplateConfigVO templateConfigVO) throws Exception;

    /**
     * 修改模板表(APP)
     *
     * @param token
     * @param newsTemplateId
     * @param templateConfigVO
     * @return
     * @throws Exception
     */
    SuccessResult updateTemplateConfigByToken(String token, String newsTemplateId, TemplateConfigVO templateConfigVO) throws Exception;

    /**
     * 模板表详情(通过ID)
     *
     * @param newsTemplateId
     * @return
     * @throws SearchException
     */
    TemplateConfigDTO getTemplateConfigById(String newsTemplateId) throws SearchException;

    /**
     * 模板表列表
     *
     * @param params
     * @return
     * @throws SearchException
     */
    List<TemplateConfigDTO> listTemplateConfig(Map<String, Object> params) throws SearchException;

    /**
     * 模板表分页列表
     *
     * @param page
     * @return
     * @throws SearchException
     */
    SuccessResultList<List<TemplateConfigDTO>> listPageTemplateConfig(ListPage page) throws SearchException;

    /**
     * 更新内容
     * @param newsTemplateId
     * @param templateContent
     * @return
     * @throws Exception
     */
    SuccessResult updateTemplateConfigContent(String newsTemplateId, String templateContent) throws Exception;

}
