package tech.easyflow.ai.node.filegeneration;

import org.springframework.util.StringUtils;
import tech.easyflow.common.web.exceptions.BusinessException;

import java.util.Arrays;

/**
 * 文件导出的输入内容格式。
 *
 * @author Codex
 * @since 2026-04-18
 */
public enum SourceFormat {
    PLAIN_TEXT("plain_text"),
    MARKDOWN("markdown"),
    HTML("html");

    private final String value;

    SourceFormat(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    /**
     * 解析输入格式。
     *
     * @param value 原始值
     * @return 输入格式枚举
     */
    public static SourceFormat fromValue(String value) {
        if (!StringUtils.hasText(value)) {
            throw new BusinessException("文件导出输入格式不能为空");
        }
        String normalized = value.trim().toLowerCase();
        return Arrays.stream(values())
                .filter(item -> item.value.equals(normalized))
                .findFirst()
                .orElseThrow(() -> new BusinessException("暂不支持的文件导出输入格式: " + value));
    }
}
