storage yaratildi

This commit is contained in:
Husanjonazamov
2026-03-13 20:17:06 +05:00
commit 1c692b51b6
256 changed files with 8852 additions and 0 deletions

4
core/apps/vendors/models/__init__.py vendored Normal file
View File

@@ -0,0 +1,4 @@
from .category import * # noqa
from .vendor import * # noqa
from .vendor_product import * # noqa
from .section import * # noqa

23
core/apps/vendors/models/category.py vendored Normal file
View File

@@ -0,0 +1,23 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from django_core.models import AbstractBaseModel
from model_bakery import baker
class CategoryModel(AbstractBaseModel):
firestore_id = models.CharField(verbose_name=_("firestore id"), max_length=255, unique=True, null=True, blank=True)
section = models.ForeignKey("SectionModel", verbose_name=_("section"), on_delete=models.CASCADE, related_name="categories", null=True, blank=True)
title = models.CharField(verbose_name=_("title"), max_length=255)
description = models.TextField(verbose_name=_("description"), null=True, blank=True)
photo_url = models.URLField(verbose_name=_("photo url"), max_length=1000, null=True, blank=True)
photo = models.ImageField(verbose_name=_("photo"), upload_to="categories/", null=True, blank=True)
is_publish = models.BooleanField(verbose_name=_("is publish"), default=True)
order = models.IntegerField(verbose_name=_("order"), default=0)
def __str__(self):
return self.title
class Meta:
db_table = "categories"
verbose_name = _("Category")
verbose_name_plural = _("Categories")

21
core/apps/vendors/models/section.py vendored Normal file
View File

@@ -0,0 +1,21 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from django_core.models import AbstractBaseModel
class SectionModel(AbstractBaseModel):
firestore_id = models.CharField(verbose_name=_("firestore id"), max_length=255, unique=True, null=True, blank=True)
name = models.CharField(verbose_name=_("name"), max_length=255)
is_active = models.BooleanField(verbose_name=_("is active"), default=True)
image_url = models.URLField(verbose_name=_("image url"), max_length=1000, null=True, blank=True)
image = models.ImageField(verbose_name=_("image"), upload_to="sections/", null=True, blank=True)
color = models.CharField(verbose_name=_("color"), max_length=20, null=True, blank=True)
service_type = models.CharField(verbose_name=_("service type"), max_length=255, null=True, blank=True)
def __str__(self):
return self.name
class Meta:
db_table = "sections"
verbose_name = _("Section")
verbose_name_plural = _("Sections")

28
core/apps/vendors/models/vendor.py vendored Normal file
View File

@@ -0,0 +1,28 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from django_core.models import AbstractBaseModel
from model_bakery import baker
class VendorModel(AbstractBaseModel):
firestore_id = models.CharField(verbose_name=_("firestore id"), max_length=255, unique=True, null=True, blank=True)
section = models.ForeignKey("SectionModel", verbose_name=_("section"), on_delete=models.CASCADE, related_name="vendors", null=True, blank=True)
title = models.CharField(verbose_name=_("title"), max_length=255)
description = models.TextField(verbose_name=_("description"), null=True, blank=True)
phone = models.CharField(verbose_name=_("phone"), max_length=50, null=True, blank=True)
location = models.JSONField(verbose_name=_("location"), null=True, blank=True)
photo_url = models.URLField(verbose_name=_("photo url"), max_length=1000, null=True, blank=True)
photo = models.ImageField(verbose_name=_("photo"), upload_to="vendors/", null=True, blank=True)
is_active = models.BooleanField(verbose_name=_("is active"), default=True)
def __str__(self):
return self.title
@classmethod
def _baker(cls):
return baker.make(cls)
class Meta:
db_table = "vendors"
verbose_name = _("Vendor")
verbose_name_plural = _("Vendors")

View File

@@ -0,0 +1,41 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from django_core.models import AbstractBaseModel
from model_bakery import baker
class VendorproductModel(AbstractBaseModel):
firestore_id = models.CharField(verbose_name=_("firestore id"), max_length=255, unique=True, null=True, blank=True)
vendor = models.ForeignKey("VendorModel", verbose_name=_("vendor"), on_delete=models.CASCADE, related_name="products", null=True, blank=True)
category = models.ForeignKey("CategoryModel", verbose_name=_("category"), on_delete=models.SET_NULL, related_name="products", null=True, blank=True)
section = models.ForeignKey("SectionModel", verbose_name=_("section"), on_delete=models.SET_NULL, related_name="products", null=True, blank=True)
name = models.CharField(verbose_name=_("name"), max_length=255)
description = models.TextField(verbose_name=_("description"), null=True, blank=True)
price = models.DecimalField(verbose_name=_("price"), max_digits=12, decimal_places=2, default=0)
discount_price = models.DecimalField(verbose_name=_("discount price"), max_digits=12, decimal_places=2, default=0)
quantity = models.IntegerField(verbose_name=_("quantity"), default=-1)
is_publish = models.BooleanField(verbose_name=_("is publish"), default=True)
image = models.ImageField(verbose_name=_("image"), upload_to="products/", null=True, blank=True)
photos_json = models.JSONField(verbose_name=_("photos url list"), null=True, blank=True)
def __str__(self):
return self.name
class Meta:
db_table = "vendor_products"
verbose_name = _("Vendor Product")
verbose_name_plural = _("Vendor Products")
class ProductimageModel(AbstractBaseModel):
product = models.ForeignKey("VendorproductModel", verbose_name=_("product"), on_delete=models.CASCADE, related_name="images")
image = models.ImageField(verbose_name=_("image"), upload_to="product_gallery/")
order = models.IntegerField(verbose_name=_("order"), default=0)
def __str__(self):
return f"Image for {self.product.name}"
class Meta:
db_table = "product_images"
verbose_name = _("Product Image")
verbose_name_plural = _("Product Images")