# Generated by Django 5.0.3 on 2024-04-27 07:00 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("participation", "0013_alter_pool_options_pool_room"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Channel", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=255, verbose_name="name")), ( "read_access", models.CharField( choices=[ ("anonymous", "Everyone, including anonymous users"), ("authenticated", "Authenticated users"), ("volunteer", "All volunteers"), ("tournament", "All members of a given tournament"), ("organizer", "Tournament organizers only"), ( "jury_president", "Tournament organizers and jury presidents of the tournament", ), ("jury", "Jury members of the pool"), ("pool", "Jury members and participants of the pool"), ( "team", "Members of the team and organizers of concerned tournaments", ), ( "private", "Private, reserved to explicit authorized users", ), ("admin", "Admin users"), ], max_length=16, verbose_name="read permission", ), ), ( "write_access", models.CharField( choices=[ ("anonymous", "Everyone, including anonymous users"), ("authenticated", "Authenticated users"), ("volunteer", "All volunteers"), ("tournament", "All members of a given tournament"), ("organizer", "Tournament organizers only"), ( "jury_president", "Tournament organizers and jury presidents of the tournament", ), ("jury", "Jury members of the pool"), ("pool", "Jury members and participants of the pool"), ( "team", "Members of the team and organizers of concerned tournaments", ), ( "private", "Private, reserved to explicit authorized users", ), ("admin", "Admin users"), ], max_length=16, verbose_name="write permission", ), ), ( "private", models.BooleanField( default=False, help_text="If checked, only users who have been explicitly added to the channel will be able to access it.", verbose_name="private", ), ), ( "invited", models.ManyToManyField( blank=True, help_text="Extra users who have been invited to the channel, in addition to the permitted group of the channel.", related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="invited users", ), ), ( "pool", models.ForeignKey( blank=True, default=None, help_text="For a permission that concerns a pool, indicates what is the concerned pool.", null=True, on_delete=django.db.models.deletion.CASCADE, related_name="chat_channels", to="participation.pool", verbose_name="pool", ), ), ( "team", models.ForeignKey( blank=True, default=None, help_text="For a permission that concerns a team, indicates what is the concerned team.", null=True, on_delete=django.db.models.deletion.CASCADE, related_name="chat_channels", to="participation.team", verbose_name="team", ), ), ( "tournament", models.ForeignKey( blank=True, default=None, help_text="For a permission that concerns a tournament, indicates what is the concerned tournament.", null=True, on_delete=django.db.models.deletion.CASCADE, related_name="chat_channels", to="participation.tournament", verbose_name="tournament", ), ), ], options={ "verbose_name": "channel", "verbose_name_plural": "channels", "ordering": ("name",), }, ), migrations.CreateModel( name="Message", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "created_at", models.DateTimeField(auto_now_add=True, verbose_name="created at"), ), ( "updated_at", models.DateTimeField(auto_now=True, verbose_name="updated at"), ), ("content", models.TextField(verbose_name="content")), ( "author", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="chat_messages", to=settings.AUTH_USER_MODEL, verbose_name="author", ), ), ( "channel", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="messages", to="chat.channel", verbose_name="channel", ), ), ], options={ "verbose_name": "message", "verbose_name_plural": "messages", "ordering": ("created_at",), }, ), ]