from django.db import models
from django.contrib.auth.models import User


class UserModel(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='token_of')
    refresh_token = models.CharField(max_length=120, null=True, blank=True)
    gmb_account_id = models.CharField(max_length=30, null=True, blank=True)
    access_token = models.CharField(max_length=255, null=True, blank=True)
    expiry = models.DateTimeField(null=True, blank=True)

    def __str__(self):
        return self.user.username


class Location(models.Model):
    location_id = models.CharField(max_length=50, primary_key=True)
    care_name = models.CharField(max_length=50, null=True, blank=True)
    location_name = models.CharField(max_length=120)
    website_url = models.URLField()
    review_site_url = models.URLField(null=True, blank=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True)

    def __str__(self):
        return self.care_name if self.care_name else self.location_name


class LocationManager(models.Model):
    name = models.CharField(max_length=255)
    email = models.EmailField()
    location = models.ForeignKey(Location, on_delete=models.CASCADE)

    def __str__(self):
        return f"{self.name} - {self.location.care_name}"