Add device stats endpoint and add indices to db models
diff --git a/crashreports/models.py b/crashreports/models.py
index 4ac2001..639678a 100644
--- a/crashreports/models.py
+++ b/crashreports/models.py
@@ -9,8 +9,10 @@
 
 
 class Device(models.Model):
+    def __str__( self ):
+        return self.uuid
     # for every device there is a django user
-    uuid = models.CharField(max_length=64, unique=True,
+    uuid = models.CharField( db_index=True,max_length=64, unique=True,
                             default=uuid.uuid4, editable=False)
     user = models.OneToOneField(
         User, related_name='Hiccup_Device', on_delete=models.CASCADE,
@@ -49,15 +51,15 @@
 
 
 class Crashreport(models.Model):
-    device = models.ForeignKey(Device, on_delete=models.CASCADE)
+    device = models.ForeignKey(Device, db_index=True, related_name='crashreports', on_delete=models.CASCADE)
     is_fake_report = models.BooleanField(default=False)
     app_version = models.IntegerField()
     uptime = models.CharField(max_length=200)
-    build_fingerprint = models.CharField(max_length=200)
-    boot_reason = models.CharField(max_length=200)
-    power_on_reason = models.CharField(max_length=200)
-    power_off_reason = models.CharField(max_length=200)
-    date = models.DateTimeField()
+    build_fingerprint = models.CharField(db_index=True, max_length=200)
+    boot_reason = models.CharField(db_index=True, max_length=200)
+    power_on_reason = models.CharField(db_index=True, max_length=200)
+    power_off_reason = models.CharField(db_index=True, max_length=200)
+    date = models.DateTimeField(db_index=True)
     tags = TaggableManager(blank=True)
     device_local_id = models.PositiveIntegerField(blank=True)
     next_logfile_key = models.PositiveIntegerField(default=1)
@@ -83,7 +85,7 @@
 
 class LogFile(models.Model):
     logfile_type = models.TextField(max_length=36, default="last_kmsg")
-    crashreport = models.ForeignKey(Crashreport, on_delete=models.CASCADE)
+    crashreport = models.ForeignKey(Crashreport,related_name='logfiles', on_delete=models.CASCADE)
     logfile = models.FileField(upload_to=crashreport_file_name, max_length=500)
     crashreport_local_id = models.PositiveIntegerField(blank=True)
     created_at = models.DateTimeField(auto_now_add=True)
@@ -95,11 +97,14 @@
 
 
 class HeartBeat(models.Model):
-    device = models.ForeignKey(Device, on_delete=models.CASCADE)
+    device = models.ForeignKey(Device,
+        db_index=True,
+        related_name='heartbeats',
+        on_delete=models.CASCADE)
     app_version = models.IntegerField()
     uptime = models.CharField(max_length=200)
-    build_fingerprint = models.CharField(max_length=200)
-    date = models.DateTimeField()
+    build_fingerprint = models.CharField( db_index=True, max_length=200)
+    date = models.DateTimeField(db_index=True)
     device_local_id = models.PositiveIntegerField(blank=True)
     created_at = models.DateTimeField(auto_now_add=True)