diff --git a/src/backend/api/migrations/0002_tenantmodel.py b/src/backend/api/migrations/0002_tenantmodel.py new file mode 100644 index 0000000000..9ec4fafb92 --- /dev/null +++ b/src/backend/api/migrations/0002_tenantmodel.py @@ -0,0 +1,33 @@ +# Generated by Django 5.0.7 on 2024-07-12 16:45 + +import uuid +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("api", "0001_initial"), + ] + + operations = [ + migrations.CreateModel( + name="Tenant", + fields=[ + ( + "id", + models.UUIDField( + default=uuid.uuid4, + editable=False, + primary_key=True, + serialize=False, + ), + ), + ("inserted_at", models.DateTimeField(auto_now_add=True)), + ("updated_at", models.DateTimeField(auto_now=True)), + ("name", models.CharField(max_length=100)), + ], + options={ + "abstract": False, + }, + ), + ] diff --git a/src/backend/api/models.py b/src/backend/api/models.py index 7ed846fa3f..2496dcaf19 100644 --- a/src/backend/api/models.py +++ b/src/backend/api/models.py @@ -1,4 +1,27 @@ from django.db import models +import uuid + + +class Base(models.Model): + """ + Abstract base model class that provides common fields for all models. + """ + + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + + inserted_at = models.DateTimeField(auto_now_add=True, editable=False) + updated_at = models.DateTimeField(auto_now=True, editable=False) + + class Meta: + abstract = True + + +class Tenant(Base): + """ + The Tenant is the basic grouping in the system. It is used to separate data between customers. + """ + + name = models.CharField(max_length=100) class TestModel(models.Model): diff --git a/src/backend/api/serializers.py b/src/backend/api/serializers.py index d12c18b9b4..5096bd2090 100644 --- a/src/backend/api/serializers.py +++ b/src/backend/api/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from api.models import TestModel +from api.models import TestModel, Tenant class TestModelSerializer(serializers.ModelSerializer): @@ -12,3 +12,13 @@ class TestModelSerializer(serializers.ModelSerializer): class Meta: model = TestModel fields = "__all__" + + +class TenantSerializer(serializers.ModelSerializer): + """ + Serializer for the Tenant model. + """ + + class Meta: + model = Tenant + fields = "__all__"