from django.db import models

class HeroSection(models.Model):
    title = models.CharField(max_length=200, default="XXXVI Annual Conference & International Symposium")
    subtitle = models.TextField(default="Global Perspectives in Angiosperm Systematics")
    date_text = models.CharField(max_length=100, default="November 20–22, 2026")
    location_text = models.CharField(max_length=200, default="Guru Ghasidas Vishwavidyalaya, Bilaspur")
    registration_link = models.CharField(max_length=200, default="/register/")
    is_active = models.BooleanField(default=True)
    
    def __str__(self):
        return self.title

class AboutSection(models.Model):
    heading = models.CharField(max_length=200, default="About the Conference")
    subheading = models.CharField(max_length=200, default="Rooted in Taxonomic Excellence")
    description = models.TextField(default="The XXXVI Annual Conference of the IAAT serves as the premier convergence point...")
    established_year = models.CharField(max_length=50, default="1990")
    headquarters = models.CharField(max_length=100, default="University of Calicut, Kerala")
    edition = models.CharField(max_length=50, default="XXXVI")
    dates = models.CharField(max_length=100, default="Nov 20–22, 2026")
    
    def __str__(self):
        return self.heading

class ConferenceTheme(models.Model):
    title = models.CharField(max_length=200)
    icon_name = models.CharField(max_length=50, help_text="Material Icon name (e.g., 'forest', 'biotech')")
    description = models.TextField(blank=True)
    subtopics = models.TextField(help_text="One per line")
    order = models.IntegerField(default=0)
    is_active = models.BooleanField(default=True)
    
    class Meta:
        ordering = ['order']
        
    def __str__(self):
        return self.title
        
    def get_subtopics_list(self):
        return [t.strip() for t in self.subtopics.split('\n') if t.strip()]

class ScheduleSession(models.Model):
    day_number = models.IntegerField(default=1)
    date = models.DateField()
    start_time = models.TimeField()
    end_time = models.TimeField(blank=True, null=True)
    title = models.CharField(max_length=200)
    description = models.TextField(blank=True)
    venue = models.CharField(max_length=100)
    speaker_name = models.CharField(max_length=100, blank=True)
    
    class Meta:
        ordering = ['day_number', 'start_time']
        
    def __str__(self):
        return f"Day {self.day_number} - {self.title}"

class CommitteeMember(models.Model):
    CATEGORY_CHOICES = (
        ('OFFICE', 'Office Bearers'),
        ('INTERNATIONAL', 'International Advisory'),
        ('NATIONAL', 'National Advisory'),
        ('LOCAL', 'Local Organizing'),
    )
    category = models.CharField(max_length=20, choices=CATEGORY_CHOICES)
    name = models.CharField(max_length=100)
    designation = models.CharField(max_length=100, blank=True)
    institution = models.CharField(max_length=200, blank=True)
    order = models.IntegerField(default=0)
    
    class Meta:
        ordering = ['order', 'name']
        
    def __str__(self):
        return f"{self.name} ({self.get_category_display()})"

class Award(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    eligibility = models.TextField(help_text="One per line")
    order = models.IntegerField(default=0)
    
    class Meta:
        ordering = ['order']
        
    def __str__(self):
        return self.title
        
    def get_eligibility_list(self):
        return [e.strip() for e in self.eligibility.split('\n') if e.strip()]

class Sponsor(models.Model):
    name = models.CharField(max_length=100)
    logo = models.ImageField(upload_to='sponsors/', blank=True, null=True)
    website = models.URLField(blank=True)
    category = models.CharField(max_length=50, default="Supporter")
    order = models.IntegerField(default=0)
    
    class Meta:
        ordering = ['order']
        
    def __str__(self):
        return self.name
