from django.db import models from django.contrib.auth.models import User from django.utils import timezone class ChatSession(models.Model): """Chat-Session für Live-Support""" STATUS_CHOICES = [ ('active', 'Aktiv'), ('waiting', 'Wartend'), ('closed', 'Geschlossen'), ] user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) session_id = models.CharField(max_length=100, unique=True) status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='waiting') agent = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='chat_sessions') created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) closed = models.DateTimeField(null=True, blank=True) class Meta: ordering = ['-created'] def __str__(self): return f"Chat {self.session_id} - {self.status}" class ChatMessage(models.Model): """Chat-Nachrichten""" MESSAGE_TYPE_CHOICES = [ ('user', 'Benutzer'), ('agent', 'Agent'), ('system', 'System'), ] session = models.ForeignKey(ChatSession, on_delete=models.CASCADE, related_name='messages') message_type = models.CharField(max_length=20, choices=MESSAGE_TYPE_CHOICES) sender = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) content = models.TextField() timestamp = models.DateTimeField(auto_now_add=True) is_read = models.BooleanField(default=False) class Meta: ordering = ['timestamp'] def __str__(self): return f"{self.message_type}: {self.content[:50]}" class ChatBot(models.Model): """Chatbot-Konfiguration""" name = models.CharField(max_length=100) is_active = models.BooleanField(default=True) welcome_message = models.TextField() auto_responses = models.JSONField(default=dict) def __str__(self): return self.name class ChatBotResponse: """Chatbot-Antworten""" @staticmethod def get_welcome_message(): return { 'message': 'Willkommen beim Fursuit Shop! Wie kann ich Ihnen helfen?', 'options': [ 'Produktinformationen', 'Bestellstatus', 'Custom Order', 'Zahlung & Versand', 'Mit Agent verbinden' ] } @staticmethod def get_response_for_query(query): """Einfache Keyword-basierte Antworten""" query_lower = query.lower() responses = { 'versand': 'Wir versenden weltweit! Standardversand dauert 3-5 Werktage, Express 1-2 Werktage.', 'zahlung': 'Wir akzeptieren PayPal, Kreditkarte, SEPA-Lastschrift, Giropay und Sofort.', 'custom': 'Custom Orders nehmen 4-8 Wochen in Anspruch. Sie können Ihr Design hochladen und wir erstellen ein individuelles Angebot.', 'preis': 'Unsere Preise beginnen bei 200€ für einfache Teile. Vollständige Fursuits kosten 800-2000€ je nach Komplexität.', 'größe': 'Wir nehmen individuelle Maße für Custom Orders. Standardgrößen sind S, M, L, XL verfügbar.', 'material': 'Wir verwenden hochwertige Materialien: Faux Fur, Foam, Mesh für Belüftung und professionelle Elektronik.', 'pflege': 'Fursuits sollten trocken gelagert werden. Fell kann vorsichtig gebürstet werden. Elektronik vor Wasser schützen.' } for keyword, response in responses.items(): if keyword in query_lower: return response return 'Entschuldigung, ich verstehe Ihre Frage nicht. Möchten Sie mit einem Agenten sprechen?'