File size: 2,481 Bytes
186e98e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from flask import session
import uuid
from datetime import datetime

class SessionManager:
    def __init__(self):
        self.sessions = {}

    def create_session(self):
        """Crea una nueva sesi贸n"""
        session_id = str(uuid.uuid4())
        session['id'] = session_id
        self.sessions[session_id] = {
            'created_at': datetime.now(),
            'last_activity': datetime.now(),
            'mode': 'soporte',
            'model': 'gemini',
            'tts': 'EDGE',
            'audio_state': {
                'is_playing': False,
                'current_audio': None
            },
            'chat_history': []
        }
        return session_id

    def get_session(self, session_id=None):
        """Obtiene una sesi贸n existente o crea una nueva"""
        if not session_id:
            session_id = session.get('id')
        
        if not session_id or session_id not in self.sessions:
            return self.create_session()
        
        self.sessions[session_id]['last_activity'] = datetime.now()
        return session_id

    def update_session(self, session_id, key, value):
        """Actualiza un valor en la sesi贸n"""
        if session_id in self.sessions:
            self.sessions[session_id][key] = value
            self.sessions[session_id]['last_activity'] = datetime.now()

    def get_session_data(self, session_id, key=None):
        """Obtiene datos de la sesi贸n"""
        if session_id not in self.sessions:
            return None
        
        if key:
            return self.sessions[session_id].get(key)
        return self.sessions[session_id]

    def add_message_to_history(self, session_id, message, sender):
        """Agrega un mensaje al historial de la sesi贸n"""
        if session_id in self.sessions:
            self.sessions[session_id]['chat_history'].append({
                'text': message,
                'sender': sender,
                'timestamp': datetime.now()
            })

    def update_audio_state(self, session_id, is_playing=False, current_audio=None):
        """Actualiza el estado del audio en la sesi贸n"""
        if session_id in self.sessions:
            self.sessions[session_id]['audio_state'] = {
                'is_playing': is_playing,
                'current_audio': current_audio
            }

    def clear_session(self, session_id):
        """Limpia una sesi贸n"""
        if session_id in self.sessions:
            del self.sessions[session_id]