from django.db import models
import base64


class SiteSetting(models.Model):
    key = models.CharField(max_length=255, unique=True)
    value = models.TextField(default='')

    def save(self, *args, **kwargs):
        # Encode before saving
        if self.value:
            self.value = base64.b64encode(self.value.encode()).decode()
        super().save(*args, **kwargs)

    def decoded_value(self):
        try:
            return base64.b64decode(self.value.encode()).decode()
        except Exception:
            return "Invalid"
        
        

    def __str__(self):
        return f"{self.key}"



class PaymentGatewaySettings(models.Model):
    GATEWAY_CHOICES = (
        ('razorpay', 'Razorpay'),
        ('cashfree', 'Cashfree'),
    )

    gateway = models.CharField(max_length=20, choices=GATEWAY_CHOICES, unique=True)
    active = models.BooleanField(default=True)
    logo = models.ImageField(upload_to="gateway_logos/", blank=True, null=True)  
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f"{self.get_gateway_display()} ({'Active' if self.active else 'Inactive'})"