# Generated by Django 5.2.11 on 2026-03-03 03:25

# Django
import django.core.validators
import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

    replaces = [('incursions', '0010_squashed_0009_alter_incursion_state_alter_waitlist_close_and_more'), ('incursions', '0010_activefleet_announcement_approvedfitting_and_more'), ('incursions', '0011_alter_characternote_options_alter_skillcheck_options_and_more'), ('incursions', '0012_rename_hull_approvedskills_ship_and_more'), ('incursions', '0013_alter_activefleet_options_alter_activefleet_fleet_and_more'), ('incursions', '0014_alter_activefleet_fleet'), ('incursions', '0015_alter_activefleet_fleet'), ('incursions', '0016_incursionsconfig_waitlist_webhooks_and_more'), ('incursions', '0017_alter_incursionsconfig_status_webhooks_and_more'), ('incursions', '0018_fleet_closed_fleet_last_updated_fleet_open_and_more'), ('incursions', '0019_incursion_migration_constellation_and_more'), ('incursions', '0020_alter_incursion_migration_infested_solar_systems'), ('incursions', '0021_corptoolsmigration'), ('incursions', '0022_alter_general_options'), ('incursions', '0023_alter_approvedskills_options_alter_badge_options_and_more'), ('incursions', '0024_remove_incursion_constellation_and_more'), ('incursions', '0025_rename_migration_constellation_incursion_constellation_and_more'), ('incursions', '0026_badge_color_badge_letter_badge_order_badge_type_and_more'), ('incursions', '0027_alter_waitlistentryfit_tags_delete_skillhistory'), ('incursions', '0028_alter_badge_color_alter_badge_type'), ('incursions', '0029_alter_badge_options_alter_incursioninfluence_options_and_more'), ('incursions', '0030_alter_incursion_constellation_and_more')]

    initial = True

    dependencies = [
        ('corptools', '0127_alter_corporationaudit_options'),
        ('eve_sde', '0017_remove_itemtype_market_group_id_raw'),
        ('eveonline', '0019_v5squash'),
    ]

    operations = [
        migrations.CreateModel(
            name='General',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ],
            options={
                'permissions': (('basic_waitlist', 'Waitlist Access'), ('waitlist_alts_view', 'View - all of a users Alts ! Danger?'), ('waitlist_announcements_manage', 'Announcements - Manage'), ('waitlist_badges_view', 'Badges - View'), ('waitlist_badges_manage', 'Badges - Manage'), ('waitlist_bans_view', 'Bans - View'), ('waitlist_bans_manage', 'Bans - Manage'), ('waitlist_documentation_view', 'Documentation - View'), ('waitlist_fleet_view', 'Fleet Composition'), ('waitlist_history_view', 'Fleet History'), ('waitlist_notes_view', 'Notes - View'), ('waitlist_notes_manage', 'Notes - Manage'), ('waitlist_search', 'Search'), ('waitlist_stats_view', 'Fleet Stats'), ('waitlist_skills_view', 'Skills'), ('waitlist_pilot_view', 'Pilot Information'), ('waitlist_context_a', 'Context: Number of Pilots'), ('waitlist_context_b', 'Context: Ship Types'), ('waitlist_context_c', 'Context: Time in Waitlist'), ('waitlist_context_d', 'Context: Pilot Names'), ('waitlist_implants_view', 'Context: Implants'), ('waitlist_manage_waitlist', 'Waitlist Manage'), ('waitlist_manage_waitlist_approve_fits', 'Waitlist Manage Fits'), ('waitlist_esi_show_info', 'Show Info'), ('waitlist_esi_search', 'Search - ESI')),
                'managed': False,
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='ApprovedImplantSet',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, verbose_name='Set Name')),
                ('set', models.CharField(choices=[('Amulet', 'Amulet'), ('Ascendancy ', 'Ascendancy '), ('None', 'None')], default='Amulet', max_length=16, verbose_name='Set Type')),
                ('implants', models.CharField(max_length=255, unique=True, verbose_name='Implant List')),
            ],
            options={
                'verbose_name': 'Waitlist - Approved Implant Set',
                'verbose_name_plural': 'Waitlist - Approved Implant Sets',
            },
        ),
        migrations.CreateModel(
            name='ImplantSet',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('implants', models.CharField(max_length=255, unique=True, verbose_name='Implant String')),
            ],
            options={
                'verbose_name': 'Waitlist - Waitlist Implant Set',
                'verbose_name_plural': 'Waitlist - Waitlist Implant Sets',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Waitlist',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(default='Waitlist', max_length=255, verbose_name='Waitlist Name')),
                ('is_open', models.BooleanField(default=False, verbose_name='Is Open')),
            ],
            options={
                'verbose_name': 'Waitlist - Waitlist',
                'verbose_name_plural': 'Waitlist - Waitlist',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Webhook',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('url', models.CharField(max_length=200)),
                ('name', models.CharField(max_length=50)),
                ('security_high', models.BooleanField(verbose_name='Notify on High Security Incursions')),
                ('security_low', models.BooleanField(verbose_name='Notify on Low Security Incursions')),
                ('security_null', models.BooleanField(verbose_name='Notify on Null Security Incursions')),
            ],
            options={
                'verbose_name': 'Destination Webhook',
                'verbose_name_plural': 'Destination Webhooks',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Announcement',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('message', models.TextField(verbose_name='Message')),
                ('is_alert', models.BooleanField(default=False, verbose_name='Is Alert')),
                ('pages', models.TextField(blank=True, null=True, verbose_name='Pages')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
                ('revoked_at', models.DateTimeField(blank=True, default=None, null=True, verbose_name='Revoked At')),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='eveonline.evecharacter', verbose_name='Created By')),
                ('revoked_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='eveonline.evecharacter', verbose_name='Revoked By')),
            ],
            options={
                'verbose_name': 'Waitlist - Announcement',
                'verbose_name_plural': 'Waitlist - Announcements',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='ApprovedFitting',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=25, unique=True, verbose_name='Fitting Name')),
                ('dna', models.TextField(max_length=1024, unique=True, verbose_name='DNA String')),
                ('tier', models.CharField(choices=[('Basic', 'Sponge'), ('Mainline', 'Mainline'), ('Alt', 'Alt'), ('Other', 'Other')], default='Mainline', max_length=16, verbose_name='Tier')),
                ('description', models.CharField(blank=True, max_length=255, null=True, verbose_name='Description')),
                ('ship', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='corptools.eveitemtype', verbose_name='Ship')),
                ('implants', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='incursions.approvedimplantset', verbose_name='Implant Set')),
            ],
            options={
                'verbose_name': 'Waitlist - Approved Fitting',
                'verbose_name_plural': 'Waitlist - Approved Fittings',
            },
        ),
        migrations.CreateModel(
            name='Badge',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=64, unique=True, verbose_name='Badge Name')),
                ('letter', models.CharField(max_length=1, verbose_name='Letter')),
                ('type', models.CharField(choices=[('shield', 'Shield')], default='shield', max_length=16, verbose_name='Badge Type')),
                ('color', models.CharField(choices=[('red', 'Red'), ('green', 'Green'), ('blue', 'Blue'), ('yellow', 'Yellow'), ('purple', 'Purple'), ('neutral', 'Neutral'), ('cyan', 'Cyan')], default='neutral', max_length=16, verbose_name='Badge Color')),
                ('order', models.SmallIntegerField(help_text='Order in which the badge will be displayed, lower is earlier', verbose_name='Order')),
                ('exclude_badge', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='excluded_by', to='incursions.badge', verbose_name='Mutually Exclusive With')),
            ],
            options={
                'verbose_name': 'Waitlist - Badge',
                'verbose_name_plural': 'Waitlist - Badges',
                'ordering': ['order', 'name'],
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Ban',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('entity_type', models.CharField(choices=[('Character', 'Character'), ('Corporation', 'Corporation'), ('Alliance', 'Alliance')], default='Character', max_length=12, verbose_name='Entity Type')),
                ('public_reason', models.CharField(blank=True, max_length=512, null=True, verbose_name='Public Reason')),
                ('reason', models.CharField(max_length=512, verbose_name='Internal Reason')),
                ('issued_at', models.DateTimeField(auto_now_add=True, verbose_name='Issued At')),
                ('revoked_at', models.DateTimeField(blank=True, default=None, null=True, verbose_name='Revoked At')),
                ('entity_alliance', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.eveallianceinfo', verbose_name='Alliance')),
                ('entity_character', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecharacter', verbose_name='Character')),
                ('entity_corporation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecorporationinfo', verbose_name='Corporation')),
                ('issued_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='eveonline.evecharacter', verbose_name='Issued By')),
                ('revoked_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='eveonline.evecharacter', verbose_name='Revoked By')),
            ],
            options={
                'verbose_name': 'Waitlist - Ban',
                'verbose_name_plural': 'Waitlist - Bans',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='CharacterBadges',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('granted_at', models.DateTimeField(auto_now_add=True, verbose_name='Granted At')),
                ('badge', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.badge', verbose_name='Badge')),
                ('character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='incursions_badge', to='eveonline.evecharacter', verbose_name='Character')),
                ('granted_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='eveonline.evecharacter', verbose_name='Granted By')),
            ],
            options={
                'verbose_name': 'Waitlist - Character Badge',
                'verbose_name_plural': 'Waitlist - Character Badges',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='CharacterNote',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('note', models.TextField(verbose_name='Note')),
                ('logged_at', models.DateTimeField(auto_now_add=True, verbose_name='Logged At')),
                ('author', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='eveonline.evecharacter', verbose_name='Author')),
                ('character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecharacter', verbose_name='Character')),
            ],
            options={
                'verbose_name': 'Waitlist - Character Note',
                'verbose_name_plural': 'Waitlist - Character Notes',
                'ordering': ['-logged_at'],
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Fitting',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('dna', models.TextField(max_length=1024, unique=True, verbose_name='DNA String')),
                ('ship', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='corptools.eveitemtype', verbose_name='Ship')),
            ],
            options={
                'verbose_name': 'Waitlist - Waitlist Fit',
                'verbose_name_plural': 'Waitlist - Waitlist Fits',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Fleet',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('is_updating', models.BooleanField(default=False, verbose_name='Is Updating')),
                ('open', models.BooleanField(default=False, verbose_name='Is Open')),
                ('opened', models.DateTimeField(auto_now_add=True, verbose_name='Opened')),
                ('closed', models.DateTimeField(blank=True, default=None, null=True, verbose_name='Closed')),
                ('last_updated', models.DateTimeField(blank=True, verbose_name='Last Updated')),
                ('boss', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecharacter', verbose_name='Fleet Boss')),
            ],
            options={
                'verbose_name': 'Waitlist - Fleet',
                'verbose_name_plural': 'Waitlist - Fleets',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='ActiveFleet',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fleet', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.fleet', verbose_name='Fleet')),
            ],
            options={
                'verbose_name': 'Waitlist - Fleet (Active)',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='FleetActivity',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('is_boss', models.BooleanField(default=False, verbose_name='Is Boss')),
                ('first_seen', models.DateTimeField(auto_now_add=True, verbose_name='First Seen')),
                ('last_seen', models.DateTimeField(verbose_name='Last Seen')),
                ('has_left', models.BooleanField(default=False, verbose_name='Has Left')),
                ('character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecharacter', verbose_name='Character')),
                ('fleet', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='incursions.fleet', verbose_name='Fleet')),
                ('ship', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='corptools.eveitemtype', verbose_name='Ship')),
            ],
            options={
                'verbose_name': 'Waitlist - Fleet Activity',
                'verbose_name_plural': 'Waitlist - Fleet Activities',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='FittingHistory',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('logged_at', models.DateTimeField(auto_now_add=True, verbose_name='Logged At')),
                ('character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecharacter', verbose_name='Character')),
                ('fit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.fitting', verbose_name='Fitting')),
                ('implant_set', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.implantset', verbose_name='Implant Set')),
            ],
            options={
                'verbose_name': 'Waitlist - Fitting History',
                'verbose_name_plural': 'Waitlist - Fitting Histories',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Incursion',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('has_boss', models.BooleanField(default=False, verbose_name='Whether the final encounter has boss or not')),
                ('state', models.CharField(choices=[('established', 'Incursion established'), ('mobilizing', 'Incursion mobilizing'), ('withdrawing', 'Incursion withdrawing'), ('ended', 'Ended')], default='established', max_length=50, verbose_name='The state of this incursion')),
                ('type', models.CharField(choices=[('Incursion', 'Sansha Incursion')], default='Incursion', max_length=50, verbose_name='The type of this incursion')),
                ('established_timestamp', models.DateTimeField(blank=True, null=True, verbose_name='Established')),
                ('mobilizing_timestamp', models.DateTimeField(blank=True, null=True, verbose_name='Mobilizing')),
                ('withdrawing_timestamp', models.DateTimeField(blank=True, null=True, verbose_name='Withdrawing')),
                ('ended_timestamp', models.DateTimeField(blank=True, null=True, verbose_name='Ended')),
                ('constellation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eve_sde.constellation')),
                ('faction', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='eveonline.evefactioninfo', verbose_name='The attacking Faction')),
                ('infested_solar_systems', models.ManyToManyField(blank=True, related_name='+', to='eve_sde.solarsystem')),
                ('staging_solar_system', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eve_sde.solarsystem')),
            ],
            options={
                'verbose_name': 'Incursion',
                'verbose_name_plural': 'Incursions',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='Focus',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('incursion', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='incursions.incursion', verbose_name='Current Focus')),
            ],
            options={
                'verbose_name': 'Current Focus',
                'verbose_name_plural': 'Current Focus',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='IncursionInfluence',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('timestamp', models.DateTimeField(verbose_name='Timestamp')),
                ('influence', models.FloatField(default=0.0, verbose_name='Influence of this incursion as a float from 0 to 1')),
                ('incursion', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='incursions.incursion', verbose_name='Incursion')),
            ],
            options={
                'verbose_name': 'IncursionInfluence',
                'verbose_name_plural': 'IncursionInfluences',
                'ordering': ['-timestamp'],
                'get_latest_by': 'timestamp',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='SkillCheck',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('min', models.IntegerField(default=3, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(5)], verbose_name='Minimum Required')),
                ('elite', models.IntegerField(default=4, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(5)], verbose_name='Elite Level')),
                ('gold', models.IntegerField(default=5, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(5)], verbose_name='Gold Level')),
                ('skill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='corptools.eveitemtype', verbose_name='Skill')),
            ],
            options={
                'verbose_name': 'Waitlist - Skill Check',
                'verbose_name_plural': 'Waitlist - Skill Checks',
            },
        ),
        migrations.CreateModel(
            name='ApprovedSkills',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('ship', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='corptools.eveitemtype', verbose_name='Ship')),
                ('skill_checks', models.ManyToManyField(related_name='+', to='incursions.skillcheck', verbose_name='Skill Checks')),
            ],
            options={
                'verbose_name': 'Waitlist - Approved Skills',
                'verbose_name_plural': 'Waitlist - Approved Skills',
            },
        ),
        migrations.CreateModel(
            name='WaitlistCategory',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True, verbose_name='Category Name')),
            ],
            options={
                'verbose_name': 'Waitlist - Category',
                'verbose_name_plural': 'Waitlist - Categories',
                'indexes': [models.Index(fields=['name'], name='incursions__name_73cfa5_idx')],
            },
        ),
        migrations.CreateModel(
            name='FleetSquad',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('wing_id', models.BigIntegerField(verbose_name='Wing ID')),
                ('squad_id', models.BigIntegerField(verbose_name='Squad ID')),
                ('fleet', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.fleet', verbose_name='Fleet')),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.waitlistcategory', verbose_name='Waitlist Category')),
            ],
            options={
                'verbose_name': 'Waitlist - Fleet Squad',
                'verbose_name_plural': 'Waitlist - Fleet Squad',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='WaitlistCategoryRule',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('ship', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='corptools.eveitemtype', verbose_name='Ship')),
                ('waitlist_category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.waitlistcategory', verbose_name='Waitlist Category')),
            ],
            options={
                'verbose_name': 'Waitlist - Category Rule',
                'verbose_name_plural': 'Waitlist - Category Rules',
            },
        ),
        migrations.CreateModel(
            name='WaitlistEntry',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('joined_at', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Joined At')),
                ('main_character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecharacter', verbose_name='Main Character')),
                ('waitlist', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.waitlist', verbose_name='Waitlist')),
            ],
            options={
                'verbose_name': 'Waitlist - Waitlist Entry',
                'verbose_name_plural': 'Waitlist - Waitlist Entry',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='WaitlistEntryFit',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('approved', models.BooleanField(default=False, verbose_name='Approved')),
                ('tags', models.CharField(help_text='Comma Seperated: Tags are fit specific Badges, such as First/New/Alt/Skills', max_length=255, verbose_name='Tags')),
                ('fit_analysis', models.JSONField(blank=True, null=True, verbose_name='Fit Analysis')),
                ('review_comment', models.TextField(blank=True, null=True, verbose_name='Review Comment')),
                ('is_alt', models.BooleanField(default=False, verbose_name='Is Alt')),
                ('messagexup', models.TextField(blank=True, null=True, verbose_name='Message XUP')),
                ('cached_time_in_fleet', models.BigIntegerField(verbose_name='Cached Time In Fleet')),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.waitlistcategory', verbose_name='Waitlist Category')),
                ('character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='eveonline.evecharacter', verbose_name='Character')),
                ('fit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.fitting', verbose_name='Fitting')),
                ('implant_set', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='incursions.implantset', verbose_name='Implant Set')),
                ('waitlist_entry', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='incursions.waitlistentry', verbose_name='Waitlist Entry')),
            ],
            options={
                'verbose_name': 'Waitlist - Waitlist Entry Fit',
                'verbose_name_plural': 'Waitlist - Waitlist Entry Fit',
                'default_permissions': (),
            },
        ),
        migrations.CreateModel(
            name='IncursionsConfig',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('status_webhooks', models.ManyToManyField(blank=True, related_name='+', to='incursions.webhook', verbose_name='Destination Webhook for Incursion Updates')),
                ('waitlist_webhooks', models.ManyToManyField(blank=True, related_name='+', to='incursions.webhook', verbose_name='Destination Webhook for Waitlist Updates')),
            ],
            options={
                'verbose_name': 'AA Incursions Settings',
                'verbose_name_plural': 'AA Incursions Settings',
                'default_permissions': (),
            },
        ),
        migrations.AddIndex(
            model_name='badge',
            index=models.Index(fields=['order'], name='badge_order_idx'),
        ),
        migrations.AddIndex(
            model_name='characterbadges',
            index=models.Index(fields=['badge'], name='character_badge_idx'),
        ),
        migrations.AddConstraint(
            model_name='characterbadges',
            constraint=models.UniqueConstraint(fields=('character', 'badge'), name='uniq_character_badge'),
        ),
        migrations.AddIndex(
            model_name='incursioninfluence',
            index=models.Index(fields=['incursion', 'timestamp'], name='incursion_ts_idx'),
        ),
        migrations.AddConstraint(
            model_name='incursioninfluence',
            constraint=models.UniqueConstraint(fields=('incursion', 'timestamp'), name='UniqueIncursionInfluenceLogTimestamp'),
        ),
        migrations.AlterUniqueTogether(
            name='fleetsquad',
            unique_together={('fleet', 'category')},
        ),
    ]
