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') 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')