package com.zt.plat.module.base.service.tmpltp;

import java.util.*;

import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO;
import jakarta.validation.*;

import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.PageParam;

/**
 * 实例字段值 Service 接口
 *
 * @author 后台管理
 */
public interface TemplateInstanceDataService {

    /**
     * 创建实例字段值
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    TemplateInstanceDataRespVO createTemplateInstanceData(@Valid TemplateInstanceDataSaveReqVO createReqVO);

    /**
     * 更新实例字段值
     *
     * @param updateReqVO 更新信息
     */
    void updateTemplateInstanceData(@Valid TemplateInstanceDataSaveReqVO updateReqVO);

    /**
     * 删除实例字段值
     *
     * @param id 编号
     */
    void deleteTemplateInstanceData(Long id);

    /**
    * 批量删除实例字段值
    *
    * @param ids 编号
    */
    void deleteTemplateInstanceDataListByIds(List<Long> ids);

    /**
     * 获得实例字段值
     *
     * @param id 编号
     * @return 实例字段值
     */
    TemplateInstanceDataDO getTemplateInstanceData(Long id);

    /**
     * 获得实例字段值分页
     *
     * @param pageReqVO 分页查询
     * @return 实例字段值分页
     */
    PageResult<TemplateInstanceDataDO> getTemplateInstanceDataPage(TemplateInstanceDataPageReqVO pageReqVO);

    /**
     * 设置实例字段值
     *
     * @param pageReqVOS 保存参数
     * @return 布尔类型
     */
    boolean setTemplateInstanceData(List<TemplateInstanceDataDO> pageReqVOS);


    /**
     * 清空实例字段值
     *
     * @param instanceId ids
     * @return 布尔类型
     */
    boolean clearTemplateInstanceData(String instanceId,List<Long> valIds);

    /**
     * 批量创建实例字段值
     *
     * @param createReqVOS 创建参数
     * @return 实例字段值
     */
    List<TemplateInstanceDataRespVO>  createBatchTemplateInstanceData(List<TemplateInstanceDataSaveReqVO> createReqVOS);

}
