""" web_admin model file """ # django imports from django.db import models class Article(models.Model): """ Article model """ title = models.CharField(max_length=255) description = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) is_published = models.BooleanField(default=True) is_deleted = models.BooleanField(default=False) def __str__(self): """Return title""" return f'{self.id} | {self.title}' class ArticleCard(models.Model): """ Article Card model """ article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='article_cards') title = models.CharField(max_length=255) description = models.TextField() image_url = models.URLField(null=True, blank=True, default=None) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): """Return title""" return f'{self.id} | {self.title}' class ArticleSurvey(models.Model): """ Article Survey model """ article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='article_survey') question = models.CharField(max_length=255) points = models.IntegerField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): """Return title""" return f'{self.id} | {self.question}' class SurveyOption(models.Model): """ Survey Options model """ survey = models.ForeignKey(ArticleSurvey, on_delete=models.CASCADE, related_name='options') option = models.CharField(max_length=255) is_answer = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): """Return title""" return f'{self.id} | {self.option}' class DefaultArticleCardImage(models.Model): """ Default images upload in oss bucket """ image_name = models.CharField(max_length=20) image_url = models.URLField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): """return image_name as an object""" return self.image_name