from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title class TodoItem(models.Model): STATUS_CHOICES = [ ('todo', 'To Do'), ('inprogress', 'In Progress'), ('blocked', 'Blocked'), ('done', 'Done'), ] title = models.CharField(max_length=200) description = models.TextField(blank=True, null=True) tags = models.CharField(max_length=255, blank=True, null=True) status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='todo') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.title class Conversation(models.Model): title = models.CharField(max_length=200) is_generating = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title class Message(models.Model): conversation = models.ForeignKey(Conversation, on_delete=models.CASCADE, related_name='messages') content = models.TextField() sender = models.CharField(max_length=20, choices=[('user', 'User'), ('ai', 'AI'), ('system', 'System'), ('ai_command', 'AI Command')], default='user') created_at = models.DateTimeField(auto_now_add=True) class Meta: ordering = ['created_at'] def __str__(self): return f"Message from {self.get_sender_display()} at {self.created_at}" class Setting(models.Model): key = models.CharField(max_length=255, unique=True) value = models.TextField() def __str__(self): return self.key