// 提示词/模板库前端纯逻辑（F3）：新建表单值校验 + 请求体组装。
// 纯逻辑（无 React / 无 fetch），便于 node 环境单测。后端 title/body 非空校验为权威（422 兜底），
// 前端先拦一道给即时反馈（守边界：不信输入，提交前 trim 判空）。

import type { TemplateCreateRequest } from "@/lib/api/types";

// 新建模板的草稿表单值（受控输入原始值）。
export interface TemplateDraft {
  title: string;
  body: string;
  category: string;
  toolKey: string;
}

export const EMPTY_TEMPLATE_DRAFT: TemplateDraft = {
  title: "",
  body: "",
  category: "",
  toolKey: "",
};

// 草稿是否可提交（title/body 去空白后非空）。
export function isTemplateDraftValid(draft: TemplateDraft): boolean {
  return draft.title.trim().length > 0 && draft.body.trim().length > 0;
}

// 草稿 → 创建请求体：trim title/body；空 category/toolKey 省略为 null（后端可空）。
export function buildTemplateCreateRequest(
  draft: TemplateDraft,
): TemplateCreateRequest {
  const category = draft.category.trim();
  const toolKey = draft.toolKey.trim();
  return {
    title: draft.title.trim(),
    body: draft.body.trim(),
    category: category.length > 0 ? category : null,
    tool_key: toolKey.length > 0 ? toolKey : null,
  };
}
