Modellar tayyor

This commit is contained in:
2025-11-24 11:46:23 +05:00
parent 3da10c2a7f
commit 5632e0c484
48 changed files with 877 additions and 33 deletions

View File

@@ -1,3 +1,7 @@
# isort: skip_file
from .user import * # noqa
from .reset_token import * # noqa
from .address import * # noqa
from .business import * # noqa
from .user_like import * # noqa
from .search_history import * # noqa

View File

@@ -0,0 +1,18 @@
from django.db import models
from django_core.models.base import AbstractBaseModel
from django.utils.translation import gettext_lazy as _
from django.contrib.auth import get_user_model
class Address(AbstractBaseModel):
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='addresses',
verbose_name=_('User'))
name = models.CharField(max_length=255, verbose_name=_('Name'))
def __str__(self):
return str(self.pk)
class Meta:
db_table = 'address'
verbose_name = _('Address')
verbose_name_plural = _('Addresses')

View File

@@ -0,0 +1,26 @@
from django.db import models
from django_core.models.base import AbstractBaseModel
from django.utils.translation import gettext_lazy as _
from django.contrib.auth import get_user_model
class Business(AbstractBaseModel):
name = models.CharField(max_length=255, verbose_name=_('Business Name'))
user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE)
work_time = models.CharField(max_length=255, verbose_name=_('Work Time'))
contact = models.CharField(max_length=255, verbose_name=_('Contact'))
instagram = models.CharField(max_length=255, verbose_name=_('Instagram'))
facebook = models.CharField(max_length=255, verbose_name=_('Facebook'))
telegram = models.CharField(max_length=255, verbose_name=_('Telegram'))
bio = models.TextField(verbose_name=_('Bio'))
address_name = models.CharField(max_length=255, verbose_name=_('Address Name'))
longitude = models.FloatField(verbose_name=_('Longitude'))
latitude = models.FloatField(verbose_name=_('Latitude'))
def __str__(self):
return str(self.pk)
class Meta:
db_table = 'business'
verbose_name = _('Business')
verbose_name_plural = _('Business')

View File

@@ -0,0 +1,35 @@
from django.db import models
from django_core.models.base import AbstractBaseModel
from django.utils.translation import gettext_lazy as _
from core.apps.accounts.choices import NotificationType
from django.contrib.auth import get_user_model
class Notification(AbstractBaseModel):
title = models.CharField(max_length=255, verbose_name=_("Title"))
description = models.TextField(verbose_name=_("Description"))
notification_type = models.CharField(max_length=255, choices=NotificationType, verbose_name=_("Type"))
long = models.FloatField(verbose_name=_("Long"))
lat = models.FloatField(verbose_name=_("Lat"))
def __str__(self):
return str(self.pk)
class Meta:
db_table = "notification"
verbose_name = _("Notification")
verbose_name_plural = _("Notifications")
class UserNotification(AbstractBaseModel):
user = models.ForeignKey(get_user_model(), verbose_name=_("User"), on_delete=models.CASCADE)
notification = models.ForeignKey(Notification, verbose_name=_("Notification"), on_delete=models.CASCADE)
is_read = models.BooleanField(verbose_name=_("Read"), default=False)
def __str__(self):
return str(self.pk)
class Meta:
db_table = "user_notification"
verbose_name = _("User Notification")
verbose_name_plural = _("User Notifications")

View File

@@ -0,0 +1,17 @@
from django.db import models
from django_core.models.base import AbstractBaseModel
from django.utils.translation import gettext_lazy as _
from django.contrib.auth import get_user_model
class SearchHistory(AbstractBaseModel):
value = models.CharField(verbose_name=_('Search History'), max_length=255)
user = models.ForeignKey(get_user_model(), verbose_name=_('User'), on_delete=models.CASCADE)
def __str__(self):
return str(self.pk)
class Meta:
db_table = 'search_history'
verbose_name = _('Search History')
verbose_name_plural = _('Search History')

View File

@@ -1,7 +1,7 @@
from django.contrib.auth import models as auth_models
from django.db import models
from ..choices import RoleChoice
from ..choices import RoleChoice, AccountType
from ..managers import UserManager
@@ -11,6 +11,8 @@ class User(auth_models.AbstractUser):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
validated_at = models.DateTimeField(null=True, blank=True)
is_verify = models.BooleanField(default=False)
account_type = models.CharField(choices=AccountType, max_length=255, default=AccountType.PERSONAL)
role = models.CharField(
max_length=255,
choices=RoleChoice,

View File

View File

@@ -0,0 +1,31 @@
from django.db import models
from django_core.models.base import AbstractBaseModel
from django.utils.translation import gettext_lazy as _
from django.contrib.auth import get_user_model
class Plan(AbstractBaseModel):
name = models.CharField(verbose_name=_("Name"), max_length=255)
price = models.DecimalField(verbose_name=_("Price"), max_digits=10, decimal_places=2)
def __str__(self):
return str(self.id)
class Meta:
db_table = "plan"
verbose_name = _("Plan")
verbose_name_plural = _("Plans")
class UserPlan(AbstractBaseModel):
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, verbose_name=_("User"))
plan = models.ForeignKey(Plan, on_delete=models.CASCADE, verbose_name=_("Plan"))
expire = models.DateTimeField(verbose_name=_("Expire"))
def __str__(self):
return str(self.id)
class Meta:
db_table = "user_plan"
verbose_name = _("User Plan")
verbose_name_plural = _("User Plans")