diff --git a/apps/core/models.py b/apps/core/models.py index 3daa852..f3c4bb5 100644 --- a/apps/core/models.py +++ b/apps/core/models.py @@ -7,7 +7,18 @@ from django.utils.translation import gettext_lazy as _ user_model = settings.AUTH_USER_MODEL + +class IsDeletedManager(models.Manager): + def get_queryset(self): + return super().get_queryset().filter(is_deleted=False) + + + class BaseModel(models.Model): + """ + Tracks instance creations, updates, and (soft) deletions. + """ + uid = models.UUIDField( verbose_name=_("UUID"), unique=True, default=uuid.uuid4, editable=False ) @@ -41,5 +52,22 @@ class BaseModel(models.Model): verbose_name=_("Updated at"), auto_now=True, null=True, blank=True ) + deleted_by = models.ForeignKey( + to=user_model, + verbose_name=_("Deleted by"), + null=True, + blank=True, + related_name="%(class)s_deleted", + on_delete=models.SET_NULL, + ) + + deleted_at = models.DateTimeField(verbose_name=_("Deleted at"), null=True, blank=True) + + is_deleted = models.BooleanField(verbose_name=_("Is deleted"), default=False) + + objects = IsDeletedManager() + + objects_all = models.Manager() + class Meta: abstract = True diff --git a/apps/example_api/__init__.py b/apps/example/__init__.py similarity index 100% rename from apps/example_api/__init__.py rename to apps/example/__init__.py diff --git a/apps/example_api/api/__init__.py b/apps/example/api/__init__.py similarity index 100% rename from apps/example_api/api/__init__.py rename to apps/example/api/__init__.py diff --git a/apps/example_api/api/v1/__init__.py b/apps/example/api/v1/__init__.py similarity index 100% rename from apps/example_api/api/v1/__init__.py rename to apps/example/api/v1/__init__.py diff --git a/apps/example_api/api/v1/serializers.py b/apps/example/api/v1/serializers.py similarity index 100% rename from apps/example_api/api/v1/serializers.py rename to apps/example/api/v1/serializers.py diff --git a/apps/example_api/api/v1/urls.py b/apps/example/api/v1/urls.py similarity index 100% rename from apps/example_api/api/v1/urls.py rename to apps/example/api/v1/urls.py diff --git a/apps/example_api/api/v1/views.py b/apps/example/api/v1/views.py similarity index 100% rename from apps/example_api/api/v1/views.py rename to apps/example/api/v1/views.py diff --git a/apps/example_api/api/v2/__init__.py b/apps/example/api/v2/__init__.py similarity index 100% rename from apps/example_api/api/v2/__init__.py rename to apps/example/api/v2/__init__.py diff --git a/apps/example_api/api/v2/serializers.py b/apps/example/api/v2/serializers.py similarity index 100% rename from apps/example_api/api/v2/serializers.py rename to apps/example/api/v2/serializers.py diff --git a/apps/example_api/api/v2/urls.py b/apps/example/api/v2/urls.py similarity index 100% rename from apps/example_api/api/v2/urls.py rename to apps/example/api/v2/urls.py diff --git a/apps/example_api/api/v2/views.py b/apps/example/api/v2/views.py similarity index 100% rename from apps/example_api/api/v2/views.py rename to apps/example/api/v2/views.py diff --git a/apps/example_api/apps.py b/apps/example/apps.py similarity index 100% rename from apps/example_api/apps.py rename to apps/example/apps.py diff --git a/apps/example_api/management/__init__.py b/apps/example/management/__init__.py similarity index 100% rename from apps/example_api/management/__init__.py rename to apps/example/management/__init__.py diff --git a/apps/example_api/management/commands/__init__.py b/apps/example/management/commands/__init__.py similarity index 100% rename from apps/example_api/management/commands/__init__.py rename to apps/example/management/commands/__init__.py diff --git a/apps/example/management/commands/command.py b/apps/example/management/commands/command.py new file mode 100644 index 0000000..c68face --- /dev/null +++ b/apps/example/management/commands/command.py @@ -0,0 +1 @@ +# Your custom management commands go here. diff --git a/apps/example_api/migrations/__init__.py b/apps/example/migrations/__init__.py similarity index 100% rename from apps/example_api/migrations/__init__.py rename to apps/example/migrations/__init__.py diff --git a/apps/example_api/models.py b/apps/example/models.py similarity index 100% rename from apps/example_api/models.py rename to apps/example/models.py diff --git a/apps/example/services.py b/apps/example/services.py new file mode 100644 index 0000000..93888af --- /dev/null +++ b/apps/example/services.py @@ -0,0 +1 @@ +# Your services go here diff --git a/apps/example/urls.py b/apps/example/urls.py new file mode 100644 index 0000000..0865d84 --- /dev/null +++ b/apps/example/urls.py @@ -0,0 +1 @@ +# Your urls go here diff --git a/apps/example_api/api/v1/services.py b/apps/example_api/api/v1/services.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/example_api/api/v1/tests.py b/apps/example_api/api/v1/tests.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/example_api/api/v2/services.py b/apps/example_api/api/v2/services.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/example_api/api/v2/tests.py b/apps/example_api/api/v2/tests.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/example_api/management/commands/command.py b/apps/example_api/management/commands/command.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/example_api/urls.py b/apps/example_api/urls.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/example_api/utils.py b/apps/example_api/utils.py deleted file mode 100644 index e69de29..0000000