from django.db import models
from product_module.models import Product
from django.utils import timezone

# Create your models here.

class SiteSetting(models.Model):
    site_name = models.CharField(max_length=200, verbose_name='نام سایت')
    title_url = models.CharField(max_length=200, verbose_name='دامنه سایت')
    contact_us = models.CharField(max_length=300, verbose_name='تماس با ما')
    
    is_main_setting = models.BooleanField(
        default=True,
        verbose_name='تنظیمات اصلی سایت',
        help_text='فقط یک مورد باید True باشد'
    )

    address = models.CharField(max_length=300, verbose_name='آدرس')
    phone = models.CharField(max_length=200, null=True, blank=True, verbose_name='تلفن')
    fax = models.CharField(max_length=200, null=True, blank=True, verbose_name='فکس')
    
    email = models.EmailField(
        max_length=200,
        null=True,
        blank=True,
        verbose_name='ایمیل'
    )

    description = models.TextField(verbose_name='توضیحات')
    copy_right = models.TextField(verbose_name='متن کپی رایت')
    site_logo = models.ImageField(
        upload_to='images/site-setting/',
        verbose_name='لوگوی سایت'
    )
    
    # فیلدهای جدید برای شبکه‌های اجتماعی
    instagram = models.URLField(
        blank=True,
        null=True,
        verbose_name='لینک اینستاگرام'
    )
    telegram = models.URLField(
        blank=True,
        null=True,
        verbose_name='لینک تلگرام'
    )
    linkedin = models.URLField(
        blank=True,
        null=True,
        verbose_name='لینک لینکدین'
    )
    twitter = models.URLField(
        blank=True,
        null=True,
        verbose_name='لینک توییتر'
    )
    facebook = models.URLField(
        blank=True,
        null=True,
        verbose_name='لینک فیس بوک'
        )


    # فیلد جدید برای کد اینماد
    enamad_code = models.TextField(
        blank=True,
        null=True,
        verbose_name='کد اینماد (HTML/JS)'
    )

    class Meta:
        verbose_name = 'تنظیمات سایت'
        verbose_name_plural = 'تنظیمات'

    def __str__(self):
        return self.site_name

class FooterLinkBox(models.Model):
    title = models.CharField(max_length=200, verbose_name='عنوان')

    class Meta:
        verbose_name = 'دسته بندی لینکهای فوتر'
        verbose_name_plural = 'دسته بندی های لینک های فوتر'

    def __str__(self):
        return self.title


class FooterLink(models.Model):
    title = models.CharField(max_length=200, verbose_name='عنوان')

    # این فیلد مشخص می‌کند لینک داخلی است یا خارجی
    is_internal = models.BooleanField(
        default=True,
        verbose_name='لینک داخلی است؟'
    )

    # لینک داخلی مثل:  "/about/"  
    internal_url = models.CharField(
        max_length=300,
        null=True,
        blank=True,
        verbose_name='لینک داخلی'
    )

    # لینک خارجی
    external_url = models.URLField(
        max_length=500,
        null=True,
        blank=True,
        verbose_name='لینک خارجی'
    )

    footer_link_box = models.ForeignKey(
        FooterLinkBox,
        on_delete=models.CASCADE,
        related_name="links",
        verbose_name='دسته بندی'
    )

    class Meta:
        verbose_name = 'لینک فوتر'
        verbose_name_plural = 'لینکهای فوتر'

    def __str__(self):
        return self.title

    @property
    def get_url(self):
        if self.is_internal:
            return self.internal_url
        return self.external_url


from django.db import models



class Slider(models.Model):
    title = models.CharField(max_length=200, verbose_name='عنوان')
    description = models.TextField(verbose_name='توضیحات اسلایدر')

    # متن دکمه (اختیاری)
    button_text = models.CharField(max_length=100, blank=True, null=True, verbose_name='متن دکمه')

    # لینک دستی (اختیاری)
    link = models.CharField(max_length=500, blank=True, null=True, verbose_name='لینک')

    # اتصال مستقیم به محصول
    product = models.ForeignKey(
        Product,
        on_delete=models.SET_NULL,
        null=True,
        blank=True,
        related_name='sliders',
        verbose_name='محصول مرتبط (اختیاری)'
    )

    image = models.ImageField(upload_to='images/sliders', verbose_name='تصویر اسلایدر')

    # ترتیب نمایش
    ordering = models.IntegerField(default=0, verbose_name='ترتیب نمایش')

    # فعال / غیرفعال
    is_active = models.BooleanField(default=True, verbose_name='فعال / غیرفعال')

    created_at = models.DateTimeField(default=timezone.now)

    class Meta:
        verbose_name = 'اسلایدر'
        verbose_name_plural = 'اسلایدرها'
        ordering = ['ordering', '-created_at']

    def __str__(self):
        return self.title

    def get_link(self):
        """اولویت: لینک محصول → لینک دستی → هیچ‌چیز"""
        if self.product:
            return self.product.get_absolute_url()
        return self.link

class SiteBanner(models.Model):
    class SiteBannerPositions(models.TextChoices):
        product_list = 'product_list', 'صفحه لیست محصولات',
        product_detail = 'product_detail', 'صفحه ی جزییات محصولات',
        about_us = 'about_us', 'درباره ما',
        index_side_top = 'index_side_top', 'صفحه اصلی - کنار اسلایدر بالا'
        index_side_bottom = 'index_side_bottom', 'صفحه اصلی - کنار اسلایدر پایین'


    title = models.CharField(max_length=200, verbose_name='عنوان بنر')
    url = models.URLField(max_length=400, null=True, blank=True, verbose_name='آدرس بنر')
    image = models.ImageField(upload_to='images/banners', verbose_name='تصویر بنر')
    is_active = models.BooleanField(verbose_name='فعال / غیرفعال')
    position = models.CharField(max_length=200, choices=SiteBannerPositions.choices, verbose_name='جایگاه نمایشی')

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'بنر تبلیغاتی'
        verbose_name_plural = 'بنرهای تبلیغاتی'
        

from django.db import models

class SiteFeature(models.Model):
    title = models.CharField(max_length=200,verbose_name='عنوان')
    description = models.CharField(max_length=300,verbose_name='توضیحات')
    icon = models.ImageField(upload_to='features/icons/')
    is_active = models.BooleanField(default=True,verbose_name='فعال/غیرفعال')
    order = models.IntegerField(default=0,verbose_name='ترتیب نمایش')

    class Meta:
        ordering = ['order']
        verbose_name='فیچر'
        verbose_name_plural ='فیچرها'

    def __str__(self):
        return self.title


class AboutUs(models.Model):
    title = models.CharField(
        max_length=200,
        verbose_name='عنوان بخش درباره ما'
    )

    subtitle = models.CharField(
        max_length=200,
        blank=True,
        null=True,
        verbose_name='زیرعنوان'
    )

    text = models.TextField(
        blank=True,
        null=True,
        verbose_name='متن درباره ما'
    )

    image = models.ImageField(
        upload_to='about/',
        blank=True,
        null=True,
        verbose_name='تصویر درباره ما'
    )

    work_time = models.CharField(
        max_length=200,
        blank=True,
        null=True,
        verbose_name='ساعت کاری'
    )
   
    class Meta:
        verbose_name = 'درباره ما'
        verbose_name_plural = 'بخش درباره ما'

    def __str__(self):
        return self.title






