# Generated by Django 6.0.6 on 2026-07-12 19:02 import django.db.models.deletion import uuid from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('club', '0008_alter_clubmembership_unique_together_and_more'), ('members', '0002_alter_familymembership_unique_together_and_more'), ] operations = [ migrations.CreateModel( name='Form', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('title', models.CharField(max_length=255, verbose_name='title')), ('slug', models.SlugField(unique=True, verbose_name='slug')), ('description', models.TextField(blank=True, verbose_name='description')), ('is_active', models.BooleanField(default=True, verbose_name='is active?')), ('login_required', models.BooleanField(default=False, verbose_name='login required?')), ('opens_at', models.DateTimeField(blank=True, null=True, verbose_name='opens at')), ('closes_at', models.DateTimeField(blank=True, null=True, verbose_name='closes at')), ('max_submissions_per_user', models.PositiveIntegerField(blank=True, null=True, verbose_name='max submissions per user')), ('club', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(class)ss', to='club.club')), ], options={ 'verbose_name': 'form', 'verbose_name_plural': 'forms', 'ordering': ['title'], }, ), migrations.CreateModel( name='Field', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('key', models.SlugField(unique=True, verbose_name='key')), ('label', models.CharField(max_length=255, verbose_name='label')), ('field_type', models.CharField(choices=[('text', 'text'), ('textarea', 'textarea'), ('number', 'number'), ('email', 'email'), ('date', 'date'), ('choice', 'choice'), ('multichoice', 'multichoice'), ('checkbox', 'checkbox'), ('file', 'file')], default='text', max_length=255, verbose_name='field type')), ('required', models.BooleanField(default=True, verbose_name='required?')), ('help_text', models.TextField(blank=True, verbose_name='help text')), ('order', models.PositiveIntegerField(default=0, verbose_name='order')), ('is_active', models.BooleanField(default=True, verbose_name='is active?')), ('options', models.JSONField(blank=True, null=True, verbose_name='options')), ('form', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fields', to='formbuilder.form', verbose_name='form')), ], options={ 'verbose_name': 'field', 'verbose_name_plural': 'fields', 'ordering': ['form', 'order'], }, ), migrations.CreateModel( name='Submission', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('submitted_at', models.DateTimeField(auto_now_add=True, verbose_name='submitted at')), ('form', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submissions', to='formbuilder.form', verbose_name='form')), ('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submissions', to='members.member', verbose_name='member')), ], options={ 'verbose_name': 'submission', 'verbose_name_plural': 'submissions', 'ordering': ['-submitted_at'], }, ), migrations.CreateModel( name='Answer', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('value', models.JSONField(blank=True, null=True, verbose_name='value')), ('field', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='formbuilder.field', verbose_name='field')), ('submission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='formbuilder.submission', verbose_name='submission')), ], options={ 'verbose_name': 'answer', 'verbose_name_plural': 'answers', 'ordering': ['submission', 'field'], }, ), migrations.AddConstraint( model_name='form', constraint=models.UniqueConstraint(fields=('club', 'slug'), name='unique_form_slug_per_club'), ), ]