Files
simple-travel-backend/core/apps/accounts/models/user.py
2025-09-19 15:19:32 +05:00

34 lines
1.0 KiB
Python

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",
)