33 lines
No EOL
1.3 KiB
Python
33 lines
No EOL
1.3 KiB
Python
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) |