# Generated by Django 4.2.8 on 2025-11-08 20:44 from django.conf import settings import django.core.validators from django.db import migrations, models import django.db.models.deletion import django.utils.timezone import model_utils.fields class Migration(migrations.Migration): initial = True dependencies = [ ("contenttypes", "0002_remove_content_type_name"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Review", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "created", model_utils.fields.AutoCreatedField( default=django.utils.timezone.now, editable=False, verbose_name="created", ), ), ( "modified", model_utils.fields.AutoLastModifiedField( default=django.utils.timezone.now, editable=False, verbose_name="modified", ), ), ("object_id", models.PositiveIntegerField()), ("title", models.CharField(max_length=200)), ("content", models.TextField()), ( "rating", models.IntegerField( help_text="Rating from 1 to 5 stars", validators=[ django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5), ], ), ), ( "visit_date", models.DateField( blank=True, help_text="Date the user visited", null=True ), ), ( "wait_time_minutes", models.PositiveIntegerField( blank=True, help_text="Wait time in minutes", null=True ), ), ( "helpful_votes", models.PositiveIntegerField( default=0, help_text="Number of users who found this review helpful", ), ), ( "total_votes", models.PositiveIntegerField( default=0, help_text="Total number of votes (helpful + not helpful)", ), ), ( "moderation_status", models.CharField( choices=[ ("pending", "Pending"), ("approved", "Approved"), ("rejected", "Rejected"), ], db_index=True, default="pending", max_length=20, ), ), ( "moderation_notes", models.TextField(blank=True, help_text="Notes from moderator"), ), ("moderated_at", models.DateTimeField(blank=True, null=True)), ( "content_type", models.ForeignKey( limit_choices_to={"model__in": ("park", "ride")}, on_delete=django.db.models.deletion.CASCADE, to="contenttypes.contenttype", ), ), ( "moderated_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="moderated_reviews", to=settings.AUTH_USER_MODEL, ), ), ( "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="reviews", to=settings.AUTH_USER_MODEL, ), ), ], options={ "ordering": ["-created"], }, ), migrations.CreateModel( name="ReviewHelpfulVote", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "created", model_utils.fields.AutoCreatedField( default=django.utils.timezone.now, editable=False, verbose_name="created", ), ), ( "modified", model_utils.fields.AutoLastModifiedField( default=django.utils.timezone.now, editable=False, verbose_name="modified", ), ), ( "is_helpful", models.BooleanField( help_text="True if user found review helpful, False if not helpful" ), ), ( "review", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="vote_records", to="reviews.review", ), ), ( "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="review_votes", to=settings.AUTH_USER_MODEL, ), ), ], options={ "indexes": [ models.Index( fields=["review", "user"], name="reviews_rev_review__7d0d79_idx" ) ], "unique_together": {("review", "user")}, }, ), migrations.AddIndex( model_name="review", index=models.Index( fields=["content_type", "object_id"], name="reviews_rev_content_627d80_idx", ), ), migrations.AddIndex( model_name="review", index=models.Index( fields=["user", "created"], name="reviews_rev_user_id_d4b7bb_idx" ), ), migrations.AddIndex( model_name="review", index=models.Index( fields=["moderation_status", "created"], name="reviews_rev_moderat_d4dca0_idx", ), ), migrations.AddIndex( model_name="review", index=models.Index(fields=["rating"], name="reviews_rev_rating_2db6dd_idx"), ), migrations.AlterUniqueTogether( name="review", unique_together={("user", "content_type", "object_id")}, ), ]