from django.db import models
from django.utils import timezone
from datetime import timedelta


# Create your models here.
class Channel(models.Model):
    channel_id = models.CharField(max_length=20, default='0')
    name = models.CharField(max_length=100, blank=True, null=True)
    order = models.IntegerField(blank=True, null=True)
    link = models.CharField(max_length=255, blank=True, null=True)
    price = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)

    def __str__(self):
        return self.name
    

class Tariff(models.Model):
    tariffs_id = models.CharField(max_length=20, unique=True)  # Tariff ID from the API
    name = models.CharField(max_length=100, blank=True, null=True)

    def __str__(self):
        return self.name or f"Tariff {self.tariffs_id}"
    
class SkylinkIPTVPlan(models.Model):
    PLAN_STATUS_CHOICES = [
        ('active', 'Active'),
        ('inactive', 'Inactive'),
    ]

    name = models.CharField(max_length=100)
    code = models.CharField(max_length=50, unique=True)
    tariffs = models.ManyToManyField(Tariff, blank=True)  # Optional many-to-many relationship
    status = models.CharField(max_length=10, choices=PLAN_STATUS_CHOICES, default='active')
    amount = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)

    bandwidth_verified_flag = models.BooleanField(default=False)
    bandwidth = models.CharField(max_length=50, blank=True, null=True)

    def __str__(self):
        return self.name
    
def get_expiration_date():
    return timezone.now() + timedelta(days=30)

class IPTVActivationLog(models.Model):
    client_id = models.CharField(max_length=255, blank=True, null=True)
    phone_number = models.CharField(max_length=15, blank=True, null=True)
    activation_date = models.DateTimeField(auto_now_add=True)
    status = models.CharField(max_length=50, default='Success', blank=True, null=True)
    message = models.TextField(blank=True, null=True)
    input = models.JSONField(null=True, blank=True)
    output = models.JSONField(null=True, blank=True)
    response_status = models.IntegerField(null=True, blank=True)
    endpoint = models.CharField(max_length=5000, blank=True, null=True)
    expired_date = models.DateTimeField(blank=True, null=True)  # Added expired_date field
    activation_code = models.CharField(max_length=255, blank=True, null=True)  # Added activation_code field

    def __str__(self):
        return f"IPTV Activation - {self.client_id or 'Unknown'}"

    
    