from django.db import models
import uuid

class App(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    company = models.ForeignKey("companies.Company", on_delete=models.CASCADE, related_name="apps")
    name = models.CharField(max_length=255)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f"{self.company.name} - {self.name}"


class APIKey(models.Model):
    key = models.CharField(max_length=40, unique=True)
    app = models.ForeignKey(App, on_delete=models.CASCADE, related_name="keys")
    created_at = models.DateTimeField(auto_now_add=True)
    revoked = models.BooleanField(default=False)

    def __str__(self):
        return f"Key for {self.app.name} ({'revoked' if self.revoked else 'active'})"
    

class ReviewPageBranding(models.Model):
    app = models.OneToOneField(
        "App",
        on_delete=models.CASCADE,
        related_name="branding"
    )
    logo = models.URLField(blank=True, null=True)
    headline = models.CharField(max_length=255, default="Share your feedback")
    subtext = models.TextField(blank=True, default="We value your opinion")
    thank_you_message = models.TextField(blank=True, default="Thank you for your review!")
    redirect_url = models.URLField(blank=True, null=True)
    google_link = models.URLField(blank=True, null=True)
    tripadvisor_link = models.URLField(blank=True, null=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f"Branding for {self.app.name}"
