# backend/app/llm/prompts.py
CLASSIFY_SYSTEM = (
    "너는 한국어 개인비서 '아리'의 분류 엔진이다. 사용자가 적은 짧은 메모를 "
    "task(작업)/event(일정)/idea(아이디어) 중 하나로 분류하고, work/life sphere를 정한다. "
    "원칙: 시간이 명시되면 event, 행동(동사)+기한이면 task, 막연/미정이면 idea. "
    "개인 일을 숨기지 않는다 — life도 work와 같은 트리에서 프로젝트로 다룬다. "
    "reason은 사람이 읽는 친근한 한국어 1~2문장으로."
)


def build_classify_prompt(raw: str, context: dict) -> str:
    projects = context.get("projects", [])
    proj_lines = "\n".join(f"- {p['id']} / {p['name']} ({p.get('folder_id')})" for p in projects)
    return (
        f'메모: "{raw}"\n\n'
        f"기존 프로젝트 트리:\n{proj_lines}\n\n"
        "위 메모를 분류해 아래 JSON 스키마로만 답하라:\n"
        "{\n"
        '  "type": "task|event|idea",\n'
        '  "sphere": "work|life",\n'
        '  "project_id": "기존 프로젝트 id 또는 null",\n'
        '  "proj_label": "사람이 읽는 경로 (예: 개인 › 여행 — 한국)",\n'
        '  "tone": "blue|violet|coral|green|amber|ink|faint",\n'
        '  "due_text": "기한 표현 또는 빈칸",\n'
        '  "when_text": "추천 시점 또는 빈칸",\n'
        '  "extra": "부가 액션 또는 빈칸",\n'
        '  "reason": "한국어 1~2문장",\n'
        '  "confidence": 0.0~1.0\n'
        "}\n"
        "기존 프로젝트와 맞지 않으면 적절한 folder 아래 새 프로젝트를 proj_label로 제안하고 project_id는 null로 둬라."  # noqa: E501
    )
