Add models for user data
This commit is contained in:
parent
b49adc60f5
commit
8f61eb0834
6 changed files with 212 additions and 32 deletions
|
|
@ -1,36 +1,87 @@
|
|||
import uuid
|
||||
from django.db import models
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import AbstractUser
|
||||
from django.contrib.auth.models import AbstractUser, AnonymousUser
|
||||
|
||||
|
||||
class User(AbstractUser):
|
||||
satellites = models.ManyToManyField("Satellite", related_name="users")
|
||||
|
||||
|
||||
class Prediction(models.Model):
|
||||
satellite = models.ForeignKey('Satellite', on_delete=models.CASCADE, related_name='predictions', null=True)
|
||||
user = models.ForeignKey(get_user_model(
|
||||
), on_delete=models.CASCADE, default=0, related_name='predictions')
|
||||
satellite = models.ForeignKey(
|
||||
'Satellite', on_delete=models.CASCADE, related_name='predictions', null=True)
|
||||
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)
|
||||
request = models.JSONField(default=dict)
|
||||
result = models.JSONField(default=dict)
|
||||
|
||||
|
||||
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):
|
||||
user = models.ForeignKey(
|
||||
get_user_model(), on_delete=models.CASCADE, default=0)
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
name = models.CharField(max_length=100)
|
||||
metadata = models.JSONField(blank=True, default=dict)
|
||||
image = models.ImageField(
|
||||
upload_to='satellite_images/', blank=True, null=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
|
||||
class TelemetryPacket(models.Model):
|
||||
user = models.ForeignKey(
|
||||
get_user_model(), on_delete=models.CASCADE, default=0)
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
satellite = models.ForeignKey(Satellite, on_delete=models.CASCADE, related_name="telemetry")
|
||||
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)
|
||||
lat = models.FloatField(default=0.0)
|
||||
lon = models.FloatField(default=0.0)
|
||||
alt = models.FloatField(default=0.0)
|
||||
payload = models.JSONField(blank=True, default=dict)
|
||||
raw_data = models.JSONField(blank=True, default=dict)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
|
||||
class PreditctionTemplate(models.Model):
|
||||
user = models.ForeignKey(
|
||||
get_user_model(), on_delete=models.CASCADE, default=0)
|
||||
name = models.CharField(max_length=100)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
template_data = models.JSONField(blank=True, default=dict)
|
||||
is_default = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
unique_together = ('user', 'name')
|
||||
|
||||
|
||||
class SavedPoint(models.Model):
|
||||
user = models.ForeignKey(
|
||||
get_user_model(), on_delete=models.CASCADE, default=0)
|
||||
name = models.CharField(max_length=100)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
lat = models.FloatField(default=0.0)
|
||||
lon = models.FloatField(default=0.0)
|
||||
alt = models.FloatField(default=0.0)
|
||||
is_default = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
unique_together = ('user', 'name')
|
||||
|
||||
|
||||
class SavedRateProfile(models.Model):
|
||||
user = models.ForeignKey(
|
||||
get_user_model(), on_delete=models.CASCADE, default=0)
|
||||
name = models.CharField(max_length=100)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
rate_profile_data = models.JSONField(blank=True, default=dict)
|
||||
is_default = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
unique_together = ('user', 'name')
|
||||
Loading…
Add table
Add a link
Reference in a new issue