Dynavera/apps/domains/models.py

45 lines
1.4 KiB
Python
Raw Normal View History

from django.db.models import (
CASCADE,
CharField,
FileField,
ForeignKey,
UUIDField,
Model,
TextField,
)
from uuid import uuid4
from apps.users.models import TimeStampMixin, User
class Domain(Model):
name = CharField(max_length = 255, unique = True)
uuid = UUIDField(default = uuid4, editable = False, unique = True)
description = TextField(blank = True, default = "")
def __str__(self) -> str:
return self.name
class Organisation(TimeStampMixin, Model):
name = CharField(max_length = 255, unique = True)
uuid = UUIDField(default = uuid4, editable = False, unique = True)
managers = ForeignKey(User, on_delete = CASCADE, related_name = "managed_organisations")
employees = ForeignKey(User, on_delete = CASCADE, related_name = "organisations")
domains = ForeignKey(Domain, on_delete = CASCADE, related_name = "organisations")
def __str__(self) -> str:
return self.name
class Dataset(TimeStampMixin, Model):
domain = ForeignKey(Domain, on_delete = CASCADE, related_name = "datasets")
name = CharField(max_length = 255)
uuid = UUIDField(default = uuid4, editable = False, unique = True)
description = TextField(blank = True, default = "")
created_by = ForeignKey(User, on_delete = CASCADE, related_name = "created_datasets")
datafile = FileField(upload_to = "datasets/")
def __str__(self) -> str:
return f"{self.name} ({self.domain.name})"