from django.db import models
from apps.core.models import User
from coresite.mixin import AbstractTimeStampModel


class UserProfile(AbstractTimeStampModel):
    user = models.OneToOneField(
        User, on_delete=models.CASCADE, related_name='profile')
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    image = models.ImageField(upload_to='images', blank=True, null=True)
    phone_number = models.CharField(max_length=20, blank=True, null=True)
    send_booking_emails = models.BooleanField(
        default=False,
        blank=True, null=True,
    )

    def __str__(self):
        return self.full_name
    
    @property
    def full_name(self):
        return f"{self.first_name} {self.last_name}".strip()

    class Meta:
        verbose_name = 'User Profile'
        verbose_name_plural = 'User Profiles'
