from datetime import date
from django.db import models
from ckeditor.fields import RichTextField
from ckeditor_uploader.fields import RichTextUploadingField
from django.utils import timezone
# Create your models here.


class TheLoaiBaiViet(models.Model):

    ten = models.CharField(max_length=255)
    ten_tieng_anh = models.CharField(max_length=255,null=True, blank=True)  # English name
    mo_ta = models.TextField()
    mo_ta_tieng_anh = RichTextField(null=True, blank=True)  # English description

    def __str__(self) :
        return self.ten

    class Meta:
        verbose_name = "Thể loại bài viết"
        verbose_name_plural = "Thể loại bài viết"


class KienThuc(models.Model):

    ten = models.CharField(max_length=255)
    ten_tieng_anh = models.CharField(max_length=255, null=True, blank=True)  # English name
    ngay_dang = models.DateField()
    the_loai = models.ManyToManyField(TheLoaiBaiViet)
    mo_ta = RichTextField()
    mo_ta_tieng_anh = RichTextField(null=True, blank=True)  # English description
    noi_dung = RichTextUploadingField()
    noi_dung_tieng_anh = RichTextUploadingField(null=True, blank=True)  # English contentng_tieng_anh = RichTextField()  # English content
    banner = models.ImageField(upload_to='banners/', default='banners/30-4.jpg')

    def __str__(self) :
        return self.ten

    class Meta:
        ordering = ['-ngay_dang']
        verbose_name = "Kiến thức"
        verbose_name_plural = "Kiến thức"


class BinhLuan(models.Model):

    ten_nguoi_dang = models.CharField("Tên", max_length=255)
    thong_tin_lien_he = models.CharField("Thông tin liên hệ", max_length=255)
    tieu_de = models.CharField("Tiêu đề", max_length=255)
    noi_dung = models.TextField("Nội dung")
    ngay_dang = models.DateField("Ngày đăng", default=date.today) #, auto_now_add=True
    trang_thai_da_duyet = models.BooleanField("Trạng thái (Đã duyệt)",default=False)
    bai_viet = models.ForeignKey(KienThuc, on_delete=models.CASCADE, verbose_name="Bài viết", related_name='cac_binh_luan')


    def __str__(self) :
        return 'Comment {} by {}'.format(self.tieu_de, self.ten_nguoi_dang)

    class Meta:
        ordering = ['-ngay_dang']
        verbose_name = "Bình luận"
        verbose_name_plural = "Bình luận"



class ThongBao(models.Model):

    ten = models.CharField(max_length=255)
    ten_tieng_anh = models.CharField(max_length=255, null=True, blank=True)
    ngay_dang = models.DateField()
    banner = models.ImageField(upload_to='banners/', default='banners/30-4.jpg')
    noi_dung = RichTextUploadingField()
    noi_dung_tieng_anh = RichTextUploadingField(null=True, blank=True)
    def __str__(self) :
        return self.ten

    class Meta:
        ordering = ['-ngay_dang']
        verbose_name = "Thông báo"
        verbose_name_plural = "Thông báo"


class TinTuc(models.Model):

    ten = models.CharField(max_length=255)
    ten_tieng_anh = models.CharField(max_length=255, null=True, blank=True)
    ngay_dang = models.DateField()
    banner = models.ImageField(upload_to='banners/')
    noi_dung = RichTextUploadingField()
    noi_dung_tieng_anh = RichTextUploadingField(null=True, blank=True)
    def __str__(self) :
        return self.ten

    class Meta:
        ordering = ['-ngay_dang']
        verbose_name = "Tin tức"
        verbose_name_plural = "Tin tức"


class SanPham(models.Model):
    ten = models.CharField(max_length=255)
    ten_en = models.CharField(max_length=255, null=True, blank=True)  # English name
    mo_ta_ngan = models.CharField(max_length=255)
    mo_ta_ngan_en = models.CharField(max_length=255, null=True, blank=True)  # English short description
    hinh_anh = models.ImageField(upload_to='products/')
    loai = models.CharField(max_length=100)
    loai_en = models.CharField(max_length=100, null=True, blank=True)  # English type
    thanh_phan = RichTextUploadingField(null=True)
    thanh_phan_en = RichTextUploadingField(null=True, blank=True)  # English components
    hang_sx = models.TextField(null=True)
    hang_sx_en = models.TextField(null=True, blank=True)  # English manufacturer
    dac_tinh = RichTextUploadingField(null=True)
    dac_tinh_en = RichTextUploadingField(null=True, blank=True)  # English characteristics
    hdsd = RichTextUploadingField(null=True)
    hdsd_en = RichTextUploadingField(null=True, blank=True)  # English usage instructions
    khuyen_mai = models.DecimalField(max_digits=5, decimal_places=2)
    gia = models.DecimalField(max_digits=10, decimal_places=2)

    def __str__(self) :
        return self.ten

    class Meta:
        verbose_name = "Sản phẩm"
        verbose_name_plural = "Sản phẩm"

class SanPhamBinhBom(models.Model):
    ten = models.CharField(max_length=255)
    hinh_anh = models.ImageField(upload_to='products/')
    ac_quy = models.CharField(max_length=255)
    dung_tich = models.CharField(max_length=255)
    trong_luong = models.CharField(max_length=255)
    thong_so_khac = models.TextField(null=True)
    gia = models.DecimalField(max_digits=10, decimal_places=2)
    def __str__(self) :
        return self.ten

    class Meta:
        verbose_name = "Sản phẩm bình bơm"
        verbose_name_plural = "Sản phẩm bình bơm"

class Careers(models.Model):
    tieu_de = models.CharField(max_length=100, default='Tên công việc mặc định')
    tieu_de_en = models.CharField(max_length=100, null=True, blank=True)  # English title
    ngay_dang = models.DateField(null=True, blank=True)
    noi_dung_cong_viec = RichTextUploadingField()
    noi_dung_cong_viec_en = RichTextUploadingField(null=True, blank=True)  # English content
    muc_luong_min = models.CharField(max_length=20)
    muc_luong_max = models.CharField(max_length=20)
    def __str__(self) :
        return self.tieu_de 
    @property
    def muc_luong_range(self):
        return f"{self.muc_luong_min} - {self.muc_luong_max}"

    class Meta:
        verbose_name = "Cơ hội việc làm"
        verbose_name_plural = "Cơ hội việc làm"


class FormLienHe(models.Model):
    ten = models.CharField(max_length=255)
    email = models.EmailField()
    so_dien_thoai = models.CharField(max_length=20)
    LOAI_KHACH_HANG_CHOICES = [
        ('khach_hang_moi', 'Khách hàng mới'),
        ('khach_hang_cu', 'Khách hàng cũ'),
    ]
    loai_khach_hang = models.CharField(max_length=20, choices=LOAI_KHACH_HANG_CHOICES)
    noi_dung = models.TextField()
    original_file_name = models.CharField(max_length=255, null=True, blank=True)
    file = models.FileField(upload_to='contacts/')
    def __str__(self) :
        return f'{self.ten} - {self.so_dien_thoai}'

    class Meta:
        verbose_name = "Form liên hệ"
        verbose_name_plural = "Form liên hệ"

class FormTuVanSanPham(models.Model):
    sdt = models.CharField(max_length=255)
    tenSp = models.CharField(max_length=255)
    def __str__(self):
        return f'{self.sdt} - {self.tenSp}'

    class Meta:
        verbose_name = "Form tư vấn sản phẩm"
        verbose_name_plural = "Form tư vấn sản phẩm"


