# analytics/models.py from django.db import models from django.contrib.auth.models import User class DataUpload(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) file = models.FileField(upload_to='uploads/') uploaded_at = models.DateTimeField(auto_now_add=True) class ProcessedData(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) data = models.JSONField() # Use JSONField to store processed data processed_at = models.DateTimeField(auto_now_add=True) class DashboardConfig(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) config = models.JSONField() # Store dashboard configuration as JSON created_at = models.DateTimeField(auto_now_add=True) class ReportRequest(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) report_type = models.CharField(max_length=255) request_date = models.DateTimeField(auto_now_add=True) status = models.CharField(max_length=50, default='Pending') class RealTimeMonitor(models.Model): data_source = models.CharField(max_length=255) current_value = models.FloatField() last_updated = models.DateTimeField(auto_now=True) class DataStory(models.Model): title = models.CharField(max_length=255) summary = models.TextField() created_at = models.DateTimeField(auto_now_add=True) class Report(models.Model): title = models.CharField(max_length=255) description = models.TextField() file = models.FileField(upload_to='reports/') uploaded_at = models.DateTimeField(auto_now_add=True) user = models.ForeignKey(User, on_delete=models.CASCADE) class Dashboard(models.Model): title = models.CharField(max_length=255) description = models.TextField() config = models.JSONField() # Store dashboard configuration as JSON created_at = models.DateTimeField(auto_now_add=True) user = models.ForeignKey(User, on_delete=models.CASCADE) class Hypothesis(models.Model): title = models.CharField(max_length=255) content = models.TextField() related_report = models.ForeignKey(Report, on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) class APIIntegration(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) name = models.CharField(max_length=255) description = models.TextField() endpoint = models.URLField() api_key = models.CharField(max_length=255) created_at = models.DateTimeField(auto_now_add=True)