#!/usr/bin/env python3
"""
Script para simular criação de chat e verificar mensagem de boas-vindas
"""
import sys
import os

sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))

from src.config.database import db
from src.models.agente import Agente
from src.models.chat import Chat
from src.models.message import Message
from src.models.user import User
from flask import Flask
from datetime import datetime

def create_app():
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://fernando.barreto:fT3&r$qId&LA3v$9@dns.auditto.com.br:33306/ollama'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    db.init_app(app)
    return app

def simulate_chat_creation():
    app = create_app()
    
    with app.app_context():
        print("=== Simulando Criação de Chat ===\n")
        
        agente = Agente.query.get(1) 
        user = User.query.first() 
        
        if not agente or not user:
            print("Agente ou usuário não encontrado!")
            return
        
        print(f"Agente: {agente.nome} (ID: {agente.id})")
        print(f"Usuário: {user.username} (ID: {user.id})")
        print(f"Mensagem de boas-vindas do agente: {repr(agente.welcome_message)}")
        print()
        
        print("1. Criando novo chat...")
        chat = Chat(
            user_id=user.id,
            agent_id=agente.id,
            created_at=datetime.now()
        )
        db.session.add(chat)
        db.session.flush()  
        
        print(f"Chat criado com ID: {chat.id}")
        
        if agente.welcome_message:
            print("2. Adicionando mensagem de boas-vindas...")
            welcome_message = Message(
                chat_id=chat.id,
                message=agente.welcome_message,
                is_user=False,  
                created_at=datetime.now()
            )
            db.session.add(welcome_message)
            print(f"Mensagem de boas-vindas adicionada: {repr(welcome_message.message)}")
        else:
            print("2. Agente não possui mensagem de boas-vindas")
        
        db.session.commit()
        print("Chat e mensagens salvos no banco de dados.")
        print("\n3. Verificando mensagens do chat...")
        messages = Message.query.filter_by(chat_id=chat.id).order_by(Message.created_at).all()
        
        for i, msg in enumerate(messages):
            user_type = "Usuário" if msg.is_user else "Agente"
            print(f"  {i+1}. {user_type}: {repr(msg.message)}")
        
        print(f"\n✅ Chat criado com sucesso! Total de mensagens: {len(messages)}")

if __name__ == "__main__":
    simulate_chat_creation()
