from django.db import models class UsageEvent(models.Model): """Anonymes Nutzungssignal für das Admin-Dashboard (siehe home01.js: pingUsageIfNeeded()). Ein Eintrag pro Gerät und Tag - device_id ist eine zufällige, nur lokal im Browser (localStorage) gespeicherte ID ohne jeden Bezug zu einer echten Person. Plattform und Browser werden serverseitig aus dem User-Agent-Header grob abgeleitet (siehe app/utils.py). """ device_id = models.CharField(max_length=64, db_index=True) app_version = models.CharField(max_length=20, blank=True) user_agent = models.TextField(blank=True) platform = models.CharField(max_length=40, blank=True) browser = models.CharField(max_length=40, blank=True) is_standalone = models.BooleanField( default=False, help_text="True, wenn als installierte PWA (Homescreen) geöffnet statt im Browser-Tab.", ) created_at = models.DateTimeField(auto_now_add=True, db_index=True) class Meta: ordering = ["-created_at"] def __str__(self): return f"{self.device_id[:8]}… – {self.created_at:%d.%m.%Y %H:%M}"