#!/usr/bin/env python3
"""
Update Adviser Assistant system prompt with current_date field documentation.
"""

import os
from openai import OpenAI
from pathlib import Path

def update_adviser_prompt():
    """Update the Adviser assistant with new system prompt."""

    # Get API key and assistant ID from environment
    api_key = os.getenv("OPENAI_ADVISER_API_KEY")
    assistant_id = os.getenv("OPENAI_ADVISER_ASSISTANT_ID")

    if not api_key:
        raise ValueError("OPENAI_ADVISER_API_KEY not found in environment")
    if not assistant_id:
        raise ValueError("OPENAI_ADVISER_ASSISTANT_ID not found in environment")

    # Initialize OpenAI client
    client = OpenAI(api_key=api_key)

    # Load the prompt from PROMPTS.md
    prompts_file = Path(__file__).parent.parent / "docs" / "PROMPTS.md"
    with open(prompts_file, 'r', encoding='utf-8') as f:
        content = f.read()

    # Extract Universal Adviser prompt (between markers)
    start_marker = "## 2. Системный промпт для ассистента «Советник» (Universal Adviser)\n\n```text\n"
    end_marker = "\n```\n"

    start_idx = content.find(start_marker)
    if start_idx == -1:
        raise ValueError("Could not find start marker for Universal Adviser prompt")

    start_idx += len(start_marker)
    end_idx = content.find(end_marker, start_idx)
    if end_idx == -1:
        raise ValueError("Could not find end marker for Universal Adviser prompt")

    system_prompt = content[start_idx:end_idx]

    print(f"Updating assistant {assistant_id}...")
    print(f"Prompt length: {len(system_prompt)} characters")

    # Update the assistant
    assistant = client.beta.assistants.update(
        assistant_id=assistant_id,
        instructions=system_prompt
    )

    print(f"✅ Successfully updated assistant {assistant.id}")
    print(f"   Name: {assistant.name}")
    print(f"   Model: {assistant.model}")
    print(f"   Instructions length: {len(assistant.instructions)} characters")


if __name__ == "__main__":
    # Load .env file
    from dotenv import load_dotenv

    env_path = Path(__file__).parent.parent / ".env"
    if env_path.exists():
        load_dotenv(env_path)
        print(f"Loaded environment from {env_path}")

    update_adviser_prompt()
