Spaces:
Running
Running
| from django.db import models | |
| from django.contrib.postgres.fields import ArrayField | |
| from django.contrib.auth.models import User | |
| class UserProfile(models.Model): | |
| user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile') | |
| global_bio = models.TextField(default='A friendly tutor') | |
| global_language = models.CharField(max_length=100, default='English') | |
| global_mcp_tools = ArrayField( | |
| models.CharField(max_length=200), | |
| default=list, | |
| blank=True | |
| ) | |
| global_timer = models.IntegerField(default=10) # in seconds | |
| def __str__(self): | |
| return f"Profile of {self.user.username}" | |
| class ChatSession(models.Model): | |
| user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='chats') | |
| chat_name = models.CharField(max_length=255, default='Nuova Chat') | |
| language = models.CharField(max_length=100, default='English') | |
| character_bio = models.TextField(default='A friendly tutor') | |
| summary = models.TextField(blank=True, null=True) | |
| mcp_tools = ArrayField( | |
| models.CharField(max_length=200), | |
| default=list, | |
| blank=True | |
| ) | |
| telegram_thread_id = models.BigIntegerField(null=True, blank=True) | |
| created_at = models.DateTimeField(auto_now_add=True) | |
| reply_timer = models.IntegerField(default=10) # in seconds | |
| def __str__(self): | |
| return f"{self.chat_name} ({self.user.username})" | |
| class Meta: | |
| db_table = 'chat_sessions' | |
| class PendingMessage(models.Model): | |
| chat = models.ForeignKey(ChatSession, on_delete=models.CASCADE, related_name='messages') | |
| content = models.TextField() | |
| is_user = models.BooleanField(default=True) | |
| created_at = models.DateTimeField(auto_now_add=True) | |
| def __str__(self): | |
| return f"{'User' if self.is_user else 'AI'} on {self.chat.chat_name}" | |
| class Meta: | |
| db_table = 'pending_messages' | |