package com.nbport.zgwl.manifest.service;

import com.nbport.zgwl.common.PageResult;
import com.nbport.zgwl.manifest.dto.ContractTemplateDto;
import com.nbport.zgwl.manifest.dto.ContractTemplateQueryDto;
import com.nbport.zgwl.manifest.dto.TemplateOrgOptionDto;

import java.util.List;

/**
 * 模板管理 Service
 */
public interface ContractTemplateService {

    /** 分页查询模板列表 */
    PageResult<ContractTemplateDto> queryTemplateList(ContractTemplateQueryDto queryDto);

    /** 获取已发布的模板列表（用于发起合同时选择） */
    List<ContractTemplateDto> queryPublishedTemplates();

    /** 根据主键查询模板详情（含 JSON 字段的解析） */
    ContractTemplateDto getTemplateDetail(Long id);

    /** 新增模板 */
    ContractTemplateDto createTemplate(ContractTemplateDto template);

    /** 修改模板 */
    ContractTemplateDto updateTemplate(ContractTemplateDto template);

    /** 切换模板状态 */
    ContractTemplateDto changeTemplateStatus(Long id, String status);

    /** 获取发布范围组织选项 */
    List<TemplateOrgOptionDto> queryOrgOptions();
}
