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