mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-11 07:38:56 +00:00
82 lines
2.3 KiB
Python
82 lines
2.3 KiB
Python
"""
|
|
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
|