diff --git a/CineSync/timetable/models.py b/CineSync/timetable/models.py index 5072e19..738f0a9 100644 --- a/CineSync/timetable/models.py +++ b/CineSync/timetable/models.py @@ -1,12 +1,15 @@ -from django.db.models import Model, CharField, IntegerField, OneToOneField, CASCADE +from django.db.models import Model, CharField, IntegerField, OneToOneField, CASCADE, DateTimeField, FloatField from django.core.validators import MinValueValidator +from films.models import Films + class Auditorium(Model): number = CharField( max_length=20, verbose_name='Номер кинозала', ) + row_count = IntegerField( verbose_name='Количество рядов кресел в зале', validators=[ @@ -20,19 +23,21 @@ class Auditorium(Model): verbose_name_plural = 'Залы' -class Rows(Model): +class Row(Model): row_number = IntegerField( verbose_name='Номер ряда', validators=[ MinValueValidator(1), ], ) + column_count = IntegerField( verbose_name='Количество кресел в ряду', validators=[ MinValueValidator(1), ], ) + auditorium = OneToOneField( Auditorium, on_delete=CASCADE, @@ -44,3 +49,36 @@ class Rows(Model): db_table = 'timetable_rows' verbose_name = 'Место' verbose_name_plural = 'Места' + + +class FilmSession(Model): + start_datetime = DateTimeField( + verbose_name='Дата и время начала сеанса', + ) + + price = FloatField( + verbose_name='Цена билета', + validators=[ + MinValueValidator(1), + ], + ) + + film = OneToOneField( + Films, + on_delete=CASCADE, + verbose_name='фильм', + related_name='sessions', + ) + + auditorium = OneToOneField( + Auditorium, + on_delete=CASCADE, + verbose_name='зал', + related_name='sessions', + ) + + class Meta: + db_table = 'timetable_film_sessions' + verbose_name = 'Сеанс' + verbose_name_plural = 'Сеансы' +