// prompts/comment.templates.ts

import {Language} from "../../../common/interfaces/language.prompt.interface";
import {calculateLengthBudget} from "../../../common/utils/token-calculator";
import {Platform} from "../enum/platform.enum";
import {ANGLE_HINTS} from "../enum/angle.enum";

export const COMMENT_SYSTEM_PROMPTS = {
    en: 'You write casual, human replies on X. Sound like a real person, NOT AI. No hashtags unless natural.',
    vi: 'Bạn viết reply tự nhiên trên X như người thật. Không giống AI. Không hashtag nếu không cần.',
    vn: 'Bạn viết reply tự nhiên trên X như người thật. Không giống AI. Không hashtag nếu không cần.',
    cn: '像真实用户一样在X上自然地回复，不要显得像AI生成的。除非必要，否则不要使用话题标签（#）。',
    ja: 'Xで人間らしい返信を書きます。AI臭くない。自然な口語。ハッシュタグは不要な限り使わない。',
    jp: 'Xで人間らしい返信を書きます。AI臭くない。自然な口語。ハッシュタグは不要な限り使わない。',
    ko: 'X에서 사람처럼 자연스럽게 답글을 씁니다. AI 같지 않게. 해시태그는 필요한 경우만.',
    kr: 'X에서 사람처럼 자연스럽게 답글을 씁니다. AI 같지 않게. 해시태그는 필요한 경우만.',
};

// export const COMMENT_AGLE_TELEGRAM_BUTTONS = {
//     agree: {text: 'Đồng ý và bổ sung thêm một điểm hỗ trợ nhỏ.'},
//     challenge: {text: 'Lịch sự bày tỏ sự KHÔNG ĐỒNG Ý hoặc bổ sung thêm sắc thái.'},
//     'add-info': {text: 'Thêm thông tin liên quan hữu ích'},
//     funny: {text: 'Hài hước dí dỏm, nhẹ nhàng, không gây khó chịu.'},
//     question: {text: 'Hãy đặt một câu hỏi tiếp theo thông minh.'},
// }

export function buildCommentPrompt(params: {
    originalPost: string;
    angle?: string;
    language: Language;
    persona?: string;
    tone?: string;
}): { system: string; user: string } {
    // const angleHints: Record<string, string> = {
    //     agree: 'agree:Đồng ý và bổ sung thêm một luận điểm nhỏ để hỗ trợ',
    //     challenge: 'challenge:Không đồng ý hoặc bổ sung thêm sắc thái',
    //     'add-info': 'add-info:Thêm thông tin liên quan hữu ích',
    //     funny: 'funny:Hóm hỉnh, hài hước nhẹ nhàng, không gây khó chịu',
    //     question: 'question:Đặt một câu hỏi tiếp theo thông minh',
    // };
    const budget = calculateLengthBudget(Platform.X, params.language);

    const user = [
        `Original X post:\n"""${params.originalPost}"""`,
        ``,
        `Write a reply target length: ${budget.minChars}-${budget.maxChars} characters:`,
        `[Target Language: ${params.language}]
            Rewrite strictly in ${params.language} only.`,
        params.angle ? `- Angle: ${ANGLE_HINTS[params.angle] ?? params.angle}` : '- Angle: natural reaction',
        params.persona ? `- Speak as: ${params.persona}` : '',
        params.tone ? `- Tone: ${params.tone}` : '- Tone: casual, conversational',
        `- Sound HUMAN, not AI. No "Great post!" openings.`,
        `- No emoji spam. 0-1 emoji max.`,
        `- Output ONLY the reply text.`,
    ].filter(Boolean).join('\n');

    return {system: COMMENT_SYSTEM_PROMPTS[params.language], user};
}
