File size: 8,156 Bytes
ae677bb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | # Generated by Django 4.2.6 on 2026-04-29 07:00
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import pgvector.django.vector
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
('Property', '0063_alter_property_amenties'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='AgencyAutoChatSetting',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('is_enabled', models.BooleanField(default=False)),
('delay_seconds', models.IntegerField(default=30, help_text='Seconds to wait before AI replies')),
('confidence_threshold', models.FloatField(default=0.6, help_text='Minimum similarity score (0-1)')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
],
),
migrations.CreateModel(
name='GlobalQA',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('question', models.TextField(unique=True)),
('answer', models.TextField()),
('question_embedding', pgvector.django.vector.VectorField(dimensions=384)),
('language', models.CharField(choices=[('en', 'English'), ('ur', 'Roman Urdu'), ('both', 'Both')], default='both', max_length=20)),
('is_active', models.BooleanField(default=True)),
('priority', models.IntegerField(default=0)),
('created_at', models.DateTimeField(auto_now_add=True)),
],
options={
'ordering': ['-priority', 'question'],
},
),
migrations.CreateModel(
name='MasterQuestion',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('question', models.TextField(unique=True)),
('is_active', models.BooleanField(default=True)),
('order', models.IntegerField(default=0)),
('created_at', models.DateTimeField(auto_now_add=True)),
],
options={
'ordering': ['order'],
},
),
migrations.CreateModel(
name='PropertyQA',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('answer', models.TextField()),
('question_embedding', pgvector.django.vector.VectorField(dimensions=384)),
('is_active', models.BooleanField(default=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('agency', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='property_qa_answers', to=settings.AUTH_USER_MODEL)),
('master_question', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ai_chatbot.masterquestion')),
('property', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ai_qa', to='Property.property')),
],
),
migrations.CreateModel(
name='PropertyCustomQA',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('question', models.TextField()),
('answer', models.TextField()),
('question_embedding', pgvector.django.vector.VectorField(dimensions=384)),
('order', models.IntegerField(default=0)),
('is_active', models.BooleanField(default=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('agency', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='property_custom_qa', to=settings.AUTH_USER_MODEL)),
('property', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='custom_qa', to='Property.property')),
],
options={
'ordering': ['order'],
},
),
migrations.CreateModel(
name='PropertyAutoChatState',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('is_auto_chat_enabled', models.BooleanField(default=False)),
('last_auto_reply_at', models.DateTimeField(blank=True, null=True)),
('total_auto_replies', models.IntegerField(default=0)),
('last_agency_reply_at', models.DateTimeField(blank=True, null=True)),
('property', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='auto_chat_state', to='Property.property')),
],
),
migrations.AddIndex(
model_name='masterquestion',
index=models.Index(fields=['is_active', 'order'], name='ai_chatbot__is_acti_4e4a3d_idx'),
),
migrations.AddIndex(
model_name='globalqa',
index=models.Index(fields=['is_active', '-priority'], name='ai_chatbot__is_acti_fa63b9_idx'),
),
migrations.AddIndex(
model_name='globalqa',
index=models.Index(fields=['language', 'is_active'], name='ai_chatbot__languag_9d512a_idx'),
),
migrations.AddField(
model_name='agencyautochatsetting',
name='agency',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='auto_chat_setting', to=settings.AUTH_USER_MODEL),
),
migrations.AddIndex(
model_name='propertyqa',
index=models.Index(fields=['property', 'is_active'], name='ai_chatbot__propert_d93b25_idx'),
),
migrations.AddIndex(
model_name='propertyqa',
index=models.Index(fields=['agency', 'is_active'], name='ai_chatbot__agency__41090d_idx'),
),
migrations.AddIndex(
model_name='propertyqa',
index=models.Index(fields=['master_question', 'is_active'], name='ai_chatbot__master__144853_idx'),
),
migrations.AlterUniqueTogether(
name='propertyqa',
unique_together={('property', 'master_question')},
),
migrations.AddIndex(
model_name='propertycustomqa',
index=models.Index(fields=['property', 'is_active'], name='ai_chatbot__propert_e9a86b_idx'),
),
migrations.AddIndex(
model_name='propertycustomqa',
index=models.Index(fields=['agency', 'is_active'], name='ai_chatbot__agency__fdf146_idx'),
),
migrations.AddConstraint(
model_name='propertycustomqa',
constraint=models.UniqueConstraint(fields=('property', 'order'), name='unique_order_per_property'),
),
migrations.AddIndex(
model_name='propertyautochatstate',
index=models.Index(fields=['is_auto_chat_enabled'], name='ai_chatbot__is_auto_1f624d_idx'),
),
migrations.AddIndex(
model_name='propertyautochatstate',
index=models.Index(fields=['property', 'is_auto_chat_enabled'], name='ai_chatbot__propert_697127_idx'),
),
migrations.AddIndex(
model_name='agencyautochatsetting',
index=models.Index(fields=['is_enabled'], name='ai_chatbot__is_enab_7f8ec6_idx'),
),
]
|