# Generated by Django 5.2 on 2025-04-21 14:19 import django.core.validators import django.db.models.deletion import django.db.models.expressions from django.conf import settings from django.db import migrations, models import core.fields class Migration(migrations.Migration): initial = True dependencies = [ ("club", "0014_alter_club_options_rename_unix_name_club_slug_name_and_more"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Room", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=100, verbose_name="room name")), ( "description", models.TextField( blank=True, default="", verbose_name="description" ), ), ( "logo", core.fields.ResizedImageField( blank=True, force_format="WEBP", height=100, upload_to="rooms", verbose_name="logo", width=100, ), ), ("address", models.CharField(max_length=255, verbose_name="address")), ( "club", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="reservable_rooms", to="club.club", verbose_name="room owner", ), ), ( "occupancy", models.PositiveSmallIntegerField( default=1, help_text="The maximum number of people this room can host at once", validators=[django.core.validators.MinValueValidator(1)], verbose_name="maximum occupancy", ), ), ], options={ "verbose_name": "reservable room", "verbose_name_plural": "reservable rooms", }, ), migrations.CreateModel( name="ReservationSlot", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "nb_people", models.PositiveSmallIntegerField( default=1, help_text="How many people will attend this reservation slot", validators=[django.core.validators.MinValueValidator(1)], verbose_name="number of people", ), ), ( "comment", models.TextField(blank=True, default="", verbose_name="comment"), ), ( "start_at", models.DateTimeField(db_index=True, verbose_name="slot start"), ), ("duration", models.DurationField(verbose_name="duration")), ( "end_at", models.GeneratedField( db_persist=False, expression=django.db.models.expressions.CombinedExpression( models.F("start_at"), "+", models.F("duration") ), output_field=models.DateTimeField(), verbose_name="slot end", ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ( "author", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name="author", ), ), ( "room", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="slots", to="reservation.room", verbose_name="reserved room", ), ), ], options={ "verbose_name": "reservation slot", "verbose_name_plural": "reservation slots", }, ), ]