from django.contrib.auth import models as auth_models from django.db import models from ..choices import RoleChoice, AccountType from ..managers import UserManager from model_bakery import baker class User(auth_models.AbstractUser): phone = models.CharField(max_length=255, unique=True) username = models.CharField(max_length=255, null=True, blank=True) 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, default=RoleChoice.USER, ) avatar = models.ImageField("Avatar", upload_to="avatars/", default="avatars/default.png") USERNAME_FIELD = "phone" objects = UserManager() @classmethod def _baker(cls): return baker.make(cls) def __str__(self): return self.phone