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

import java.util.*;

import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscBsnRelPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscBsnRelRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscBsnRelSaveReqVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplInscBsnRelDO;
import jakarta.validation.*;

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


/**
 * 模板实例与业务中间 Service 接口
 *
 * @author 后台管理-1
 */
public interface TmplInscBsnRelService {

    /**
     * 创建模板实例与业务中间
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    TmplInscBsnRelRespVO createTmplInscBsnRel(@Valid TmplInscBsnRelSaveReqVO createReqVO);

    /**
     * 更新模板实例与业务中间
     *
     * @param updateReqVO 更新信息
     */
    void updateTmplInscBsnRel(@Valid TmplInscBsnRelSaveReqVO updateReqVO);

    /**
     * 删除模板实例与业务中间
     *
     * @param id 编号
     */
    void deleteTmplInscBsnRel(Long id);

    /**
    * 批量删除模板实例与业务中间
    *
    * @param ids 编号
    */
    void deleteTmplInscBsnRelListByIds(List<Long> ids);

    /**
     * 获得模板实例与业务中间
     *
     * @param id 编号
     * @return 模板实例与业务中间
     */
    TmplInscBsnRelRespVO getTmplInscBsnRel(Long id);

    /**
     * 获得模板实例与业务中间分页
     *
     * @param pageReqVO 分页查询
     * @return 模板实例与业务中间分页
     */
    PageResult<TmplInscBsnRelDO> getTmplInscBsnRelPage(TmplInscBsnRelPageReqVO pageReqVO);
    /**
     * 获取详情
     *
     * @param tmplInscBsnRelRespVO 类
     */
    void getTmplInscBsnRelDetails(TmplInscBsnRelRespVO tmplInscBsnRelRespVO);

    /**
     * 更新cntt
     *
     * @param bsnId ,params
     */
    void updateCntt(Long bsnId,String params);
    /**
     * 获取字段和条款
     *
     * @param cttId ,inscId
     */
    Map<String,Object> valueInfo(String cttId,String inscId);

    /**
     * 获取中间表
     *
     * @param cttId ,inscId
     */
    TmplInscBsnRelRespVO bseInfo(String cttId,String inscId);

    /**
     * 获取中间表
     *
     * @param id 中间表id
     */
    Map<String, Object>  bseInfoById(String id);
}
