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

import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.workflow.dto.FormDataCreateFromWorkflowRequest;
import com.qqchen.deploy.backend.workflow.dto.FormDataDTO;
import com.qqchen.deploy.backend.workflow.dto.query.FormDataQuery;
import com.qqchen.deploy.backend.workflow.entity.FormData;

/**
 * 表单数据服务接口
 *
 * @author qqchen
 * @date 2025-10-24
 */
public interface IFormDataService extends IBaseService<FormData, FormDataDTO, FormDataQuery, Long> {

    /**
     * 提交表单数据
     *
     * @param dto 表单数据DTO
     * @return 提交后的表单数据
     */
    FormDataDTO submit(FormDataDTO dto);

    /**
     * 根据业务标识查询表单数据
     *
     * @param businessKey 业务标识
     * @return 表单数据
     */
    FormDataDTO getByBusinessKey(String businessKey);

    /**
     * 从工作流启动创建表单数据
     * 该方法会自动查询表单定义，组装完整的 FormData 对象
     *
     * @param request 创建请求（包含 formKey、formData、businessKey）
     * @return 创建后的表单数据
     */
    FormDataDTO createFromWorkflowStart(FormDataCreateFromWorkflowRequest request);
}

