Files
avto-cargo--wisdom--backend/core/apps/orders/models.py
2025-08-27 14:21:14 +05:00

42 lines
1.4 KiB
Python

from django.db import models
from core.apps.common.models import BaseModel
from core.apps.accounts.models import User
class Order(BaseModel):
STATUS = (
('Yetkazilmoqda', 'Yetkazilmoqda'),
('Olingan', 'Olingan'),
('Kutilmoqda', 'Kutilmoqda'),
('Yetkazib berilgan', 'Yetkazib berilgan')
)
order_number = models.PositiveBigIntegerField(default=1)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='orders')
name = models.CharField(max_length=200)
date = models.DateField()
status = models.CharField(max_length=20, choices=STATUS)
size = models.CharField(max_length=20)
total_price = models.PositiveBigIntegerField()
is_paid = models.BooleanField(default=False)
location = models.CharField(max_length=200)
location_to = models.CharField(max_length=200, null=True)
location_from = models.CharField(max_length=200, null=True)
def __str__(self):
return f'{self.user} user order {self.name}'
def save(self, *args, **kwargs):
if not self.order_number:
last_order = Order.objects.all().order_by('-order_number').first()
if last_order:
self.order_number = last_order.order_number + 1
else:
self.order_number = 1
super().save(*args, **kwargs)
class Meta:
verbose_name = 'Buyurtma'
verbose_name_plural = 'buyurtmalar'