from django.db import models

# Plan model for storing the general details of a plan
class Plan(models.Model):
    plan_name = models.CharField(max_length=100)
    speed = models.CharField(max_length=100, default='0')
    base_price = models.FloatField()
    data = models.CharField(max_length=50, default="Unlimited")  # Default value
    wifi_router = models.CharField(max_length=3, default="Yes")  # Default value
    tv_channels = models.IntegerField(default=350)  # Default value
    setup_fee = models.CharField(max_length=50, default="-")  # Default value
    otts = models.IntegerField(default=21)  # Default value
    hotstar = models.CharField(max_length=50, default="-")  # Default value
    prime = models.CharField(max_length=50, default="No")  # Default value
    
    def __str__(self):
        return self.plan_name

# BillingCycle model to store pricing based on billing cycle
class BillingCycle(models.Model):
    plan = models.ForeignKey(Plan, related_name='billing_cycles', on_delete=models.CASCADE)
    type = models.CharField(max_length=50, choices=[('Monthly', 'Monthly'), 
                                                   ('Quarterly', 'Quarterly'),
                                                   ('Half Yearly', 'Half Yearly'),
                                                   ('Yearly', 'Yearly')], default='Monthly')  # Default value
    price = models.FloatField()
    
    def __str__(self):
        return f'{self.plan.plan_name} - {self.type}'
    


    from django.db import models
from django.utils.translation import gettext_lazy as _

class Zone(models.Model):
    class ServiceType(models.TextChoices):
        SKYLINK = 'Skylink', _('Skylink')
        SKYPLAY = 'Skyplay', _('Skyplay')

    id = models.AutoField(primary_key=True)
    zone_name = models.CharField(max_length=255, null=True, blank=True)
    service_type = models.CharField(
        max_length=50,
        choices=ServiceType.choices,
        null=True,
        blank=True,
        help_text='Specifies the service type: Skylink (broadband) or Skyplay (IPTV)'
    )
    active_status = models.BooleanField(default=True)

    def __str__(self):
        return self.zone_name or f"Zone {self.id}"

