From 627f841ec7b44a5e6970e3feb3d3a93e346d785c Mon Sep 17 00:00:00 2001 From: PouyaKhajavi Date: Sat, 8 Aug 2026 11:05:58 +0330 Subject: [PATCH] feat(core): initialize core app with abstract UUID and timestamp models --- backend/config/settings.py | 3 +++ backend/core/__init__.py | 0 backend/core/admin.py | 3 +++ backend/core/apps.py | 5 +++++ backend/core/migrations/__init__.py | 0 backend/core/models.py | 21 +++++++++++++++++++++ backend/core/tests.py | 3 +++ backend/core/views.py | 3 +++ 8 files changed, 38 insertions(+) create mode 100644 backend/core/__init__.py create mode 100644 backend/core/admin.py create mode 100644 backend/core/apps.py create mode 100644 backend/core/migrations/__init__.py create mode 100644 backend/core/models.py create mode 100644 backend/core/tests.py create mode 100644 backend/core/views.py diff --git a/backend/config/settings.py b/backend/config/settings.py index 3f9d58e..014ce18 100644 --- a/backend/config/settings.py +++ b/backend/config/settings.py @@ -45,6 +45,9 @@ INSTALLED_APPS = [ # Third party apps 'rest_framework', 'corsheaders', + + # Local apps + 'core', ] MIDDLEWARE = [ diff --git a/backend/core/__init__.py b/backend/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/core/admin.py b/backend/core/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/backend/core/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/core/apps.py b/backend/core/apps.py new file mode 100644 index 0000000..26f78a8 --- /dev/null +++ b/backend/core/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class CoreConfig(AppConfig): + name = 'core' diff --git a/backend/core/migrations/__init__.py b/backend/core/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/core/models.py b/backend/core/models.py new file mode 100644 index 0000000..af552ab --- /dev/null +++ b/backend/core/models.py @@ -0,0 +1,21 @@ +import uuid +from django.db import models + +class BaseModel(models.Model): + """ + Abstract base model that uses a UUID for its primary key instead of an integer. + """ + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + + class Meta: + abstract = True + +class TimeStampedModel(BaseModel): + """ + Abstract base model that adds self-updating created_at and updated_at fields. + """ + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + abstract = True diff --git a/backend/core/tests.py b/backend/core/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/backend/core/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/core/views.py b/backend/core/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/backend/core/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.