# Generated by Django 5.1.6 on 2025-12-26 14:10

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

import apps.core.choices.fields
import apps.core.state_machine.fields


class Migration(migrations.Migration):

    dependencies = [
        ("parks", "0024_add_timezone_default"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AlterModelOptions(
            name="company",
            options={
                "ordering": ["name"],
                "verbose_name": "Company",
                "verbose_name_plural": "Companies",
            },
        ),
        migrations.AlterModelOptions(
            name="park",
            options={
                "ordering": ["name"],
                "verbose_name": "Park",
                "verbose_name_plural": "Parks",
            },
        ),
        migrations.AlterModelOptions(
            name="parkarea",
            options={
                "ordering": ["park", "name"],
                "verbose_name": "Park Area",
                "verbose_name_plural": "Park Areas",
            },
        ),
        migrations.AlterModelOptions(
            name="parkphoto",
            options={
                "ordering": ["-is_primary", "-created_at"],
                "verbose_name": "Park Photo",
                "verbose_name_plural": "Park Photos",
            },
        ),
        migrations.AlterModelOptions(
            name="parkreview",
            options={
                "ordering": ["-created_at"],
                "verbose_name": "Park Review",
                "verbose_name_plural": "Park Reviews",
            },
        ),
        migrations.AlterField(
            model_name="company",
            name="description",
            field=models.TextField(blank=True, help_text="Detailed company description"),
        ),
        migrations.AlterField(
            model_name="company",
            name="founded_year",
            field=models.PositiveIntegerField(blank=True, help_text="Year the company was founded", null=True),
        ),
        migrations.AlterField(
            model_name="company",
            name="name",
            field=models.CharField(help_text="Company name", max_length=255),
        ),
        migrations.AlterField(
            model_name="company",
            name="parks_count",
            field=models.IntegerField(default=0, help_text="Number of parks operated (auto-calculated)"),
        ),
        migrations.AlterField(
            model_name="company",
            name="rides_count",
            field=models.IntegerField(default=0, help_text="Number of rides manufactured (auto-calculated)"),
        ),
        migrations.AlterField(
            model_name="company",
            name="roles",
            field=django.contrib.postgres.fields.ArrayField(
                base_field=apps.core.choices.fields.RichChoiceField(
                    allow_deprecated=False,
                    choice_group="company_roles",
                    choices=[
                        ("OPERATOR", "Park Operator"),
                        ("PROPERTY_OWNER", "Property Owner"),
                    ],
                    domain="parks",
                    max_length=20,
                ),
                blank=True,
                default=list,
                help_text="Company roles (operator, manufacturer, etc.)",
                size=None,
            ),
        ),
        migrations.AlterField(
            model_name="company",
            name="slug",
            field=models.SlugField(help_text="URL-friendly identifier", max_length=255, unique=True),
        ),
        migrations.AlterField(
            model_name="company",
            name="website",
            field=models.URLField(blank=True, help_text="Company website URL"),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="description",
            field=models.TextField(blank=True, help_text="Detailed company description"),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="founded_year",
            field=models.PositiveIntegerField(blank=True, help_text="Year the company was founded", null=True),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="name",
            field=models.CharField(help_text="Company name", max_length=255),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="parks_count",
            field=models.IntegerField(default=0, help_text="Number of parks operated (auto-calculated)"),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="rides_count",
            field=models.IntegerField(default=0, help_text="Number of rides manufactured (auto-calculated)"),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="roles",
            field=django.contrib.postgres.fields.ArrayField(
                base_field=apps.core.choices.fields.RichChoiceField(
                    allow_deprecated=False,
                    choice_group="company_roles",
                    choices=[
                        ("OPERATOR", "Park Operator"),
                        ("PROPERTY_OWNER", "Property Owner"),
                    ],
                    domain="parks",
                    max_length=20,
                ),
                blank=True,
                default=list,
                help_text="Company roles (operator, manufacturer, etc.)",
                size=None,
            ),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="slug",
            field=models.SlugField(db_index=False, help_text="URL-friendly identifier", max_length=255),
        ),
        migrations.AlterField(
            model_name="companyevent",
            name="website",
            field=models.URLField(blank=True, help_text="Company website URL"),
        ),
        migrations.AlterField(
            model_name="companyheadquarters",
            name="company",
            field=models.OneToOneField(
                help_text="Company this headquarters belongs to",
                on_delete=django.db.models.deletion.CASCADE,
                related_name="headquarters",
                to="parks.company",
            ),
        ),
        migrations.AlterField(
            model_name="companyheadquartersevent",
            name="company",
            field=models.ForeignKey(
                db_constraint=False,
                help_text="Company this headquarters belongs to",
                on_delete=django.db.models.deletion.DO_NOTHING,
                related_name="+",
                related_query_name="+",
                to="parks.company",
            ),
        ),
        migrations.AlterField(
            model_name="park",
            name="average_rating",
            field=models.DecimalField(
                blank=True,
                decimal_places=2,
                help_text="Average user rating (1–10)",
                max_digits=3,
                null=True,
            ),
        ),
        migrations.AlterField(
            model_name="park",
            name="closing_date",
            field=models.DateField(blank=True, help_text="Closing date", null=True),
        ),
        migrations.AlterField(
            model_name="park",
            name="coaster_count",
            field=models.IntegerField(blank=True, help_text="Total coaster count", null=True),
        ),
        migrations.AlterField(
            model_name="park",
            name="description",
            field=models.TextField(blank=True, help_text="Park description"),
        ),
        migrations.AlterField(
            model_name="park",
            name="name",
            field=models.CharField(help_text="Park name", max_length=255),
        ),
        migrations.AlterField(
            model_name="park",
            name="opening_date",
            field=models.DateField(blank=True, help_text="Opening date", null=True),
        ),
        migrations.AlterField(
            model_name="park",
            name="operating_season",
            field=models.CharField(blank=True, help_text="Operating season", max_length=255),
        ),
        migrations.AlterField(
            model_name="park",
            name="ride_count",
            field=models.IntegerField(blank=True, help_text="Total ride count", null=True),
        ),
        migrations.AlterField(
            model_name="park",
            name="size_acres",
            field=models.DecimalField(
                blank=True,
                decimal_places=2,
                help_text="Park size in acres",
                max_digits=10,
                null=True,
            ),
        ),
        migrations.AlterField(
            model_name="park",
            name="slug",
            field=models.SlugField(help_text="URL-friendly identifier", max_length=255, unique=True),
        ),
        migrations.AlterField(
            model_name="park",
            name="status",
            field=apps.core.state_machine.fields.RichFSMField(
                allow_deprecated=False,
                choice_group="statuses",
                choices=[],
                default="OPERATING",
                domain="parks",
                max_length=20,
            ),
        ),
        migrations.AlterField(
            model_name="park",
            name="website",
            field=models.URLField(blank=True, help_text="Official website URL"),
        ),
        migrations.AlterField(
            model_name="parkarea",
            name="closing_date",
            field=models.DateField(blank=True, help_text="Date this area closed (if applicable)", null=True),
        ),
        migrations.AlterField(
            model_name="parkarea",
            name="description",
            field=models.TextField(blank=True, help_text="Detailed description of the area"),
        ),
        migrations.AlterField(
            model_name="parkarea",
            name="name",
            field=models.CharField(help_text="Name of the park area", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkarea",
            name="opening_date",
            field=models.DateField(blank=True, help_text="Date this area opened", null=True),
        ),
        migrations.AlterField(
            model_name="parkarea",
            name="park",
            field=models.ForeignKey(
                help_text="Park this area belongs to",
                on_delete=django.db.models.deletion.CASCADE,
                related_name="areas",
                to="parks.park",
            ),
        ),
        migrations.AlterField(
            model_name="parkarea",
            name="slug",
            field=models.SlugField(help_text="URL-friendly identifier (unique within park)", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkareaevent",
            name="closing_date",
            field=models.DateField(blank=True, help_text="Date this area closed (if applicable)", null=True),
        ),
        migrations.AlterField(
            model_name="parkareaevent",
            name="description",
            field=models.TextField(blank=True, help_text="Detailed description of the area"),
        ),
        migrations.AlterField(
            model_name="parkareaevent",
            name="name",
            field=models.CharField(help_text="Name of the park area", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkareaevent",
            name="opening_date",
            field=models.DateField(blank=True, help_text="Date this area opened", null=True),
        ),
        migrations.AlterField(
            model_name="parkareaevent",
            name="park",
            field=models.ForeignKey(
                db_constraint=False,
                help_text="Park this area belongs to",
                on_delete=django.db.models.deletion.DO_NOTHING,
                related_name="+",
                related_query_name="+",
                to="parks.park",
            ),
        ),
        migrations.AlterField(
            model_name="parkareaevent",
            name="slug",
            field=models.SlugField(
                db_index=False,
                help_text="URL-friendly identifier (unique within park)",
                max_length=255,
            ),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="average_rating",
            field=models.DecimalField(
                blank=True,
                decimal_places=2,
                help_text="Average user rating (1–10)",
                max_digits=3,
                null=True,
            ),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="closing_date",
            field=models.DateField(blank=True, help_text="Closing date", null=True),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="coaster_count",
            field=models.IntegerField(blank=True, help_text="Total coaster count", null=True),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="description",
            field=models.TextField(blank=True, help_text="Park description"),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="name",
            field=models.CharField(help_text="Park name", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="opening_date",
            field=models.DateField(blank=True, help_text="Opening date", null=True),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="operating_season",
            field=models.CharField(blank=True, help_text="Operating season", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="ride_count",
            field=models.IntegerField(blank=True, help_text="Total ride count", null=True),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="size_acres",
            field=models.DecimalField(
                blank=True,
                decimal_places=2,
                help_text="Park size in acres",
                max_digits=10,
                null=True,
            ),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="slug",
            field=models.SlugField(db_index=False, help_text="URL-friendly identifier", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="status",
            field=apps.core.state_machine.fields.RichFSMField(
                allow_deprecated=False,
                choice_group="statuses",
                choices=[],
                default="OPERATING",
                domain="parks",
                max_length=20,
            ),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="timezone",
            field=models.CharField(
                blank=True,
                default="UTC",
                help_text="Timezone identifier for park operations (e.g., 'America/New_York')",
                max_length=50,
            ),
        ),
        migrations.AlterField(
            model_name="parkevent",
            name="website",
            field=models.URLField(blank=True, help_text="Official website URL"),
        ),
        migrations.AlterField(
            model_name="parkphoto",
            name="alt_text",
            field=models.CharField(
                blank=True,
                help_text="Alternative text for accessibility",
                max_length=255,
            ),
        ),
        migrations.AlterField(
            model_name="parkphoto",
            name="caption",
            field=models.CharField(blank=True, help_text="Photo caption or description", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkphoto",
            name="is_approved",
            field=models.BooleanField(
                default=False,
                help_text="Whether this photo has been approved by moderators",
            ),
        ),
        migrations.AlterField(
            model_name="parkphoto",
            name="is_primary",
            field=models.BooleanField(
                default=False,
                help_text="Whether this is the primary photo for the park",
            ),
        ),
        migrations.AlterField(
            model_name="parkphoto",
            name="park",
            field=models.ForeignKey(
                help_text="Park this photo belongs to",
                on_delete=django.db.models.deletion.CASCADE,
                related_name="photos",
                to="parks.park",
            ),
        ),
        migrations.AlterField(
            model_name="parkphoto",
            name="uploaded_by",
            field=models.ForeignKey(
                help_text="User who uploaded this photo",
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="uploaded_park_photos",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterField(
            model_name="parkphotoevent",
            name="alt_text",
            field=models.CharField(
                blank=True,
                help_text="Alternative text for accessibility",
                max_length=255,
            ),
        ),
        migrations.AlterField(
            model_name="parkphotoevent",
            name="caption",
            field=models.CharField(blank=True, help_text="Photo caption or description", max_length=255),
        ),
        migrations.AlterField(
            model_name="parkphotoevent",
            name="is_approved",
            field=models.BooleanField(
                default=False,
                help_text="Whether this photo has been approved by moderators",
            ),
        ),
        migrations.AlterField(
            model_name="parkphotoevent",
            name="is_primary",
            field=models.BooleanField(
                default=False,
                help_text="Whether this is the primary photo for the park",
            ),
        ),
        migrations.AlterField(
            model_name="parkphotoevent",
            name="park",
            field=models.ForeignKey(
                db_constraint=False,
                help_text="Park this photo belongs to",
                on_delete=django.db.models.deletion.DO_NOTHING,
                related_name="+",
                related_query_name="+",
                to="parks.park",
            ),
        ),
        migrations.AlterField(
            model_name="parkphotoevent",
            name="uploaded_by",
            field=models.ForeignKey(
                db_constraint=False,
                help_text="User who uploaded this photo",
                null=True,
                on_delete=django.db.models.deletion.DO_NOTHING,
                related_name="+",
                related_query_name="+",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="content",
            field=models.TextField(help_text="Review content"),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="is_published",
            field=models.BooleanField(default=True, help_text="Whether this review is publicly visible"),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="moderated_at",
            field=models.DateTimeField(blank=True, help_text="When this review was moderated", null=True),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="moderated_by",
            field=models.ForeignKey(
                blank=True,
                help_text="Moderator who reviewed this",
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="moderated_park_reviews",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="moderation_notes",
            field=models.TextField(blank=True, help_text="Internal notes from moderators"),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="park",
            field=models.ForeignKey(
                help_text="Park being reviewed",
                on_delete=django.db.models.deletion.CASCADE,
                related_name="reviews",
                to="parks.park",
            ),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="rating",
            field=models.PositiveSmallIntegerField(
                help_text="Rating from 1-10",
                validators=[
                    django.core.validators.MinValueValidator(1),
                    django.core.validators.MaxValueValidator(10),
                ],
            ),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="title",
            field=models.CharField(help_text="Review title", max_length=200),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="user",
            field=models.ForeignKey(
                help_text="User who wrote the review",
                on_delete=django.db.models.deletion.CASCADE,
                related_name="park_reviews",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterField(
            model_name="parkreview",
            name="visit_date",
            field=models.DateField(help_text="Date the user visited the park"),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="content",
            field=models.TextField(help_text="Review content"),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="is_published",
            field=models.BooleanField(default=True, help_text="Whether this review is publicly visible"),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="moderated_at",
            field=models.DateTimeField(blank=True, help_text="When this review was moderated", null=True),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="moderated_by",
            field=models.ForeignKey(
                blank=True,
                db_constraint=False,
                help_text="Moderator who reviewed this",
                null=True,
                on_delete=django.db.models.deletion.DO_NOTHING,
                related_name="+",
                related_query_name="+",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="moderation_notes",
            field=models.TextField(blank=True, help_text="Internal notes from moderators"),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="park",
            field=models.ForeignKey(
                db_constraint=False,
                help_text="Park being reviewed",
                on_delete=django.db.models.deletion.DO_NOTHING,
                related_name="+",
                related_query_name="+",
                to="parks.park",
            ),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="rating",
            field=models.PositiveSmallIntegerField(
                help_text="Rating from 1-10",
                validators=[
                    django.core.validators.MinValueValidator(1),
                    django.core.validators.MaxValueValidator(10),
                ],
            ),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="title",
            field=models.CharField(help_text="Review title", max_length=200),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="user",
            field=models.ForeignKey(
                db_constraint=False,
                help_text="User who wrote the review",
                on_delete=django.db.models.deletion.DO_NOTHING,
                related_name="+",
                related_query_name="+",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterField(
            model_name="parkreviewevent",
            name="visit_date",
            field=models.DateField(help_text="Date the user visited the park"),
        ),
    ]
