o2o-castad-backend/app/utils/prompts/schemas/marketing.py

44 lines
1.5 KiB
Python

from pydantic import BaseModel, Field
from typing import List
# Input 정의
class MarketingPromptInput(BaseModel):
customer_name : str
region : str
detail_region_info : str
# Output 정의
class BrandIdentity(BaseModel):
location_feature_analysis: str = Field(..., description="입지 특성 분석")
concept_scalability: str = Field(..., description="컨셉 확장성")
class MarketPositioning(BaseModel):
category_definition: str = Field(..., description="마케팅 카테고리")
core_value: str = Field(..., description="마케팅 포지션 핵심 가치")
class AgeRange(BaseModel):
min_age : int = Field(..., ge=0, le=100)
max_age : int = Field(..., ge=0, le=100)
class TargetPersona(BaseModel):
persona: str = Field(..., description="타겟 페르소나 이름/설명")
age: AgeRange
favor_target: List[str] = Field(..., description="페르소나의 선호 요소")
decision_trigger: str = Field(..., description="구매 결정 트리거")
class SellingPoint(BaseModel):
category: str = Field(..., description="셀링포인트 카테고리")
description: str = Field(..., description="상세 설명")
score: int = Field(..., ge=0, le=100, description="점수 (100점 만점)")
class MarketingPromptOutput(BaseModel):
brand_identity: BrandIdentity
market_positioning: MarketPositioning
target_persona: List[TargetPersona]
selling_points: List[SellingPoint]
target_keywords: List[str] = Field(..., description="타겟 키워드 리스트")