48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from django.conf import settings
|
|
from django.db import models
|
|
|
|
|
|
class ClientProfile(models.Model):
|
|
TIMEZONE_CHOICES = [
|
|
("UTC", "UTC"),
|
|
("America/New_York", "America/New York"),
|
|
("America/Chicago", "America/Chicago"),
|
|
("America/Denver", "America/Denver"),
|
|
("America/Los_Angeles", "America/Los Angeles"),
|
|
("Europe/London", "Europe/London"),
|
|
("Europe/Berlin", "Europe/Berlin"),
|
|
("Asia/Dubai", "Asia/Dubai"),
|
|
("Asia/Tehran", "Asia/Tehran"),
|
|
("Asia/Tokyo", "Asia/Tokyo"),
|
|
("Australia/Sydney", "Australia/Sydney"),
|
|
]
|
|
|
|
user = models.OneToOneField(
|
|
settings.AUTH_USER_MODEL,
|
|
on_delete=models.CASCADE,
|
|
related_name="client_profile",
|
|
)
|
|
company = models.CharField(max_length=200, blank=True)
|
|
phone = models.CharField(max_length=50, blank=True)
|
|
timezone = models.CharField(
|
|
max_length=64,
|
|
choices=TIMEZONE_CHOICES,
|
|
default="UTC",
|
|
)
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
class Meta:
|
|
verbose_name = "Client Profile"
|
|
verbose_name_plural = "Client Profiles"
|
|
|
|
def __str__(self):
|
|
return self.user.get_full_name() or self.user.email or str(self.user.pk)
|
|
|
|
@property
|
|
def display_name(self):
|
|
full_name = self.user.get_full_name().strip()
|
|
if full_name:
|
|
return full_name
|
|
return self.user.email
|