gapguide-api / apps /accounts /models.py
arifRB's picture
Deploy GapGuide backend (Docker)
ffd36e0 verified
Raw
History Blame Contribute Delete
1.25 kB
from django.conf import settings
from django.contrib.auth.models import AbstractUser
from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models
class User(AbstractUser):
ROLE_CHOICES = [
('STUDENT', 'Student'),
('ADMIN', 'Admin'),
]
name = models.CharField(max_length=255, blank=True)
email = models.EmailField(unique=True)
role_type = models.CharField(max_length=20, choices=ROLE_CHOICES, default='STUDENT')
created_at = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username', 'name']
def __str__(self):
return self.email
class UserProfile(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='profile'
)
degree = models.CharField(max_length=255, blank=True)
semester = models.IntegerField(
null=True, blank=True,
validators=[MinValueValidator(1), MaxValueValidator(12)]
)
interests = models.TextField(blank=True)
bio = models.TextField(blank=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return f'Profile of {self.user.email}'