from django.db import models
from ckeditor.fields import RichTextField
from datetime import date, datetime
from django.contrib.auth.models import AbstractUser
from taggit.managers import TaggableManager
from ckeditor_uploader.fields import RichTextUploadingField

class User(AbstractUser):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    phone_number = models.CharField(max_length=11)
    email = models.EmailField(max_length=150)
    password = models.CharField(max_length=100)

    def __str__(self) -> str:
        return f"{self.username}"

class Category(models.Model):
    category = models.CharField(max_length=1000, null=True)
    def __str__(self) -> str:
        return f"{self.category}"

class Blogpost(models.Model):
    category = models.ForeignKey(Category, null=True, on_delete=models.CASCADE)
    title = models.CharField(max_length=1000, null=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    body = RichTextUploadingField(null=True, blank=True)
    image = models.ImageField(upload_to='blog/images/', null=True, blank=True)
    date_created = models.DateTimeField(default=datetime.now, blank=True)
    views= models.IntegerField(default=0)
    tags = TaggableManager()

    #def save(self, *args, **kwargs) -> None:
    #    self.author = User.objects.get(pk=1)
    #    super().save(*args, **kwargs)

    def __str__(self) -> str:
        return f"{self.title}"

class Coment(models.Model):
    post_pk = models.ForeignKey(Blogpost, null=True, on_delete=models.CASCADE)
    name = models.CharField(max_length=1000, null=True)
    coment = models.CharField(max_length=1000, null=True)
    date_created = models.DateTimeField(default=datetime.now, blank=True)

    def __str__(self) -> str:
        return f"{self.coment}"