# Generated by Django 5.2.9 on 2026-01-07 20:30

import django.contrib.postgres.fields
import pgtrigger.compiler
import pgtrigger.migrations
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('rides', '0033_add_ride_subtype_and_age'),
    ]

    operations = [
        pgtrigger.migrations.RemoveTrigger(
            model_name='ride',
            name='insert_insert',
        ),
        pgtrigger.migrations.RemoveTrigger(
            model_name='ride',
            name='update_update',
        ),
        migrations.AddField(
            model_name='ride',
            name='animatronics_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of animatronic figures', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='arm_length_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Length of ride arm in meters', max_digits=5, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='boat_capacity',
            field=models.PositiveIntegerField(blank=True, help_text='Number of passengers per boat/vehicle', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='character_theme',
            field=models.CharField(blank=True, help_text='Character or IP theme (e.g., Paw Patrol, Sesame Street)', max_length=200),
        ),
        migrations.AddField(
            model_name='ride',
            name='coaster_type',
            field=models.CharField(blank=True, help_text='Coaster structure type: steel, wood, or hybrid', max_length=20),
        ),
        migrations.AddField(
            model_name='ride',
            name='drop_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum drop height in meters', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='educational_theme',
            field=models.CharField(blank=True, help_text='Educational or learning theme if applicable', max_length=200),
        ),
        migrations.AddField(
            model_name='ride',
            name='flume_type',
            field=models.CharField(blank=True, help_text='Type of flume or water channel', max_length=100),
        ),
        migrations.AddField(
            model_name='ride',
            name='gforce_max',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum G-force experienced', max_digits=4, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='height_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Height of the ride structure in meters', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='intensity_level',
            field=models.CharField(blank=True, help_text='Intensity classification: family, thrill, or extreme', max_length=20),
        ),
        migrations.AddField(
            model_name='ride',
            name='length_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Total track/ride length in meters', max_digits=8, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='max_age',
            field=models.PositiveIntegerField(blank=True, help_text='Maximum recommended age in years', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='max_height_reached_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum height reached during ride cycle in meters', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='max_speed_kmh',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum speed in kilometers per hour', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='min_age',
            field=models.PositiveIntegerField(blank=True, help_text='Minimum recommended age in years', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='motion_pattern',
            field=models.CharField(blank=True, help_text="Description of the ride's motion pattern", max_length=200),
        ),
        migrations.AddField(
            model_name='ride',
            name='platform_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of ride platforms or gondolas', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='projection_type',
            field=models.CharField(blank=True, help_text='Type of projection technology used', max_length=100),
        ),
        migrations.AddField(
            model_name='ride',
            name='propulsion_method',
            field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=50), blank=True, default=list, help_text="Propulsion methods (e.g., ['chain_lift', 'lsm'])", size=None),
        ),
        migrations.AddField(
            model_name='ride',
            name='ride_system',
            field=models.CharField(blank=True, help_text='Ride system type (e.g., trackless, omnimover)', max_length=100),
        ),
        migrations.AddField(
            model_name='ride',
            name='rotation_speed_rpm',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Rotation speed in revolutions per minute', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='rotation_type',
            field=models.CharField(blank=True, help_text='Rotation axis: horizontal, vertical, multi_axis, pendulum, or none', max_length=20),
        ),
        migrations.AddField(
            model_name='ride',
            name='round_trip_duration_seconds',
            field=models.PositiveIntegerField(blank=True, help_text='Duration of a complete round trip in seconds', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='route_length_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Total route length in meters', max_digits=8, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='scenes_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of distinct scenes or show sections', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='seating_type',
            field=models.CharField(blank=True, help_text='Seating configuration: sit_down, inverted, flying, stand_up, etc.', max_length=20),
        ),
        migrations.AddField(
            model_name='ride',
            name='show_duration_seconds',
            field=models.PositiveIntegerField(blank=True, help_text='Duration of show elements in seconds', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='splash_height_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum splash height in meters', max_digits=5, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='stations_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of stations or stops', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='story_description',
            field=models.TextField(blank=True, help_text='Narrative or story description for the ride'),
        ),
        migrations.AddField(
            model_name='ride',
            name='support_material',
            field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=50), blank=True, default=list, help_text='Support structure material types', size=None),
        ),
        migrations.AddField(
            model_name='ride',
            name='swing_angle_degrees',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum swing angle in degrees', max_digits=5, null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='theme_name',
            field=models.CharField(blank=True, help_text='Primary theme or IP name', max_length=200),
        ),
        migrations.AddField(
            model_name='ride',
            name='track_material',
            field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=50), blank=True, default=list, help_text="Track material types (e.g., ['steel', 'wood'])", size=None),
        ),
        migrations.AddField(
            model_name='ride',
            name='transport_type',
            field=models.CharField(blank=True, help_text='Transport mode: train, monorail, skylift, ferry, peoplemover, or cable_car', max_length=20),
        ),
        migrations.AddField(
            model_name='ride',
            name='vehicle_capacity',
            field=models.PositiveIntegerField(blank=True, help_text='Passenger capacity per vehicle', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='vehicles_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of vehicles in operation', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='water_depth_cm',
            field=models.PositiveIntegerField(blank=True, help_text='Water depth in centimeters', null=True),
        ),
        migrations.AddField(
            model_name='ride',
            name='wetness_level',
            field=models.CharField(blank=True, help_text='Expected wetness: dry, light, moderate, or soaked', max_length=20),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='animatronics_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of animatronic figures', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='arm_length_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Length of ride arm in meters', max_digits=5, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='boat_capacity',
            field=models.PositiveIntegerField(blank=True, help_text='Number of passengers per boat/vehicle', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='character_theme',
            field=models.CharField(blank=True, help_text='Character or IP theme (e.g., Paw Patrol, Sesame Street)', max_length=200),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='coaster_type',
            field=models.CharField(blank=True, help_text='Coaster structure type: steel, wood, or hybrid', max_length=20),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='drop_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum drop height in meters', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='educational_theme',
            field=models.CharField(blank=True, help_text='Educational or learning theme if applicable', max_length=200),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='flume_type',
            field=models.CharField(blank=True, help_text='Type of flume or water channel', max_length=100),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='gforce_max',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum G-force experienced', max_digits=4, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='height_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Height of the ride structure in meters', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='intensity_level',
            field=models.CharField(blank=True, help_text='Intensity classification: family, thrill, or extreme', max_length=20),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='length_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Total track/ride length in meters', max_digits=8, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='max_age',
            field=models.PositiveIntegerField(blank=True, help_text='Maximum recommended age in years', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='max_height_reached_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum height reached during ride cycle in meters', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='max_speed_kmh',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum speed in kilometers per hour', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='min_age',
            field=models.PositiveIntegerField(blank=True, help_text='Minimum recommended age in years', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='motion_pattern',
            field=models.CharField(blank=True, help_text="Description of the ride's motion pattern", max_length=200),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='platform_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of ride platforms or gondolas', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='projection_type',
            field=models.CharField(blank=True, help_text='Type of projection technology used', max_length=100),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='propulsion_method',
            field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=50), blank=True, default=list, help_text="Propulsion methods (e.g., ['chain_lift', 'lsm'])", size=None),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='ride_system',
            field=models.CharField(blank=True, help_text='Ride system type (e.g., trackless, omnimover)', max_length=100),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='rotation_speed_rpm',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Rotation speed in revolutions per minute', max_digits=6, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='rotation_type',
            field=models.CharField(blank=True, help_text='Rotation axis: horizontal, vertical, multi_axis, pendulum, or none', max_length=20),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='round_trip_duration_seconds',
            field=models.PositiveIntegerField(blank=True, help_text='Duration of a complete round trip in seconds', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='route_length_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Total route length in meters', max_digits=8, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='scenes_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of distinct scenes or show sections', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='seating_type',
            field=models.CharField(blank=True, help_text='Seating configuration: sit_down, inverted, flying, stand_up, etc.', max_length=20),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='show_duration_seconds',
            field=models.PositiveIntegerField(blank=True, help_text='Duration of show elements in seconds', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='splash_height_meters',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum splash height in meters', max_digits=5, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='stations_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of stations or stops', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='story_description',
            field=models.TextField(blank=True, help_text='Narrative or story description for the ride'),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='support_material',
            field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=50), blank=True, default=list, help_text='Support structure material types', size=None),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='swing_angle_degrees',
            field=models.DecimalField(blank=True, decimal_places=2, help_text='Maximum swing angle in degrees', max_digits=5, null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='theme_name',
            field=models.CharField(blank=True, help_text='Primary theme or IP name', max_length=200),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='track_material',
            field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=50), blank=True, default=list, help_text="Track material types (e.g., ['steel', 'wood'])", size=None),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='transport_type',
            field=models.CharField(blank=True, help_text='Transport mode: train, monorail, skylift, ferry, peoplemover, or cable_car', max_length=20),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='vehicle_capacity',
            field=models.PositiveIntegerField(blank=True, help_text='Passenger capacity per vehicle', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='vehicles_count',
            field=models.PositiveIntegerField(blank=True, help_text='Number of vehicles in operation', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='water_depth_cm',
            field=models.PositiveIntegerField(blank=True, help_text='Water depth in centimeters', null=True),
        ),
        migrations.AddField(
            model_name='rideevent',
            name='wetness_level',
            field=models.CharField(blank=True, help_text='Expected wetness: dry, light, moderate, or soaked', max_length=20),
        ),
        pgtrigger.migrations.AddTrigger(
            model_name='ride',
            trigger=pgtrigger.compiler.Trigger(name='insert_insert', sql=pgtrigger.compiler.UpsertTriggerSql(func='INSERT INTO "rides_rideevent" ("age_requirement", "animatronics_count", "arm_length_meters", "average_rating", "banner_image_id", "boat_capacity", "capacity_per_hour", "card_image_id", "category", "character_theme", "closing_date", "closing_date_precision", "coaster_type", "created_at", "description", "designer_id", "drop_meters", "educational_theme", "flume_type", "gforce_max", "height_meters", "id", "intensity_level", "length_meters", "manufacturer_id", "max_age", "max_height_in", "max_height_reached_meters", "max_speed_kmh", "min_age", "min_height_in", "motion_pattern", "name", "opening_date", "opening_date_precision", "opening_year", "park_area_id", "park_id", "park_url", "pgh_context_id", "pgh_created_at", "pgh_label", "pgh_obj_id", "platform_count", "post_closing_status", "projection_type", "propulsion_method", "ride_duration_seconds", "ride_model_id", "ride_sub_type", "ride_system", "rotation_speed_rpm", "rotation_type", "round_trip_duration_seconds", "route_length_meters", "scenes_count", "search_text", "seating_type", "show_duration_seconds", "slug", "splash_height_meters", "stations_count", "status", "status_since", "story_description", "support_material", "swing_angle_degrees", "theme_name", "track_material", "transport_type", "updated_at", "url", "vehicle_capacity", "vehicles_count", "water_depth_cm", "wetness_level") VALUES (NEW."age_requirement", NEW."animatronics_count", NEW."arm_length_meters", NEW."average_rating", NEW."banner_image_id", NEW."boat_capacity", NEW."capacity_per_hour", NEW."card_image_id", NEW."category", NEW."character_theme", NEW."closing_date", NEW."closing_date_precision", NEW."coaster_type", NEW."created_at", NEW."description", NEW."designer_id", NEW."drop_meters", NEW."educational_theme", NEW."flume_type", NEW."gforce_max", NEW."height_meters", NEW."id", NEW."intensity_level", NEW."length_meters", NEW."manufacturer_id", NEW."max_age", NEW."max_height_in", NEW."max_height_reached_meters", NEW."max_speed_kmh", NEW."min_age", NEW."min_height_in", NEW."motion_pattern", NEW."name", NEW."opening_date", NEW."opening_date_precision", NEW."opening_year", NEW."park_area_id", NEW."park_id", NEW."park_url", _pgh_attach_context(), NOW(), \'insert\', NEW."id", NEW."platform_count", NEW."post_closing_status", NEW."projection_type", NEW."propulsion_method", NEW."ride_duration_seconds", NEW."ride_model_id", NEW."ride_sub_type", NEW."ride_system", NEW."rotation_speed_rpm", NEW."rotation_type", NEW."round_trip_duration_seconds", NEW."route_length_meters", NEW."scenes_count", NEW."search_text", NEW."seating_type", NEW."show_duration_seconds", NEW."slug", NEW."splash_height_meters", NEW."stations_count", NEW."status", NEW."status_since", NEW."story_description", NEW."support_material", NEW."swing_angle_degrees", NEW."theme_name", NEW."track_material", NEW."transport_type", NEW."updated_at", NEW."url", NEW."vehicle_capacity", NEW."vehicles_count", NEW."water_depth_cm", NEW."wetness_level"); RETURN NULL;', hash='0515185b26eb9635e7b7f7d52cfa87b90636c409', operation='INSERT', pgid='pgtrigger_insert_insert_52074', table='rides_ride', when='AFTER')),
        ),
        pgtrigger.migrations.AddTrigger(
            model_name='ride',
            trigger=pgtrigger.compiler.Trigger(name='update_update', sql=pgtrigger.compiler.UpsertTriggerSql(condition='WHEN (OLD.* IS DISTINCT FROM NEW.*)', func='INSERT INTO "rides_rideevent" ("age_requirement", "animatronics_count", "arm_length_meters", "average_rating", "banner_image_id", "boat_capacity", "capacity_per_hour", "card_image_id", "category", "character_theme", "closing_date", "closing_date_precision", "coaster_type", "created_at", "description", "designer_id", "drop_meters", "educational_theme", "flume_type", "gforce_max", "height_meters", "id", "intensity_level", "length_meters", "manufacturer_id", "max_age", "max_height_in", "max_height_reached_meters", "max_speed_kmh", "min_age", "min_height_in", "motion_pattern", "name", "opening_date", "opening_date_precision", "opening_year", "park_area_id", "park_id", "park_url", "pgh_context_id", "pgh_created_at", "pgh_label", "pgh_obj_id", "platform_count", "post_closing_status", "projection_type", "propulsion_method", "ride_duration_seconds", "ride_model_id", "ride_sub_type", "ride_system", "rotation_speed_rpm", "rotation_type", "round_trip_duration_seconds", "route_length_meters", "scenes_count", "search_text", "seating_type", "show_duration_seconds", "slug", "splash_height_meters", "stations_count", "status", "status_since", "story_description", "support_material", "swing_angle_degrees", "theme_name", "track_material", "transport_type", "updated_at", "url", "vehicle_capacity", "vehicles_count", "water_depth_cm", "wetness_level") VALUES (NEW."age_requirement", NEW."animatronics_count", NEW."arm_length_meters", NEW."average_rating", NEW."banner_image_id", NEW."boat_capacity", NEW."capacity_per_hour", NEW."card_image_id", NEW."category", NEW."character_theme", NEW."closing_date", NEW."closing_date_precision", NEW."coaster_type", NEW."created_at", NEW."description", NEW."designer_id", NEW."drop_meters", NEW."educational_theme", NEW."flume_type", NEW."gforce_max", NEW."height_meters", NEW."id", NEW."intensity_level", NEW."length_meters", NEW."manufacturer_id", NEW."max_age", NEW."max_height_in", NEW."max_height_reached_meters", NEW."max_speed_kmh", NEW."min_age", NEW."min_height_in", NEW."motion_pattern", NEW."name", NEW."opening_date", NEW."opening_date_precision", NEW."opening_year", NEW."park_area_id", NEW."park_id", NEW."park_url", _pgh_attach_context(), NOW(), \'update\', NEW."id", NEW."platform_count", NEW."post_closing_status", NEW."projection_type", NEW."propulsion_method", NEW."ride_duration_seconds", NEW."ride_model_id", NEW."ride_sub_type", NEW."ride_system", NEW."rotation_speed_rpm", NEW."rotation_type", NEW."round_trip_duration_seconds", NEW."route_length_meters", NEW."scenes_count", NEW."search_text", NEW."seating_type", NEW."show_duration_seconds", NEW."slug", NEW."splash_height_meters", NEW."stations_count", NEW."status", NEW."status_since", NEW."story_description", NEW."support_material", NEW."swing_angle_degrees", NEW."theme_name", NEW."track_material", NEW."transport_type", NEW."updated_at", NEW."url", NEW."vehicle_capacity", NEW."vehicles_count", NEW."water_depth_cm", NEW."wetness_level"); RETURN NULL;', hash='e0bb5999b75a6d10f73651cba99c40e06bb2b49c', operation='UPDATE', pgid='pgtrigger_update_update_4917a', table='rides_ride', when='AFTER')),
        ),
    ]
