from django.db import models
from blog.models import BlogPost
# Create your models here.
class BlogView(models.Model):
    blog = models.ForeignKey(BlogPost, on_delete=models.CASCADE, related_name='view_events')
    visitor_id = models.CharField(max_length=100)
    viewed_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        indexes = [
            models.Index(fields=['blog', 'visitor_id']),
            models.Index(fields=['visitor_id']),
            models.Index(fields=['blog']),
        ]
        unique_together = ("blog", "visitor_id")

class VisitorSession(models.Model):
    session_id = models.CharField(max_length=255, unique=True)
    first_seen = models.DateTimeField(auto_now_add=True)
    last_seen = models.DateTimeField(auto_now=True)
    user_agent = models.TextField()
    ip_hash = models.CharField(max_length=255)

class NewsletterClick(models.Model):
    page_url = models.CharField(max_length=500)
    button_name = models.CharField(max_length=100)
    session = models.ForeignKey(VisitorSession, on_delete=models.CASCADE)
    clicked_at = models.DateTimeField(auto_now_add=True)


class CTAEvent(models.Model):

    CTA_TYPES = [
        ("newsletter", "Newsletter"),
        ("contact", "Contact"),
        ("consultation", "Consultation"),
        ("product", "Product"),
    ]

    visitor_id = models.CharField(
        max_length=100
    )

    blog = models.ForeignKey(
        BlogPost,
        null=True,
        blank=True,
        on_delete=models.SET_NULL
    )

    event_type = models.CharField(
        max_length=50,
        choices=CTA_TYPES
    )

    created_at = models.DateTimeField(
        auto_now_add=True
    )


