package com.usky.vpp.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.vpp.service.vo.VppContractTemplateRequestVO;
import com.usky.vpp.service.vo.VppContractTemplateResponseVO;

import javax.servlet.http.HttpServletResponse;

/**
 * VppContractTemplateService 业务接口
 * @author fyc
 * @email yuchuan.fu@chinausky.com
 * @date 2026/7/4
 */
public interface VppContractTemplateService {

    /**
     * 新增合同模板
     */
    Boolean create(VppContractTemplateRequestVO vo);

    /**
     * 修改合同模板
     */
    Boolean update(VppContractTemplateRequestVO vo);

    /**
     * 分页查询合同模板
     * @param id           主键ID（精确匹配）
     * @param templateName 模板名称（模糊匹配）
     * @param contractType 合同类型
     * @param isEnabled    是否启用
     * @param pageNum      页码
     * @param pageSize     页大小
     */
    CommonPage<VppContractTemplateResponseVO> page(Long id, String templateName, Integer contractType, Integer isEnabled,
                                                     Integer pageNum, Integer pageSize);

    /**
     * 删除合同模板（软删除）
     */
    Boolean delete(Long id);

    /**
     * 下载合同模板文件
     * @param id       主键ID
     * @param response HTTP响应
     */
    void download(Long id, HttpServletResponse response);
}
