# Generated by Django 5.1.2 on 2025-01-19 10:59

import django.db.models.deletion
import main.fields
import main.models
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
        ('developer', '0002_initial'),
        ('development', '0001_initial'),
        ('geo_location', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='ContactUs',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=150, verbose_name='Name')),
                ('phone_number', models.CharField(max_length=150, verbose_name='Phone Number')),
                ('email', models.EmailField(max_length=150, verbose_name='Email')),
                ('message', models.TextField(blank=True, null=True, verbose_name='Message')),
            ],
            options={
                'verbose_name': 'Contact Us',
                'verbose_name_plural': 'Contact Us',
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='Faq',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('question', models.CharField(max_length=250, verbose_name='Question')),
                ('answer', models.TextField(verbose_name='Answer')),
                ('is_active', models.BooleanField(default=False, verbose_name='active')),
                ('is_translated', models.BooleanField(default=False, verbose_name='translated')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
            ],
            options={
                'verbose_name': 'FAQ',
                'verbose_name_plural': 'FAQs',
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='FilterListType',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, verbose_name='name')),
                ('slug', models.SlugField(max_length=255, unique=True, verbose_name='slug')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
            ],
            options={
                'verbose_name': 'Filter List Type',
                'verbose_name_plural': 'Filter List Types',
                'ordering': ['slug', 'name'],
            },
        ),
        migrations.CreateModel(
            name='FooterMenu',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(blank=True, max_length=100, null=True, verbose_name='name')),
                ('link', models.CharField(default='#', max_length=250, verbose_name='link')),
                ('priority', models.SmallIntegerField(default=0, verbose_name='priority')),
                ('is_active', models.BooleanField(default=True, verbose_name='show/hide')),
            ],
            options={
                'verbose_name': 'Footer Menu',
                'verbose_name_plural': 'Footer Menu',
                'ordering': ['priority'],
            },
        ),
        migrations.CreateModel(
            name='Language',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=150, verbose_name='Name')),
                ('code', models.CharField(max_length=10, verbose_name='Code')),
                ('flag', main.fields.WEBPField(blank=True, null=True, upload_to=main.models.image_language_folder, verbose_name='Flag')),
                ('is_active', models.BooleanField(default=False, verbose_name='active')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
            ],
            options={
                'verbose_name': 'Language',
                'verbose_name_plural': 'Languages',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='PromptChecker',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(blank=True, max_length=255, null=True, verbose_name='name')),
                ('system_prompt', models.TextField(default='You are an experienced real estate consultant with deep market knowledge.', verbose_name='system prompt')),
                ('user_prompt', models.TextField(verbose_name='user prompt')),
                ('ai_model', models.CharField(choices=[('gpt-4o', 'gpt 4o'), ('chatgpt-4o-latest', 'chatgpt 4o latest'), ('gpt-4o-mini', 'gpt 4o mini'), ('o1', 'o1'), ('o1-mini', 'o1 mini')], default='gpt-4o-mini', max_length=255, verbose_name='ai model')),
                ('temperature', models.FloatField(default=0.7, verbose_name='temperature')),
                ('response', models.TextField(blank=True, null=True, verbose_name='response')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
            ],
            options={
                'verbose_name': 'Prompt Checker',
                'verbose_name_plural': 'Prompt Checkers',
                'ordering': ['id'],
            },
        ),
        migrations.CreateModel(
            name='SubscribeNewsletter',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('email', models.EmailField(max_length=254, unique=True, verbose_name='Email')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
            ],
            options={
                'verbose_name': 'Subscribe Newsletter',
                'verbose_name_plural': 'Subscribe Newsletters',
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='ErrorLog',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('url', models.CharField(blank=True, max_length=255, null=True, verbose_name='url')),
                ('location', models.CharField(blank=True, max_length=255, null=True, verbose_name='location')),
                ('type', models.CharField(blank=True, max_length=255, null=True, verbose_name='type')),
                ('error', models.TextField(verbose_name='error')),
                ('unique_time', models.IntegerField(default=0, verbose_name='unique time')),
                ('number', models.IntegerField(default=0, verbose_name='number')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
            ],
            options={
                'verbose_name': 'Error Log',
                'verbose_name_plural': 'Error Logs',
                'ordering': ['-id'],
                'constraints': [models.UniqueConstraint(fields=('location', 'type', 'unique_time'), name='repeated_error_log_type_location_time')],
            },
        ),
        migrations.CreateModel(
            name='FooterMenuTranslate',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(blank=True, max_length=100, null=True, verbose_name='name')),
                ('footer_menu', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='translates', to='main.footermenu', verbose_name='footer menu')),
                ('language', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='main.language', verbose_name='language')),
            ],
            options={
                'verbose_name': 'Footer Menu Translate',
                'verbose_name_plural': 'Footer Menu Translate',
                'ordering': ['footer_menu', 'name'],
            },
        ),
        migrations.CreateModel(
            name='FilterList',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, verbose_name='name')),
                ('slug', models.SlugField(max_length=255, unique=True, verbose_name='slug')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
                ('city', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='filter_list', to='geo_location.city', verbose_name='city')),
                ('country', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='filter_list', to='geo_location.country', verbose_name='country')),
                ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='filter_list', to='main.filterlisttype', verbose_name='type')),
                ('language', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='filter_list', to='main.language', verbose_name='language')),
            ],
            options={
                'verbose_name': 'Filter List',
                'verbose_name_plural': 'Filter List',
                'ordering': ['type', 'slug', 'name', 'id'],
            },
        ),
        migrations.CreateModel(
            name='Links',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(blank=True, max_length=100, null=True, verbose_name='name')),
                ('slug', models.SlugField(blank=True, max_length=100, null=True, verbose_name='slug')),
                ('link', models.CharField(default='#', max_length=250, verbose_name='link')),
                ('views', models.CharField(blank=True, max_length=500, null=True, verbose_name='view name')),
                ('icon', models.CharField(default='fa-solid fa-sliders', max_length=250, verbose_name='icon')),
                ('priority', models.SmallIntegerField(default=100, verbose_name='priority')),
                ('show', models.BooleanField(default=True, verbose_name='show/hide')),
                ('use_for', models.CharField(choices=[('master', 'master page'), ('customer', 'customer page'), ('main', 'main pages')], max_length=50, verbose_name='use For')),
                ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.RESTRICT, related_name='sub_links', to='main.links', verbose_name='parent')),
                ('permission', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.RESTRICT, to='auth.permission', verbose_name='Permission')),
                ('related_link', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.RESTRICT, related_name='related_links', to='main.links', verbose_name='related link')),
            ],
            options={
                'verbose_name': 'link',
                'verbose_name_plural': 'link',
                'ordering': ['priority', 'use_for', 'views'],
            },
        ),
        migrations.CreateModel(
            name='Menus',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='name')),
                ('slug', models.SlugField(blank=True, max_length=100, null=True, verbose_name='slug')),
                ('use_for', models.CharField(choices=[('master', 'master page'), ('customer', 'customer page'), ('main', 'main pages')], max_length=50, verbose_name='use For')),
                ('links', models.ManyToManyField(related_name='menu_link', to='main.links', verbose_name='links')),
            ],
            options={
                'verbose_name': 'menu',
                'verbose_name_plural': 'menu',
                'ordering': ['use_for'],
            },
        ),
        migrations.CreateModel(
            name='RequestCallBack',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('first_name', models.CharField(max_length=150, verbose_name='Name')),
                ('last_name', models.CharField(max_length=150, verbose_name='Last Name')),
                ('phone_number', models.CharField(max_length=150, verbose_name='Phone Number')),
                ('email', models.EmailField(blank=True, max_length=150, null=True, verbose_name='Email')),
                ('message', models.TextField(blank=True, null=True, verbose_name='Message')),
                ('date', models.CharField(blank=True, max_length=25, null=True, verbose_name='Date')),
                ('page_url', models.URLField(verbose_name='page url')),
                ('bedroom_num', models.IntegerField(blank=True, null=True, verbose_name='bedroom number')),
                ('budget', models.CharField(blank=True, max_length=150, null=True, verbose_name='Budget')),
                ('purpose', models.CharField(blank=True, max_length=150, null=True, verbose_name='Purpose')),
                ('payment_method', models.CharField(blank=True, max_length=150, null=True, verbose_name='Payment Method')),
                ('time_to_move', models.CharField(blank=True, max_length=150, null=True, verbose_name='Time to move')),
                ('language', models.CharField(blank=True, max_length=150, null=True, verbose_name='Language')),
                ('is_read', models.BooleanField(default=False, verbose_name='Read')),
                ('is_checked', models.BooleanField(default=False, verbose_name='Checked')),
                ('send_to_bitrix', models.BooleanField(default=False, verbose_name='Send to bitrix')),
                ('send_time', models.FloatField(blank=True, null=True, verbose_name='Send time')),
                ('whatsapp_chat', models.BooleanField(default=False, verbose_name='Whatsapp chat')),
                ('telegram_chat', models.BooleanField(default=False, verbose_name='Telegram chat')),
                ('utm_campaign', models.CharField(blank=True, max_length=255, null=True, verbose_name='UTM Campaign')),
                ('utm_source', models.CharField(blank=True, max_length=255, null=True, verbose_name='UTM Source')),
                ('utm_content', models.CharField(blank=True, max_length=255, null=True, verbose_name='UTM Content')),
                ('utm_medium', models.CharField(blank=True, max_length=255, null=True, verbose_name='UTM Medium')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
                ('developer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='request_call_backs', to='developer.developer')),
                ('development', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='request_call_backs', to='development.development')),
                ('flat', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='request_call_backs', to='development.flat')),
            ],
            options={
                'verbose_name': 'Request Call Back',
                'verbose_name_plural': 'Request Call Backs',
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='SiteSettings',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=150, verbose_name='Title')),
                ('site_name', models.CharField(max_length=150, verbose_name='site name')),
                ('site_url', models.URLField(default='https://entralon.com', max_length=255, verbose_name='site url')),
                ('files_prefix_url', models.CharField(default='https://files.entralon.com', max_length=250, verbose_name='files prefix')),
                ('fav_icon', main.fields.WEBPField(blank=True, null=True, upload_to=main.models.image_site_settings_folder, verbose_name='fav icon')),
                ('main_logo', main.fields.WEBPField(blank=True, null=True, upload_to=main.models.image_site_settings_folder, verbose_name='main logo')),
                ('mobile_logo', main.fields.WEBPField(blank=True, null=True, upload_to=main.models.image_site_settings_folder, verbose_name='mobile logo')),
                ('can_user_login', models.BooleanField(default=True, verbose_name='can user login')),
                ('can_user_register', models.BooleanField(default=True, verbose_name='can user register')),
                ('can_admin_login', models.BooleanField(default=True, verbose_name='can admin login')),
                ('use_recaptcha', models.BooleanField(default=False, verbose_name='use recaptcha')),
                ('recaptcha_key', models.CharField(blank=True, max_length=150, null=True, verbose_name='recaptcha key')),
                ('recaptcha_secret', models.CharField(blank=True, max_length=150, null=True, verbose_name='recaptcha secret')),
                ('is_translated', models.BooleanField(default=False, verbose_name='is translated')),
                ('main_theme_address', models.CharField(blank=True, default='', max_length=250, verbose_name='main theme address')),
                ('master_theme_address', models.CharField(blank=True, default='', max_length=250, verbose_name='master theme address')),
                ('default_news_image', main.fields.WEBPField(default='blank/image-placeholder.webp', upload_to=main.models.image_site_settings_folder, verbose_name='Default news image')),
                ('default_developer_image', main.fields.WEBPField(default='blank/image-placeholder.webp', upload_to=main.models.image_site_settings_folder, verbose_name='Default developer image')),
                ('default_development_image', main.fields.WEBPField(default='blank/image-placeholder.webp', upload_to=main.models.image_site_settings_folder, verbose_name='Default development image')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
                ('main_menu', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.RESTRICT, related_name='main_menu', to='main.menus', verbose_name='main menu')),
                ('master_menu', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.RESTRICT, related_name='master_menu', to='main.menus', verbose_name='master menu')),
            ],
            options={
                'verbose_name': 'Site Settings',
                'verbose_name_plural': 'Site Settings',
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='SettingTranslate',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('site_name', models.CharField(max_length=150, verbose_name='site name')),
                ('short_description', models.CharField(blank=True, max_length=255, null=True, verbose_name='short description')),
                ('description', models.TextField(blank=True, null=True, verbose_name='Description')),
                ('address', models.CharField(max_length=500, verbose_name='Address')),
                ('address_locality', models.CharField(blank=True, max_length=500, null=True, verbose_name='Address locality')),
                ('address_country', models.CharField(blank=True, max_length=500, null=True, verbose_name='Address country')),
                ('keywords', models.TextField(blank=True, null=True, verbose_name='Keywords')),
                ('phone_number', models.CharField(max_length=150, verbose_name='phone number')),
                ('email', models.EmailField(max_length=150, verbose_name='email')),
                ('development_list_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Development list title')),
                ('development_search_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Development search title')),
                ('development_list_description', models.TextField(blank=True, null=True, verbose_name='Development list description')),
                ('developer_list_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Developer list title')),
                ('developer_search_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Developer search title')),
                ('developer_list_description', models.TextField(blank=True, null=True, verbose_name='Developer list description')),
                ('blog_list_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Blog list title')),
                ('blog_search_title', models.CharField(blank=True, max_length=250, null=True, verbose_name='Blog search title')),
                ('blog_list_description', models.TextField(blank=True, null=True, verbose_name='Blog list description')),
                ('rules', models.TextField(blank=True, null=True, verbose_name='Rules')),
                ('about_us', models.TextField(blank=True, null=True, verbose_name='About us')),
                ('about_us_2', models.TextField(blank=True, null=True, verbose_name='About us 2')),
                ('about_us_home', models.TextField(blank=True, null=True, verbose_name='About us in home')),
                ('privacy_policy', models.TextField(blank=True, null=True, verbose_name='Privacy policy')),
                ('terms_of_use', models.TextField(blank=True, null=True, verbose_name='Terms of use')),
                ('home_seo_text', models.TextField(blank=True, null=True, verbose_name='Home seo text')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
                ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='site_settings_translates', to='main.language')),
                ('site_settings', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='translates', to='main.sitesettings')),
            ],
            options={
                'verbose_name': 'Site Settings translate',
                'verbose_name_plural': 'Site Settings translates',
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='FaqTranslate',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('question', models.CharField(max_length=250, verbose_name='Question')),
                ('answer', models.TextField(verbose_name='Answer')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')),
                ('faq', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='translates', to='main.faq')),
                ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='faq_translations', to='main.language')),
            ],
            options={
                'verbose_name': 'FAQ Translation',
                'verbose_name_plural': 'FAQ Translations',
                'ordering': ['-id'],
                'unique_together': {('faq', 'language')},
            },
        ),
    ]
