import type { PromptTemplate, PromptTemplateCreateRequest, } from '../../service/content-generator/content-generator.interface'; export interface PromptTemplateDraft { template_id: string | null; name: string; description: string; language: string; titles_prompt: string; descriptions_prompt: string; tags_prompt: string; faq_prompt: string; tone: string; custom_tone: string; temperature: string; } export const EMPTY_PROMPT_TEMPLATE_DRAFT: PromptTemplateDraft = { template_id: null, name: '', description: '', language: 'en', titles_prompt: '', descriptions_prompt: '', tags_prompt: '', faq_prompt: '', tone: 'professional', custom_tone: '', temperature: '0.7', }; export function toPromptTemplateDraft( template: PromptTemplate ): PromptTemplateDraft { return { template_id: template.template_id, name: template.name, description: template.description ?? '', language: template.language ?? 'en', titles_prompt: template.titles_prompt ?? '', descriptions_prompt: template.descriptions_prompt ?? '', tags_prompt: template.tags_prompt ?? '', faq_prompt: template.faq_prompt ?? '', tone: template.tone || 'professional', custom_tone: template.custom_tone ?? '', temperature: String(template.temperature ?? 0.7), }; } function parseTemperature(raw: string): number { const parsed = Number(raw); if (!Number.isFinite(parsed)) return 0.7; if (parsed < 0.1) return 0.1; if (parsed > 1.0) return 1.0; return parsed; } export function toTemplatePayload( draft: PromptTemplateDraft ): PromptTemplateCreateRequest { return { name: draft.name.trim(), description: draft.description, language: draft.language || 'en', titles_prompt: draft.titles_prompt, descriptions_prompt: draft.descriptions_prompt, tags_prompt: draft.tags_prompt, faq_prompt: draft.faq_prompt, tone: draft.tone || 'professional', custom_tone: draft.tone === 'custom' ? draft.custom_tone : '', temperature: parseTemperature(draft.temperature), }; }