You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
TeamFlash/sahara/main/models.py

41 lines
1.6 KiB

from django.contrib.auth.models import AbstractUser
from django.db import models
class BaseUser(AbstractUser):
# Additional fields to extend the default user model
# Profile-related fields
image = models.ImageField(upload_to='user_profiles/', blank=True, null=True)
bio = models.TextField(blank=True, null=True)
address = models.TextField(blank=True, null=True)
contact_number = models.CharField(max_length=15, blank=True, null=True)
citizenship = models.CharField(max_length=100, blank=True, null=True)
certificate = models.FileField(upload_to='certificates/', blank=True, null=True)
# Verification and status
is_verified = models.BooleanField(default=False)
# Financial or business-related fields
price = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
ratings = models.DecimalField(max_digits=3, decimal_places=2, default=0.00)
# Role and other identifiers
role = models.CharField(
max_length=50,
choices=[('CLIENT', 'CLIENT'), ('ADMIN', 'ADMIN'), ('SERVICE_PROVIDER', 'SERVICE_PROVIDER')],
default='CLIENT'
)
# Time-related fields
member_since = models.DateTimeField(auto_now_add=True)
profile_updated = models.DateTimeField(auto_now=True)
# Token field for verification or authentication purposes
token = models.CharField(max_length=256, blank=True, null=True)
def __str__(self):
return self.username
class Meta:
verbose_name = 'Base User'
verbose_name_plural = 'Base Users'