Sith/reservation/migrations/0001_initial.py
2025-04-23 14:23:01 +02:00

142 lines
5.0 KiB
Python

# 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",
},
),
]