# 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 = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Amenity',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')),
                ('name_ar', models.CharField(max_length=100, verbose_name='Name (Arabic)')),
                ('name_ku', models.CharField(blank=True, max_length=100, null=True, verbose_name='Name (Kurdish)')),
                ('name_en', models.CharField(blank=True, max_length=100, null=True, verbose_name='Name (English)')),
                ('icon', models.CharField(blank=True, max_length=50, null=True, verbose_name='Icon')),
            ],
            options={
                'verbose_name': 'Amenity',
                'verbose_name_plural': 'Amenities',
                'ordering': ['name_ar'],
            },
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='Name')),
                ('name_ar', models.CharField(max_length=100, verbose_name='Name (Arabic)')),
                ('name_ku', models.CharField(max_length=100, verbose_name='Name (Kurdish)')),
                ('name_en', models.CharField(max_length=100, verbose_name='Name (English)')),
                ('slug', models.SlugField(unique=True, verbose_name='Slug')),
                ('icon', models.CharField(blank=True, max_length=50, null=True, verbose_name='Icon')),
                ('image', models.ImageField(blank=True, null=True, upload_to='categories/', verbose_name='Image')),
                ('is_active', models.BooleanField(default=True, verbose_name='Is Active')),
            ],
            options={
                'verbose_name': 'Category',
                'verbose_name_plural': 'Categories',
                'ordering': ['name_ar'],
            },
        ),
        migrations.CreateModel(
            name='Governorate',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='Name')),
                ('name_ar', models.CharField(max_length=100, verbose_name='Name (Arabic)')),
                ('name_ku', models.CharField(max_length=100, verbose_name='Name (Kurdish)')),
                ('name_en', models.CharField(max_length=100, verbose_name='Name (English)')),
                ('code', models.CharField(max_length=10, unique=True, verbose_name='Code')),
            ],
            options={
                'verbose_name': 'Governorate',
                'verbose_name_plural': 'Governorates',
                'ordering': ['name_ar'],
            },
        ),
        migrations.CreateModel(
            name='Place',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, verbose_name='Name')),
                ('slug', models.SlugField(unique=True, verbose_name='Slug')),
                ('description', models.TextField(blank=True, null=True, verbose_name='Description')),
                ('address', models.CharField(max_length=500, verbose_name='Address')),
                ('latitude', models.DecimalField(decimal_places=6, max_digits=9, verbose_name='Latitude')),
                ('longitude', models.DecimalField(decimal_places=6, max_digits=9, verbose_name='Longitude')),
                ('phone', models.CharField(blank=True, max_length=20, null=True, verbose_name='Phone')),
                ('website', models.URLField(blank=True, null=True, verbose_name='Website')),
                ('email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='Email')),
                ('image', models.ImageField(upload_to='places/', verbose_name='Image')),
                ('gallery', models.JSONField(blank=True, default=list, verbose_name='Gallery')),
                ('working_hours', models.JSONField(blank=True, default=dict, verbose_name='Working Hours')),
                ('price_range', models.CharField(blank=True, choices=[('$', '$'), ('$$', '$$'), ('$$$', '$$$'), ('$$$$', '$$$$')], max_length=10, null=True, verbose_name='Price Range')),
                ('is_open', models.BooleanField(default=True, verbose_name='Is Open')),
                ('has_booking', models.BooleanField(default=False, verbose_name='Has Booking')),
                ('rating', models.DecimalField(decimal_places=2, default=0.0, max_digits=3, validators=[django.core.validators.MinValueValidator(0.0), django.core.validators.MaxValueValidator(5.0)], verbose_name='Rating')),
                ('reviews_count', models.IntegerField(default=0, verbose_name='Reviews Count')),
                ('is_verified', models.BooleanField(default=False, verbose_name='Is Verified')),
                ('is_active', models.BooleanField(default=True, verbose_name='Is Active')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('amenities', models.ManyToManyField(blank=True, to='places.amenity', verbose_name='Amenities')),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='places', to='places.category', verbose_name='Category')),
                ('governorate', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='places', to='places.governorate', verbose_name='Governorate')),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='owned_places', to=settings.AUTH_USER_MODEL, verbose_name='Owner')),
            ],
            options={
                'verbose_name': 'Place',
                'verbose_name_plural': 'Places',
                'ordering': ['-created_at'],
                'indexes': [models.Index(fields=['latitude', 'longitude'], name='places_plac_latitud_09f61a_idx'), models.Index(fields=['category'], name='places_plac_categor_4fa2e6_idx'), models.Index(fields=['governorate'], name='places_plac_governo_339a69_idx'), models.Index(fields=['is_active', 'is_verified'], name='places_plac_is_acti_f43743_idx')],
            },
        ),
    ]
