import uuid from django.db import models from django.contrib.auth import get_user_model class User(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) class Prediction(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) result = models.JSONField() deleted_at = models.DateTimeField(null=True, blank=True) class UserPrediction(models.Model): user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE) prediction = models.ForeignKey("Prediction", on_delete=models.CASCADE) created_at = models.DateTimeField() class Satellite(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) name = models.CharField(max_length=100) class TelemetryPacket(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) satellite = models.ForeignKey(Satellite, on_delete=models.CASCADE, related_name="telemetry") timestamp = models.BigIntegerField() # unix time lat = models.FloatField() lon = models.FloatField() alt = models.FloatField() payload = models.JSONField(null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True)