# Generated by Django 4.2.7 on 2025-12-19 02:56

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('places', '0001_initial'),
        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')),
                ('rating', models.IntegerField(validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5)], verbose_name='Rating')),
                ('comment', models.TextField(verbose_name='Comment')),
                ('images', models.JSONField(blank=True, default=list, verbose_name='Images')),
                ('helpful_count', models.IntegerField(default=0, verbose_name='Helpful Count')),
                ('is_verified', models.BooleanField(default=False, verbose_name='Is Verified')),
                ('is_active', models.BooleanField(default=True, verbose_name='Is Active')),
                ('place_response', models.TextField(blank=True, null=True, verbose_name='Place Response')),
                ('place_response_at', models.DateTimeField(blank=True, null=True, verbose_name='Place Response At')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('place', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews', to='places.place', verbose_name='Place')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews', to=settings.AUTH_USER_MODEL, verbose_name='User')),
            ],
            options={
                'verbose_name': 'Review',
                'verbose_name_plural': 'Reviews',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='ReviewHelpful',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('review', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='helpful_votes', to='reviews.review', verbose_name='Review')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='helpful_votes', to=settings.AUTH_USER_MODEL, verbose_name='User')),
            ],
            options={
                'verbose_name': 'Review Helpful',
                'verbose_name_plural': 'Review Helpful Votes',
                'unique_together': {('review', 'user')},
            },
        ),
        migrations.AddIndex(
            model_name='review',
            index=models.Index(fields=['place'], name='reviews_rev_place_i_91c286_idx'),
        ),
        migrations.AddIndex(
            model_name='review',
            index=models.Index(fields=['user'], name='reviews_rev_user_id_a65d48_idx'),
        ),
        migrations.AddIndex(
            model_name='review',
            index=models.Index(fields=['rating'], name='reviews_rev_rating_2db6dd_idx'),
        ),
        migrations.AddIndex(
            model_name='review',
            index=models.Index(fields=['is_active'], name='reviews_rev_is_acti_dd6f0a_idx'),
        ),
        migrations.AlterUniqueTogether(
            name='review',
            unique_together={('place', 'user')},
        ),
    ]
