# Generated by Django 5.2 on 2025-06-06 14:59

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('category', '__first__'),
        ('location', '__first__'),
    ]

    operations = [
        migrations.CreateModel(
            name='Property',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('property_name', models.CharField(max_length=200, verbose_name='nombre de la propiedad')),
                ('slug', models.SlugField(max_length=200, unique=True, verbose_name='slug')),
                ('description', models.TextField(blank=True, verbose_name='descripción')),
                ('purpose', models.CharField(choices=[('rent', 'Para rentar'), ('sale', 'Para vender')], default='rent', max_length=10, verbose_name='tipo de transacción')),
                ('price', models.IntegerField(verbose_name='precio')),
                ('main_image', models.ImageField(blank=True, null=True, upload_to='photos/properties', verbose_name='imagen principal')),
                ('created_date', models.DateTimeField(auto_now_add=True, verbose_name='fecha de creación')),
                ('modified_date', models.DateTimeField(auto_now=True, verbose_name='fecha de modificación')),
                ('address', models.CharField(max_length=200, verbose_name='dirección exacta')),
                ('floor', models.IntegerField(blank=True, null=True, verbose_name='piso')),
                ('maps_url', models.URLField(blank=True, verbose_name='URL de Google Maps')),
                ('area', models.IntegerField(default=36, verbose_name='área (m²)')),
                ('bedrooms', models.IntegerField(default=1, verbose_name='habitaciones')),
                ('bathrooms', models.IntegerField(default=1, verbose_name='baños')),
                ('is_furnished', models.BooleanField(default=False, verbose_name='amoblado')),
                ('is_available', models.BooleanField(default=True, verbose_name='disponible')),
                ('is_featured', models.BooleanField(default=False, verbose_name='destacado')),
                ('is_verified', models.BooleanField(default=False, verbose_name='verificado')),
                ('features', models.JSONField(blank=True, default=list, verbose_name='características')),
                ('services', models.JSONField(blank=True, default=list, verbose_name='servicios incluidos')),
                ('rules', models.JSONField(blank=True, default=list, verbose_name='reglas')),
                ('video_url', models.URLField(blank=True, verbose_name='URL de video')),
                ('virtual_tour_url', models.URLField(blank=True, verbose_name='URL de tour virtual')),
                ('notes', models.TextField(blank=True, verbose_name='notas internas')),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='category.category', verbose_name='tipo de propiedad')),
                ('location', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='location.location', verbose_name='zona/barrio')),
            ],
            options={
                'verbose_name': 'propiedad',
                'verbose_name_plural': 'propiedades',
                'ordering': ['-is_featured', '-created_date'],
            },
        ),
        migrations.CreateModel(
            name='PropertyGallery',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('image', models.ImageField(upload_to='property_images/', verbose_name='imagen')),
                ('is_featured', models.BooleanField(default=False, verbose_name='destacada')),
                ('order', models.PositiveIntegerField(default=0, verbose_name='orden')),
                ('property', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='agency.property')),
            ],
            options={
                'verbose_name': 'imagen de propiedad',
                'verbose_name_plural': 'imágenes de propiedad',
                'ordering': ['order'],
            },
        ),
    ]
