bistro/backend/app/models.py
2025-02-10 20:56:55 +01:00

69 lines
1.9 KiB
Python

from django.db import models
from django.utils.translation import gettext_lazy as _
from django.utils import timezone
# Create your models here.
def default_realization_time():
return timezone.now() # + datetime.timedelta(hours=1)
class Waiter(models.Model):
name = models.CharField(_('Imię i nazwisko'), max_length=120)
def __str__(self):
return self.name
class Meta:
verbose_name = _('Kelner')
verbose_name_plural = _('Kelnerzy')
class Meal(models.Model):
name = models.TextField(_('Danie'))
def __str__(self):
return self.name
class Meta:
verbose_name = _('Danie')
verbose_name_plural = _('Dania')
ordering = ['name',]
class Order(models.Model):
created_on = models.DateTimeField(_('Utworzono'), auto_now_add=True)
updated_on = models.DateTimeField(_('Zaktualizowano'), auto_now=True)
realization_time = models.CharField(
_('Godzina realizacji'), max_length=250, null=True, blank=True
)
waiter = models.ForeignKey(
Waiter,
models.SET_NULL,
related_name='orders',
verbose_name=_('Kelner'),
null=True,
)
client = models.CharField(_('Klient'), max_length=250, null=True, blank=True)
data = models.JSONField(_('Dane zamówienia'), default=dict)
class StatusChoices(models.IntegerChoices):
ORDERED = (1, _('Zamówienie złożone'))
IN_PROGRESS = (2, ('Zamówienie w trakcie przygotowywania'))
READY = (3, _('Zamówienie gotowe'))
FINALIZED = (4, _('Zamówienie zrealizowane'))
status = models.PositiveSmallIntegerField(
_('Status zamówienia'),
choices=StatusChoices.choices,
default=StatusChoices.ORDERED,
)
def __str__(self):
return str(self.id)
class Meta:
verbose_name = _('Zamówienie')
verbose_name_plural = _('Zamówienia')