# Generated by Django 5.1.6 on 2025-08-21 14:12

import django.core.validators
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('species', '0005_user_is_admin_speciesinstancelabel'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='species',
            options={'ordering': ['name'], 'verbose_name_plural': 'Species'},
        ),
        migrations.RemoveField(
            model_name='aquaristclubmember',
            name='membership_admin',
        ),
        migrations.RemoveField(
            model_name='aquaristclubmember',
            name='membership_requested',
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='about',
            field=models.TextField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='acronym',
            field=models.CharField(blank=True, max_length=10),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='bap_default_points',
            field=models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)]),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='bap_end_date',
            field=models.DateField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='bap_guidelines',
            field=models.TextField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='bap_notes_template',
            field=models.TextField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='bap_start_date',
            field=models.DateField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='cares_muliplier',
            field=models.IntegerField(default=2, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(10)]),
        ),
        migrations.AddField(
            model_name='aquaristclub',
            name='require_member_approval',
            field=models.BooleanField(default=True),
        ),
        migrations.AddField(
            model_name='aquaristclubmember',
            name='bap_participant',
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name='aquaristclubmember',
            name='is_club_admin',
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name='species',
            name='species_instance_count',
            field=models.PositiveIntegerField(default=0),
        ),
        migrations.AddField(
            model_name='speciesinstance',
            name='cares_validated',
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name='speciesinstance',
            name='young_available_image',
            field=models.ImageField(blank=True, null=True, upload_to='images/%Y/%m/%d'),
        ),
        migrations.AddField(
            model_name='user',
            name='is_email_blocked',
            field=models.BooleanField(default=False),
        ),
        migrations.AlterField(
            model_name='aquaristclub',
            name='club_admins',
            field=models.ManyToManyField(related_name='admin_aquarist_clubs', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterField(
            model_name='species',
            name='cares_status',
            field=models.CharField(choices=[('NOTC', 'Undefined'), ('NEAR', 'Near Threatened'), ('VULN', 'Vulnerable'), ('ENDA', 'Endangered'), ('CEND', 'Critically Endangered'), ('EXCT', 'Extict in the Wild')], default='NOTC', max_length=4),
        ),
        migrations.AlterField(
            model_name='species',
            name='category',
            field=models.CharField(choices=[('CIC', 'Cichlids'), ('RBF', 'Rainbowfish'), ('KLF', 'Killifish'), ('CHA', 'Characins'), ('CAT', 'Catfish'), ('LVB', 'Livebearers'), ('CYP', 'Cyprinids'), ('ANA', 'Anabantids'), ('LCH', 'Loaches'), ('OTH', 'All Others')], default='CIC', max_length=3),
        ),
        migrations.AlterField(
            model_name='speciescomment',
            name='species',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='species_comments', to='species.species'),
        ),
        migrations.AlterField(
            model_name='speciesinstance',
            name='species',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='species_instances', to='species.species'),
        ),
        migrations.AlterField(
            model_name='speciesinstance',
            name='year_acquired',
            field=models.IntegerField(blank=True, default=2025, null=True, validators=[django.core.validators.MinValueValidator(1900), django.core.validators.MaxValueValidator(2100)]),
        ),
        migrations.AlterField(
            model_name='speciesinstancecomment',
            name='speciesInstance',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='species_instance_comments', to='species.speciesinstance'),
        ),
        migrations.AlterField(
            model_name='speciesinstancelabel',
            name='speciesInstance',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='species_instance_labels', to='species.speciesinstance'),
        ),
        migrations.AlterField(
            model_name='speciesinstancelogentry',
            name='speciesInstance',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='species_instance_log_entries', to='species.speciesinstance'),
        ),
        migrations.AlterField(
            model_name='speciesmaintenancelogentry',
            name='speciesMaintenanceLog',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='species_maintenance_log_entries', to='species.speciesmaintenancelog'),
        ),
        migrations.AlterField(
            model_name='speciesreferencelink',
            name='species',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='species_links', to='species.species'),
        ),
        migrations.CreateModel(
            name='BapGenus',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=240)),
                ('points', models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)])),
                ('species_count', models.PositiveIntegerField(default=0)),
                ('species_override_count', models.PositiveIntegerField(default=0)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('lastUpdated', models.DateTimeField(auto_now=True)),
                ('club', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='club_bap_genus', to='species.aquaristclub')),
                ('example_species', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='example_bap_species', to='species.species')),
            ],
            options={
                'verbose_name_plural': 'BapGenus',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='BapLeaderboard',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=240)),
                ('year', models.IntegerField(default=2025, validators=[django.core.validators.MinValueValidator(1900), django.core.validators.MaxValueValidator(2100)])),
                ('species_count', models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(1000)])),
                ('cares_species_count', models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(1000)])),
                ('points', models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(10000)])),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('aquarist', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='aquarist_bap_leaderboards', to=settings.AUTH_USER_MODEL)),
                ('club', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='club_bap_leaderboards', to='species.aquaristclub')),
            ],
        ),
        migrations.CreateModel(
            name='BapSpecies',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=240)),
                ('points', models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)])),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('lastUpdated', models.DateTimeField(auto_now=True)),
                ('club', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='club_bap_species', to='species.aquaristclub')),
                ('species', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='bap_species', to='species.species')),
            ],
            options={
                'verbose_name_plural': 'BapSpecies',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='BapSubmission',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=240)),
                ('year', models.IntegerField(default=2025, validators=[django.core.validators.MinValueValidator(1900), django.core.validators.MaxValueValidator(2100)])),
                ('status', models.CharField(choices=[('OPEN', 'Open'), ('APRV', 'Approved'), ('DECL', 'Declined'), ('RESU', 'Resubmitted'), ('CLSD', 'Closed')], default='OPEN', max_length=4)),
                ('points', models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(100)])),
                ('request_points_review', models.BooleanField(default=False)),
                ('notes', models.TextField(blank=True, null=True)),
                ('breeder_comments', models.TextField(blank=True, null=True)),
                ('admin_comments', models.TextField(blank=True, null=True)),
                ('active', models.BooleanField(default=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('lastUpdated', models.DateTimeField(auto_now=True)),
                ('aquarist', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='aquarist_bap_submissions', to=settings.AUTH_USER_MODEL)),
                ('club', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='club_bap_submissions', to='species.aquaristclub')),
                ('speciesInstance', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='species.speciesinstance')),
            ],
        ),
    ]
