Как я управляю заказами в парикмахерской на основе продолжительности обслуживания в Django
Я должен управлять бронированиями в парикмахерской в течение дня на основе продолжительности обслуживания. Например:
- стрижка: 30 минут
- стрижка + шампунь: 40 минут
В салоне есть несколько парикмахеров. На данный момент я разработал модели парикмахерской и услуг, но я не знаю, как реализовать назначение встреч и их отображение для доступных временных интервалов.
class Barber(models.Model):
name = models.CharField(max_length=255)
surname = models.CharField(max_length=255)
role = models.CharField(max_length=255)
def __str__(self):
return self.name + ' ' + self.surname
class Service(models.Model):
name = models.CharField(max_length=255)
duration = models.PositiveIntegerField()
price = models.FloatField()
info = models.TextField(blank=True, null=True)
def __str__(self):
return self.name
Модель назначения я думал реализовать таким образом:
class Appointment(models.Model):
barber = models.ForeignKey(Barber, on_delete=models.CASCADE, related_name='appointments')
service = models.ForeignKey(Service, on_delete=models.CASCADE, related_name='appointments')
start_date = models.DateTimeField()
name_client = models.CharField(max_length=255)
client_email = models.EmailField()
number_phone_client = models.CharField(max_length=10)
def end_date(self):
return self.start_date + timedelta(minutes=self.service.duration)
Но теперь я не знаю, как управлять различными слотами, доступными в возможном представлении, основанном на услуге и выбранном парикмахере.
каждая встреча может иметь много услуг, например, стрижка + шампунь поэтому вы должны установить отношение между назначением и услугой в одно число. Это означает, что любая встреча может иметь много услуг