package com.qqchen.deploy.backend.workflow.service;

import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.workflow.dto.FormDefinitionDTO;
import com.qqchen.deploy.backend.workflow.dto.query.FormDefinitionQuery;
import com.qqchen.deploy.backend.workflow.entity.FormDefinition;

/**
 * 表单定义服务接口
 *
 * @author qqchen
 * @date 2025-10-24
 */
public interface IFormDefinitionService extends IBaseService<FormDefinition, FormDefinitionDTO, FormDefinitionQuery, Long> {

    /**
     * 发布表单（版本不可变）
     * 如果当前表单已发布，则创建新版本；否则直接发布
     *
     * @param id 表单定义ID
     * @return 发布后的表单定义
     */
    FormDefinitionDTO publish(Long id);

    /**
     * 根据表单标识获取最新版本
     *
     * @param key 表单标识
     * @return 表单定义
     */
    FormDefinitionDTO getLatestByKey(String key);
}

