import random


CTA_OPENING = [
    "현재 문의가 빠르게 증가하고 있습니다.",
    "실매물은 빠르게 소진될 수 있습니다.",
    "최근 상담 요청이 많은 매물입니다.",
    "실거주와 투자 문의가 꾸준히 들어오고 있습니다.",
    "조건 좋은 매물은 빠르게 계약되는 경우가 많습니다."
]

CTA_CONTACT = [
    "실매물 확인 및 방문 예약은 편하게 문의 주세요.",
    "카카오톡 또는 전화로 빠르게 안내드리겠습니다.",
    "상담 전 체크포인트까지 자세히 안내드립니다.",
    "방문 일정 조율 및 실매물 확인 가능합니다.",
    "매물 비교 상담도 함께 도와드립니다."
]

CTA_TRUST = [
    "실거래가 기반으로 정확하게 안내드립니다.",
    "허위 매물 없이 실제 가능한 매물만 상담합니다.",
    "입지·학군·교통까지 함께 비교해드립니다.",
    "매수·전세·실거주 목적에 맞춰 추천드립니다.",
    "지역 전문 중개로 현실적인 상담을 도와드립니다."
]

CTA_URGENT = [
    "급매는 타이밍이 가장 중요합니다.",
    "좋은 조건의 매물은 먼저 확인하는 것이 중요합니다.",
    "실제 계약 가능 여부는 빠르게 체크하시는 것이 좋습니다.",
    "시장 변동 전 확인이 중요한 시점입니다.",
    "방문 예약은 미리 잡아두시는 것을 추천드립니다."
]


def safe_pick(arr, count=2):
    if not arr:
        return []
    count = min(count, len(arr))
    return random.sample(arr, count)


def build_cta_messages(posts=None, analysis=None):
    posts = posts or []
    analysis = analysis or {}

    recent_30d = int(analysis.get("recent_30d_posts", 0) or 0)
    final_score = float(analysis.get("final_score", 0) or 0)

    messages = []

    messages.extend(safe_pick(CTA_OPENING, 2))
    messages.extend(safe_pick(CTA_CONTACT, 2))
    messages.extend(safe_pick(CTA_TRUST, 2))

    if recent_30d >= 5 or final_score >= 70:
        messages.extend(safe_pick(CTA_URGENT, 2))

    unique_messages = []
    for msg in messages:
        if msg not in unique_messages:
            unique_messages.append(msg)

    return {
        "messages": unique_messages[:6],
        "summary": "상담 전환 가능성을 높이기 위한 추천 문의 유도 문구입니다."
    }