package tech.easyflow.ai.service;

import tech.easyflow.ai.entity.Workflow;
import com.mybatisflex.core.service.IService;

import java.math.BigInteger;

/**
 *  服务层。
 *
 * @author michael
 * @since 2024-08-23
 */
public interface WorkflowService extends IService<Workflow> {

    /**
     * 根据别名或 id 查询详情
     */
    Workflow getDetail(String idOrAlias);


    Workflow getByAlias(String alias);

    /**
     * 获取已发布视图。
     *
     * @param idOrAlias ID 或别名
     * @return 已发布视图
     */
    Workflow getPublishedDetail(String idOrAlias);

    /**
     * 根据 ID 获取已发布视图。
     *
     * @param id 工作流 ID
     * @return 已发布视图
     */
    Workflow getPublishedById(BigInteger id);

    /**
     * 把当前资源映射为已发布视图。
     *
     * @param workflow 当前资源
     * @return 已发布视图
     */
    Workflow toPublishedView(Workflow workflow);
}
