// prompts/jp-cultural-context.ts

/**
 * JP X (Twitter) culture context để inject vào prompts.
 * Tách riêng vì sẽ refine nhiều theo thời gian.
 */

export const JP_X_CULTURE = {
    /**
     * Đặc trưng JP X writing style.
     */
    styleNotes: [
        '日本のX文化: 短文・改行多め・絵文字控えめ（過剰だと逆効果）',
        '「〜だわ」「〜やん」「〜やろ」など話し言葉OK、堅すぎる文体は避ける',
        '「ｗ」「草」「www」を文末に使うのは自然（やりすぎ注意）',
        '「マジで」「ガチで」「普通に」は強調表現として頻出',
        '改行を効果的に使う — 長文1段落より、短く区切る方が読まれる',
        '英語表現の直訳は避ける（「This is huge」→「これはデカい」より「やばい」「えぐい」）',
    ].join('\n'),

    /**
     * Phrases AI thường viết → người Nhật KHÔNG bao giờ viết.
     * Cực kỳ quan trọng — đây là dead giveaway của AI output.
     */
    aiPhrasesAvoid: [
        '❌ 「〜だと思います」連発（フォーマルすぎ）',
        '❌ 「以下のような〜」「上記の〜」（書き言葉すぎ）',
        '❌ 「いかがでしょうか」（営業文っぽい）',
        '❌ 「重要なポイントは〜」（教科書的）',
        '❌ 「素晴らしい投稿ですね」（おべっか・AI臭）',
        '❌ 「私の意見では」「個人的には〜」を文頭に毎回（くどい）',
        '❌ 結論で「まとめると〜」（説明文っぽい）',
        '❌ 「皆さんはどう思いますか？」（典型的なAI締め）',
        '❌ 過剰な「！」連発',
        '❌ 「〜することができます」（「〜できる」で十分）',
        '❌ 礼儀正しすぎる敬語（Xでは浮く）',
    ].join('\n'),

    /**
     * Natural JP X starters (theo tone).
     */
    naturalStarters: {
        casual: ['いやこれ', 'てかさ', 'これマジ', 'え、', 'ちょ、', 'なんか'],
        spicy: ['いや無理', 'は？', 'おい', 'ちょっと待って', 'これ草'],
        aggressive: ['は？マジで言ってる？', 'おい、', 'いやいや', 'なんやねん', '寝言は寝て言え'],
        profane: ['くそが', 'ふざけんな', 'マジで草', 'いや無理だわ', 'なんやこれ'],
        savage: ['よくこれ投稿できたな', 'こいつ本当に', '伝説の', '保存した', 'お兄さん、'],
        professional: ['結論から言うと', '今回の件、', '事実として、', 'データを見る限り'],
        informative: ['補足すると', '前提として', 'ポイントは', '実は'],
    },

    /**
     * Natural JP X endings.
     */
    naturalEndings: {
        casual: ['知らんけど', 'まあそんな感じ', 'って思う', 'ってわけ'],
        spicy: ['', '草', 'マジで', 'ほんま'],
        aggressive: ['ふざけんな', 'いい加減にしろ', 'マジでないわ', '冷静になれ'],
        savage: ['草', 'お疲れさまでした', '永久保存版', '伝説残した'],
        professional: ['以上', 'ご参考まで', ''],
    },

    /**
     * Net slang JP X dùng.
     */
    netSlang: {
        agree: ['それな', 'わかる', 'ほんそれ', 'ガチで', '同意'],
        disagree: ['は？', 'いや違うやろ', 'ないない', 'それはちゃう'],
        laugh: ['草', 'ｗ', 'www', '草生える', '笑う'],
        surprise: ['えぐい', 'やばい', 'マジか', '嘘やろ', 'ガチ？'],
        intensifier: ['マジで', 'ガチで', '普通に', 'えぐいぐらい', '異次元'],
        crypto: ['爆益', '退場', '握力', '養分', 'ガチホ', '損切り', 'ATH', 'ATL', 'ガチ勢'],
        finance: ['含み益', '含み損', '気絶', 'ナンピン', '逃げろ'],
    },

    /**
     * JP X engagement patterns — cái gì viral.
     */
    engagementPatterns: [
        '共感ポイント: 「あるある」「わかる」を引き出す',
        '逆張り: 多数派と逆の意見（根拠あり）',
        '断言: 「結論：〜」「答え：〜」明確に',
        '具体性: 数字・固有名詞・具体例があると伸びる',
        'リスト形式: 「3つの理由」「やってはいけない5選」',
        '体験談フック: 「実際に〜してみた」',
    ].join('\n'),
};

/**
 * Inject vào prompt JP để cải thiện quality.
 */
export function getJpContextBlock(opts: {
    includeStyleNotes?: boolean;
    includeAvoid?: boolean;
    starterCategory?: keyof typeof JP_X_CULTURE.naturalStarters;
}): string {
    const blocks: string[] = [];

    if (opts.includeStyleNotes !== false) {
        blocks.push(`📝 日本のX文化:\n${JP_X_CULTURE.styleNotes}`);
    }

    if (opts.includeAvoid !== false) {
        blocks.push(`🚫 AI臭が出る表現（絶対避ける）:\n${JP_X_CULTURE.aiPhrasesAvoid}`);
    }

    if (opts.starterCategory) {
        const starters = JP_X_CULTURE.naturalStarters[opts.starterCategory];
        if (starters) {
            blocks.push(`💬 自然な書き出し例: ${starters.join(' / ')}`);
        }
    }

    return blocks.join('\n\n');
}