#!/usr/bin/env python
# -*- coding: UTF-8 -*-

"""
@Project: NarratoAI
@File   : script_generation.py
@Author : viccy同学
@Date   : 2025/1/7
@Description: 短剧解说脚本生成提示词 - 优化版本
"""

from ui import ConstData
from ..base import ParameterizedPrompt, PromptMetadata, ModelType, OutputFormat


# characters_num 解说文字字数
# original_rate 原片比例
class ScriptGenerationPrompt(ParameterizedPrompt):
    """短剧解说脚本生成提示词 - 优化版本"""

    def __init__(self):
        metadata = PromptMetadata(
            name="script_generation",
            category="short_drama_narration",
            version="v2.0",
            description="基于电影解说创作核心要素，生成高质量解说脚本，包含黄金开场、高能场景、个性吐槽等专业技巧",
            model_type=ModelType.TEXT,
            output_format=OutputFormat.JSON,
            tags=["电影", "解说脚本", "文案生成", "原声片段", "黄金开场", "悬念预埋"],
            parameters=["drama_name", "plot_analysis", "subtitle_content", "subtitle_time", "characters_num",
                        "original_rate", "auxiliary_words", "speech_rate"]
        )
        super().__init__(metadata, required_parameters=["drama_name", "plot_analysis"])

        self._system_prompt = "你是一位顶级的电影解说员，精通短视频创作的所有核心技巧。你必须严格按照JSON格式输出，绝不能包含任何其他文字、说明或代码块标记。"

    def get_template(self) -> str:
        data = ''
        with open(ConstData.plan_path, 'r', encoding='utf-8') as f:
            content = f.read()
            data += content
        return data
