feat/PRWLR-4413 Add Postgres Enums for Django and update Provider.provider field (#28)

* feat(db): PRWLR-4413 add Provider Postgres Enum type for Django

* fix(Backend): PRWLR-4413 Fix initial migration for Providers

* feat(Backend): PRWLR-4413 add provider enum to Provider model

* fix(Backend, API): PRWLR-4413 fix ProviderEnum representation

* chore(Backend): PRWLR-4413 remove max_length constraint from provider enum

* chore(Backend): PRWLR-4413 refactor postgres enum creation to avoid boilerplate

* chore(Backend): PRWLR-4413 improve comments
This commit is contained in:
Víctor Fernández Poyatos authored and GitHub committed 2024-08-21 18:02:46 +02:00
1 parent 8a2cfea677
commit 8f2bd45872
7 files changed
+165 -19

No files matched your search

+5 -3
View File
@@ -4,7 +4,7 @@ from uuid import uuid4, UUID
from django.core.validators import MinLengthValidator
from django.db import models
from django.utils.translation import gettext_lazy as _
from api.db_utils import ProviderEnumField
from api.exceptions import ModelValidationError
from api.rls import RowLevelSecurityConstraint
from api.rls import RowLevelSecurityProtectedModel
@@ -62,8 +62,8 @@ class Provider(RowLevelSecurityProtectedModel):
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
inserted_at = models.DateTimeField(auto_now_add=True, editable=False)
updated_at = models.DateTimeField(auto_now=True, editable=False)
provider = models.CharField(
max_length=10, choices=ProviderChoices.choices, default=ProviderChoices.AWS
provider = ProviderEnumField(
choices=ProviderChoices.choices, default=ProviderChoices.AWS
)
provider_id = models.CharField(max_length=63, validators=[MinLengthValidator(3)])
alias = models.CharField(
@@ -83,6 +83,8 @@ class Provider(RowLevelSecurityProtectedModel):
super().save(*args, **kwargs)
class Meta(RowLevelSecurityProtectedModel.Meta):
db_table = "providers"
constraints = [
models.UniqueConstraint(
fields=("tenant_id", "provider", "provider_id"),