from pydantic import BaseModel, Field from typing import List, Optional # Input 정의 class LyricPromptInput(BaseModel): customer_name : str = Field(..., description = "마케팅 대상 사업체 이름") region : str = Field(..., description = "마케팅 대상 지역") detail_region_info : str = Field(..., description = "마케팅 대상 지역 상세") marketing_intelligence_summary : Optional[str] = Field(None, description = "마케팅 분석 정보 보고서") language : str= Field(..., description = "가사 언어") timing_rules : str = Field(..., description = "시간 제어문") industry : str = Field(default="", description = "업종 분류 (stay|restaurant|cafe|salon|clinic|fitness|academy|attraction). 통합 프롬프트가 이 값으로 내부 분기") # Output 정의 class LyricPromptOutput(BaseModel): lyric: str = Field(..., description="생성된 가사") suno_prompt: str = Field(..., description="Suno AI용 프롬프트")