package com.ycwl.basic.service.pc;

import com.github.pagehelper.PageInfo;
import com.ycwl.basic.model.pc.template.entity.TemplateConfigEntity;
import com.ycwl.basic.model.pc.template.entity.TemplateEntity;
import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.utils.ApiResponse;

import java.util.List;

/**
 * @Author：longbinbin
 * @Date：2024/12/3 16:17
 */

public interface TemplateService {
    ApiResponse<PageInfo<TemplateRespVO>> pageQuery(TemplateReqQuery templateReqQuery);
    ApiResponse<List<TemplateRespVO>> list(TemplateReqQuery templateReqQuery);
    ApiResponse<TemplateRespVO> getById(Long id);
    ApiResponse<Boolean> add(TemplateEntity template);
    ApiResponse<Integer> deleteById(Long id);
    ApiResponse<Boolean> update(TemplateEntity template);
    ApiResponse<Boolean> updateStatus(Long id);

    TemplateConfigEntity getConfig(Long templateId);

    void saveConfig(Long configId, TemplateConfigEntity config);

    ApiResponse<Boolean> sortTemplate(Long templateId, Long afterTemplateId);

    ApiResponse<Boolean> updateSort(Long templateId, Integer sort);
}
