Modellar tayyor
This commit is contained in:
5
core/apps/api/models/__init__.py
Normal file
5
core/apps/api/models/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from .banner import * # noqa
|
||||
from .feedback import * # noqa
|
||||
from .ad import * # noqa
|
||||
from .ad_items import * # noqa
|
||||
from .order import * # noqa
|
||||
2
core/apps/api/models/ad/__init__.py
Normal file
2
core/apps/api/models/ad/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
from .ad import * # noqa
|
||||
from .category import * # noqa
|
||||
38
core/apps/api/models/ad/ad.py
Normal file
38
core/apps/api/models/ad/ad.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.auth import get_user_model
|
||||
from core.apps.api.choices.ad_type import AdType, AdCategoryType
|
||||
|
||||
|
||||
class AdModel(AbstractBaseModel):
|
||||
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, verbose_name=_("User"), related_name="ad")
|
||||
name = models.CharField(verbose_name=_("Name"), max_length=255)
|
||||
ad_type = models.CharField(verbose_name=_("Type"), max_length=255, choices=AdType)
|
||||
category = models.ForeignKey("api.Category", on_delete=models.CASCADE, verbose_name=_("Category"))
|
||||
ad_category_type = models.CharField(verbose_name=_("Type"), max_length=255, choices=AdCategoryType)
|
||||
price = models.DecimalField(verbose_name=_("Price"), max_digits=10, decimal_places=2, null=True, blank=True)
|
||||
is_available = models.BooleanField(verbose_name=_("Is available"), default=True, blank=True, null=True)
|
||||
physical_product = models.BooleanField(verbose_name=_("Physical product"), default=False)
|
||||
plan = models.ForeignKey("api.AdTopPlan", on_delete=models.CASCADE, verbose_name=_("Plan"))
|
||||
tags = models.ManyToManyField("api.Tags", verbose_name=_("Tags"))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "ad"
|
||||
verbose_name = _("Ad")
|
||||
verbose_name_plural = _("Ads")
|
||||
|
||||
|
||||
class Color(AbstractBaseModel):
|
||||
name = models.CharField(verbose_name=_("Name"), max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "color"
|
||||
verbose_name = _("Color")
|
||||
verbose_name_plural = _("Colors")
|
||||
18
core/apps/api/models/ad/category.py
Normal file
18
core/apps/api/models/ad/category.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class Category(AbstractBaseModel):
|
||||
name = models.CharField(max_length=255, verbose_name=_('Category Name'))
|
||||
parent = models.ForeignKey('self', null=True, blank=True, related_name='children', on_delete=models.CASCADE)
|
||||
show_home = models.BooleanField(default=False, verbose_name=_('Show Home'))
|
||||
level = models.IntegerField(default=0, verbose_name=_('Level'))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = 'category'
|
||||
verbose_name = _('Category')
|
||||
verbose_name_plural = _('Categories')
|
||||
6
core/apps/api/models/ad_items/__init__.py
Normal file
6
core/apps/api/models/ad_items/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from .ad_top_plan import * # noqa
|
||||
from .tags import * # noqa
|
||||
from .ad_images import * # noqa
|
||||
from .ad_option import * # noqa
|
||||
from .ad_size import * # noqa
|
||||
from .ad_variant import * # noqa
|
||||
17
core/apps/api/models/ad_items/ad_images.py
Normal file
17
core/apps/api/models/ad_items/ad_images.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from core.apps.api.models.ad.ad import AdModel
|
||||
|
||||
|
||||
class AdImage(AbstractBaseModel):
|
||||
image = models.ImageField(verbose_name=_("Image"), upload_to="ads/images/")
|
||||
ad = models.ForeignKey(AdModel, verbose_name=_("Ad"), on_delete=models.CASCADE)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "ad_images"
|
||||
verbose_name = _("Ad_Image")
|
||||
verbose_name_plural = _("Ad_Images")
|
||||
18
core/apps/api/models/ad_items/ad_option.py
Normal file
18
core/apps/api/models/ad_items/ad_option.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from core.apps.api.models import AdModel
|
||||
|
||||
|
||||
class AdOption(AbstractBaseModel):
|
||||
name = models.CharField(_("Name"), max_length=255)
|
||||
value = models.CharField(_("Value"), max_length=255)
|
||||
ad = models.ForeignKey(AdModel, on_delete=models.CASCADE)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "ad_option"
|
||||
verbose_name = _("Ad_Option")
|
||||
verbose_name_plural = _("Ad_Options")
|
||||
20
core/apps/api/models/ad_items/ad_size.py
Normal file
20
core/apps/api/models/ad_items/ad_size.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from core.apps.api.models import AdModel
|
||||
|
||||
|
||||
class AdSize(AbstractBaseModel):
|
||||
ad = models.ForeignKey(AdModel, on_delete=models.CASCADE)
|
||||
weight = models.PositiveIntegerField(verbose_name=_("Weight"))
|
||||
width = models.PositiveIntegerField(verbose_name=_("Width"))
|
||||
height = models.PositiveIntegerField(verbose_name=_("Height"))
|
||||
length = models.PositiveIntegerField(verbose_name=_("Length"))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "ad_size"
|
||||
verbose_name = _("AdSize")
|
||||
verbose_name_plural = _("AdSizes")
|
||||
16
core/apps/api/models/ad_items/ad_top_plan.py
Normal file
16
core/apps/api/models/ad_items/ad_top_plan.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class AdTopPlan(AbstractBaseModel):
|
||||
name = models.CharField(verbose_name=_('Name'), max_length=255)
|
||||
price = models.DecimalField(verbose_name=_('Price'), max_digits=10, decimal_places=2)
|
||||
duration = models.IntegerField(verbose_name=_('Duration'))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
class Meta:
|
||||
db_table = 'ad_top_plan'
|
||||
verbose_name = _('AdTop Plan')
|
||||
verbose_name_plural = _('AdTop Plan')
|
||||
22
core/apps/api/models/ad_items/ad_variant.py
Normal file
22
core/apps/api/models/ad_items/ad_variant.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from core.apps.api.models import AdModel
|
||||
from core.apps.api.choices.ad_variant_type import AdVariantType
|
||||
|
||||
|
||||
class AdVariant(AbstractBaseModel):
|
||||
ad = models.ForeignKey(AdModel, on_delete=models.CASCADE)
|
||||
variant = models.CharField(max_length=255, choices=AdVariantType, db_index=True)
|
||||
value = models.CharField(max_length=255)
|
||||
is_available = models.CharField(max_length=255)
|
||||
price = models.DecimalField(max_digits=10, decimal_places=2)
|
||||
discount = models.DecimalField(max_digits=10, decimal_places=2, default=-1)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "ad_variant"
|
||||
verbose_name = _("Ad_Variant")
|
||||
verbose_name_plural = _("Ad_Variants")
|
||||
15
core/apps/api/models/ad_items/tags.py
Normal file
15
core/apps/api/models/ad_items/tags.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class Tags(AbstractBaseModel):
|
||||
name = models.CharField(verbose_name=_("Name"), max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = 'tags'
|
||||
verbose_name = _("Tags")
|
||||
verbose_name_plural = _("Tags")
|
||||
1
core/apps/api/models/banner/__init__.py
Normal file
1
core/apps/api/models/banner/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .banner import * # noqa
|
||||
21
core/apps/api/models/banner/banner.py
Normal file
21
core/apps/api/models/banner/banner.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
|
||||
|
||||
class Banner(AbstractBaseModel):
|
||||
title = models.CharField(max_length=255, verbose_name=_("Title"))
|
||||
description = models.TextField(verbose_name=_("Description"))
|
||||
mobile_image = models.ImageField(verbose_name=_("Mobile Image"), upload_to="banner/mobile_image/")
|
||||
desktop_image = models.ImageField(verbose_name=_("Desktop Image"), upload_to="banner/desktop_image/")
|
||||
link = models.URLField(verbose_name=_("Link"))
|
||||
bg_color = models.CharField(verbose_name=_("BG Color"), max_length=255)
|
||||
text_color = models.CharField(verbose_name=_("Text Color"), max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "banner"
|
||||
verbose_name = _("Banner")
|
||||
verbose_name_plural = _("Banners")
|
||||
1
core/apps/api/models/feedback/__init__.py
Normal file
1
core/apps/api/models/feedback/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .feedback import * # noqa
|
||||
34
core/apps/api/models/feedback/feedback.py
Normal file
34
core/apps/api/models/feedback/feedback.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.auth import get_user_model
|
||||
from core.apps.api.models.ad import AdModel
|
||||
|
||||
|
||||
class Feedback(AbstractBaseModel):
|
||||
star = models.IntegerField(default=0, verbose_name=_("Star"))
|
||||
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, verbose_name=_("User"))
|
||||
ad = models.ForeignKey(AdModel, on_delete=models.CASCADE, verbose_name=_("Ad"))
|
||||
command = models.CharField(max_length=255, verbose_name=_("Command"))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "feedback"
|
||||
verbose_name = _("Feedback")
|
||||
verbose_name_plural = _("Feedbacks")
|
||||
|
||||
|
||||
class FeedbackImages(AbstractBaseModel):
|
||||
feedback = models.ForeignKey(Feedback, on_delete=models.CASCADE, verbose_name=_("Feedback"))
|
||||
image = models.ImageField(verbose_name=_("Image"), upload_to="feedback/"
|
||||
"images/")
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "feedback_images"
|
||||
verbose_name = _("Feedback Images")
|
||||
verbose_name_plural = _("Feedback Images")
|
||||
1
core/apps/api/models/order/__init__.py
Normal file
1
core/apps/api/models/order/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .order import * # noqa
|
||||
36
core/apps/api/models/order/order.py
Normal file
36
core/apps/api/models/order/order.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.auth import get_user_model
|
||||
from core.apps.api.choices import OrderStatus
|
||||
from core.apps.accounts.models import Address
|
||||
from core.apps.api.models import AdModel
|
||||
|
||||
|
||||
class Order(AbstractBaseModel):
|
||||
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, verbose_name=_("User"))
|
||||
status = models.CharField(max_length=255, choices=OrderStatus)
|
||||
address = models.ForeignKey(Address, on_delete=models.CASCADE, verbose_name=_("Address"))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "order"
|
||||
verbose_name = _("Order")
|
||||
verbose_name_plural = _("Orders")
|
||||
|
||||
|
||||
class OrderItem(models.Model):
|
||||
order = models.ForeignKey(Order, on_delete=models.CASCADE, verbose_name=_("Order"))
|
||||
price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name=_("Price"))
|
||||
ad = models.ForeignKey(AdModel, on_delete=models.CASCADE, verbose_name=_("Ad"))
|
||||
count = models.PositiveIntegerField(default=0, verbose_name=_("Count"))
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
|
||||
class Meta:
|
||||
db_table = "order_item"
|
||||
verbose_name = _("Order Item")
|
||||
verbose_name_plural = _("Order Items")
|
||||
Reference in New Issue
Block a user