from django.db import models

from django.db import models
from django.db import models



from django.db import models

class HomeBanner(models.Model):
    subtitle = models.CharField(max_length=150, help_text="Small text ex: Your Digital Edge")
    title = models.CharField(max_length=300, help_text="Main heading ex: Maximize visibility with digital marketing")
    video_file = models.FileField(upload_to='banner_videos/', blank=True, null=True)


    class Meta:
        verbose_name = "Homepage Banner"
        verbose_name_plural = "Homepage Banner"

    def __str__(self):
        return self.subtitle



# --------------------------------
# SERVICE MODEL (For website Home page services section)
# --------------------------------
class Service(models.Model):
    name = models.CharField(
        max_length=200,
        help_text="Enter the main service name (Example: Web Development)"
    )
    icon = models.CharField(
        max_length=100,
        help_text="FontAwesome icon (Example: fa-solid fa-graduation-cap)"
    )
    short_title_description = models.CharField(
            max_length=300,
            blank=True,
            null=True,
            help_text="Enter a short description or tagline for this service (Optional)"
        )

    service_long_description = models.TextField(
        blank=True,
        null=True,
        help_text="Detailed description of the service"
    )
    main_image = models.ImageField(
        upload_to="services/", blank=True, null=True
    )
    short_image = models.ImageField(
        upload_to="services/", blank=True, null=True
    )

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "Service"
        verbose_name_plural = "Services"
        ordering = ["name"]



# --------------------------------
# MAIN CATEGORY (B.Tech, M.Tech, Diploma etc.)
# --------------------------------
class MainCategory(models.Model):
    LEVEL_CHOICES = (
        ('UG', 'Undergraduate'),
        ('PG', 'Postgraduate'),
    )

    name = models.CharField(max_length=100, unique=True)

    icon = models.CharField(
        max_length=100,
        help_text="FontAwesome icon (Example: fa-solid fa-graduation-cap)"
    )

    level = models.CharField(
        max_length=2,
        choices=LEVEL_CHOICES,
        default='UG'   # ✅ IMPORTANT: prevents empty level
    )

    is_active = models.BooleanField(default=True)

    def __str__(self):
        # Safe even if level is empty in old records
        return f"{self.name} ({self.get_level_display() or 'N/A'})"

    class Meta:
        ordering = ['name']



# --------------------------------
# CATEGORY (Example: CSE, ECE, IT, Electrical)
# --------------------------------
class Category(models.Model):
    main_category = models.ForeignKey(
        MainCategory,
        on_delete=models.CASCADE,
        related_name="categories"
    )
    name = models.CharField(max_length=150)

    image = models.ImageField(
        upload_to="category_images/",
        help_text="Upload category image (PNG / JPG)"
    )

    def __str__(self):
        return f"{self.main_category.name} - {self.name}"

    class Meta:
        ordering = ['name']


# --------------------------------
# SUBCATEGORY (Mini Project, Major Project, AI Project etc.)
# --------------------------------
class SubCategory(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="subcategories")
    name = models.CharField(max_length=150)
    icon = models.CharField(
        max_length=100,
        help_text="FontAwesome icon (Example: fa-solid fa-graduation-cap)"
    )

    def __str__(self):
        return f"{self.category.main_category.name} - {self.category.name} - {self.name}"

    class Meta:
        ordering = ['name']


# --------------------------------
# PROJECT MODEL
# --------------------------------
class Project(models.Model):
    sub_category = models.ForeignKey(SubCategory, on_delete=models.CASCADE, related_name="projects")
    title = models.CharField(max_length=300)
    description = models.TextField(blank=True, null=True)
    base_paper = models.FileField(upload_to="base_papers/", blank=True, null=True)
    demo_video = models.FileField(upload_to="demo_videos/", blank=True, null=True)
    source_code = models.FileField(upload_to="source_code/", blank=True, null=True)
    price = models.DecimalField(max_digits=10, decimal_places=2, default=0)
    created_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

    class Meta:
        ordering = ['title']



from django.db import models

class RealTimeInquiry(models.Model):
    name = models.CharField(max_length=150)
    email = models.EmailField()
    subject = models.CharField(max_length=200)
    phone = models.CharField(max_length=20, blank=True, null=True)
    message = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['-created_at']

    def __str__(self):
        return f"{self.name} - {self.subject}"


# models.py
from django.db import models

class ProjectTitle(models.Model):
    category = models.ForeignKey(Category, related_name="projects", on_delete=models.CASCADE)
    title = models.CharField(max_length=300, help_text="Enter project name")

    def __str__(self):
        return f"{self.category} - {self.title}"
