from django.db import models from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin from django.utils import timezone from .managers import UserManager class User(AbstractBaseUser, PermissionsMixin): username = models.CharField(max_length=150, unique=True) email = models.EmailField(unique=True) avatar = models.CharField( max_length=50, default="p1.png" ) is_email_verified = models.BooleanField(default=False) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) date_joined = models.DateTimeField(default=timezone.now) objects = UserManager() USERNAME_FIELD = "username" REQUIRED_FIELDS = ["email"] def __str__(self): return self.username class EmailOTP(models.Model): email = models.EmailField() otp = models.CharField(max_length=6) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f"{self.email} - {self.otp}"