# Generated by Django 5.1.1 on 2025-07-10 12:38

import django.utils.timezone
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Property',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('post_type', models.CharField(choices=[('buy', 'Buy'), ('rent', 'Rent')], max_length=10)),
                ('property_type', models.CharField(choices=[('new_home', 'New Home'), ('home', 'Home'), ('room', 'Room'), ('garage', 'Garage'), ('storage_room', 'Storage Room'), ('office', 'Office'), ('commercial_property', 'Commercial Property'), ('transfer', 'Transfer'), ('land', 'Land'), ('building', 'Building'), ('holiday', 'Holiday')], max_length=20)),
                ('property_status', models.CharField(choices=[('available', 'Available'), ('unavailable', 'Unavailable')], max_length=12)),
                ('available_from', models.DateField()),
                ('bedrooms', models.PositiveIntegerField()),
                ('bathrooms', models.PositiveIntegerField()),
                ('area', models.FloatField()),
                ('area_unit', models.CharField(choices=[('sqft', 'Square Feet'), ('sqm', 'Square Meter')], max_length=5)),
                ('description', models.TextField()),
                ('apartment_no', models.CharField(blank=True, max_length=50, null=True)),
                ('area_address', models.CharField(max_length=255)),
                ('house_no', models.CharField(max_length=50)),
                ('street', models.CharField(max_length=255)),
                ('city', models.CharField(max_length=100)),
                ('state', models.CharField(max_length=100)),
                ('country', models.CharField(max_length=100)),
                ('zip_code', models.CharField(max_length=20)),
                ('latitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
                ('longitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
                ('property_id', models.CharField(blank=True, max_length=50, unique=True)),
                ('floor_no', models.IntegerField()),
                ('built_year', models.PositiveIntegerField(blank=True, null=True)),
                ('garages_count', models.PositiveIntegerField(blank=True, default=0, null=True)),
                ('garage_size', models.FloatField(blank=True, null=True)),
                ('price', models.DecimalField(decimal_places=2, max_digits=15)),
                ('price_term', models.CharField(choices=[('daily', '/Day'), ('weekly', '/Week'), ('monthly', '/Month'), ('quarterly', '/3 Months'), ('biannually', '/6 Months'), ('annually', '/Year')], max_length=10)),
                ('currency', models.CharField(choices=[('EUR', '€ - Euro'), ('USD', '$ - US Dollar'), ('GBP', '£ - British Pound'), ('JPY', '¥ - Japanese Yen'), ('AUD', 'A$ - Australian Dollar'), ('CAD', 'C$ - Canadian Dollar'), ('CHF', 'CHF - Swiss Franc'), ('CNY', '¥ - Chinese Yuan'), ('INR', '₹ - Indian Rupee')], default='USD', max_length=3)),
                ('thumbnail', models.ImageField(blank=True, null=True, upload_to='properties/thumbnails/')),
                ('video', models.FileField(blank=True, null=True, upload_to='properties/videos/')),
                ('view_360', models.FileField(blank=True, null=True, upload_to='properties/360_views/')),
                ('contact_details_hidden', models.BooleanField(default=False)),
                ('hide_address', models.BooleanField(default=False)),
                ('allow_direct_chat', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Property',
                'verbose_name_plural': 'Properties',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='PropertyAddonsFee',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('hide_address_fee', models.DecimalField(decimal_places=2, default=1.99, max_digits=6)),
                ('hide_contact_fee', models.DecimalField(decimal_places=2, default=1.55, max_digits=6)),
                ('hide_address_and_contact_combined_fee', models.DecimalField(decimal_places=2, default=2.99, max_digits=6)),
            ],
        ),
        migrations.CreateModel(
            name='PropertyBookmark',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='PropertyBoost',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('boosted_at', models.DateTimeField(default=django.utils.timezone.now)),
                ('expires_at', models.DateTimeField()),
            ],
            options={
                'ordering': ['-boosted_at'],
            },
        ),
        migrations.CreateModel(
            name='PropertyBoostPrice',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('price', models.DecimalField(decimal_places=2, default=4.99, max_digits=8)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Property Boost Price',
                'verbose_name_plural': 'Property Boost Prices',
            },
        ),
        migrations.CreateModel(
            name='PropertyImage',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('image', models.ImageField(upload_to='properties/featured_pictures/')),
                ('uploaded_at', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.CreateModel(
            name='PropertyView',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('session_key', models.CharField(blank=True, db_index=True, max_length=64, null=True)),
                ('ip_address', models.GenericIPAddressField(blank=True, null=True)),
                ('location', models.CharField(blank=True, max_length=255)),
                ('device', models.CharField(blank=True, max_length=64)),
                ('is_publisher', models.BooleanField(default=False)),
                ('viewed_at', models.DateTimeField(default=django.utils.timezone.now)),
            ],
            options={
                'ordering': ['-viewed_at'],
            },
        ),
        migrations.CreateModel(
            name='TempProperty',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('post_type', models.CharField(blank=True, max_length=50)),
                ('property_type', models.CharField(blank=True, max_length=50)),
                ('property_status', models.CharField(blank=True, max_length=50)),
                ('available_from', models.CharField(blank=True, max_length=50)),
                ('bedrooms', models.CharField(blank=True, max_length=10)),
                ('bathrooms', models.CharField(blank=True, max_length=10)),
                ('area', models.CharField(blank=True, max_length=20)),
                ('area_unit', models.CharField(blank=True, max_length=10)),
                ('area_address', models.CharField(blank=True, max_length=255)),
                ('house_no', models.CharField(blank=True, max_length=50)),
                ('street', models.CharField(blank=True, max_length=255)),
                ('city', models.CharField(blank=True, max_length=100)),
                ('state', models.CharField(blank=True, max_length=100)),
                ('country', models.CharField(blank=True, max_length=100)),
                ('zip_code', models.CharField(blank=True, max_length=20)),
                ('latitude', models.CharField(blank=True, max_length=50)),
                ('longitude', models.CharField(blank=True, max_length=50)),
                ('floor_no', models.CharField(blank=True, max_length=10)),
                ('built_year', models.CharField(blank=True, max_length=10)),
                ('garages_count', models.CharField(blank=True, max_length=10)),
                ('garage_size', models.CharField(blank=True, max_length=10)),
                ('price', models.CharField(blank=True, max_length=20)),
                ('price_term', models.CharField(blank=True, max_length=20)),
                ('currency', models.CharField(blank=True, max_length=10)),
                ('contact_details_hidden', models.BooleanField(default=False)),
                ('allow_direct_chat', models.BooleanField(default=True)),
                ('apartment_no', models.CharField(blank=True, max_length=50)),
                ('hide_address', models.BooleanField(default=False)),
                ('thumbnail', models.ImageField(blank=True, null=True, upload_to='temp_property_thumbnails/')),
                ('video', models.FileField(blank=True, null=True, upload_to='temp_property_videos/')),
                ('view_360', models.FileField(blank=True, null=True, upload_to='temp_property_360/')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.CreateModel(
            name='TempPropertyImage',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('image', models.ImageField(upload_to='temp_property_images/')),
            ],
        ),
    ]
