first commit

This commit is contained in:
2025-09-19 15:19:32 +05:00
commit d160410cd9
305 changed files with 9509 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
# isort: skip_file
from .user import * # noqa
from .reset_token import * # noqa
from .likes import * # noqa
from .participant import * # noqa

View File

@@ -0,0 +1,27 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from django_core.models import AbstractBaseModel
from .user import User
from core.apps.tickets.models.tickets import TicketsModel
class LikesModel(AbstractBaseModel):
user = models.ForeignKey(User, verbose_name=_('user'), on_delete=models.CASCADE)
ticket = models.ForeignKey(TicketsModel, verbose_name=_('ticket'), on_delete=models.CASCADE)
created_at = models.DateTimeField(verbose_name=_("created at"), auto_now_add=True)
def __str__(self):
return str(self.pk)
@classmethod
def _create_fake(self):
return self.objects.create(
user=User._create_fake(),
ticket=TicketsModel._create_fake(),
)
class Meta:
unique_together = ('user', 'ticket')
db_table = "likes"
verbose_name = _("LikesModel")
verbose_name_plural = _("LikesModels")

View File

@@ -0,0 +1,53 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from django_core.models import AbstractBaseModel
class ParticipantModel(AbstractBaseModel):
GenderChoices = (
('Male', 'Male'),
('Female', 'Female'),
)
gender = models.CharField(verbose_name=_("gender"), max_length=255, choices=GenderChoices, default='Male')
first_name = models.CharField(verbose_name=_("first name"), max_length=255)
last_name = models.CharField(verbose_name=_("last name"), max_length=255)
birth_date = models.DateField(verbose_name=_("birth date"))
phone_number = models.CharField(verbose_name=_("phone number"), max_length=255)
def __str__(self):
return str(self.pk)
@classmethod
def _create_fake(self):
return self.objects.create(
first_name="mock",
last_name="mock",
birth_date="2025-09-19",
phone_number="998940105669",
)
class Meta:
db_table = "participant"
verbose_name = _("ParticipantModel")
verbose_name_plural = _("ParticipantModels")
class ParticipantPasportImageModel(AbstractBaseModel):
image = models.ImageField(verbose_name=_("image"), upload_to="participant_images/")
participant = models.ForeignKey(ParticipantModel, related_name="participant_pasport_image",
on_delete=models.CASCADE)
def __str__(self):
return str(self.pk)
@classmethod
def _create_fake(self):
return self.objects.create(
image="resources/static/images/default_avatar.jpg",
participant=ParticipantModel._create_fake(),
)
class Meta:
db_table = "participant_pasport_image"
verbose_name = _("ParticipantPasportImageModel")
verbose_name_plural = _("ParticipantPasportImageModels")

View File

@@ -0,0 +1,15 @@
from django.contrib.auth import get_user_model
from django.db import models
from django_core.models import AbstractBaseModel
class ResetToken(AbstractBaseModel):
token = models.CharField(max_length=255, unique=True)
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
def __str__(self):
return self.token
class Meta:
verbose_name = "Reset Token"
verbose_name_plural = "Reset Tokens"

View File

@@ -0,0 +1,33 @@
from django.contrib.auth import models as auth_models
from django.db import models
from ..choices import RoleChoice
from ..managers import UserManager
class User(auth_models.AbstractUser):
phone = models.CharField(max_length=255, unique=True, null=True, blank=True)
email = models.EmailField(unique=True, null=True, blank=True)
username = models.CharField(max_length=255, null=True, blank=True)
avatar = models.ImageField(default="static/images/default_avatar.jpg", upload_to="avatars/")
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
validated_at = models.DateTimeField(null=True, blank=True)
role = models.CharField(
max_length=255,
choices=RoleChoice,
default=RoleChoice.USER,
)
USERNAME_FIELD = "phone"
objects = UserManager()
def __str__(self):
return self.username
@classmethod
def _create_fake(self):
return self.objects.create(
phone="998940105669",
username="mock",
)