# Generated by Django 4.2.4 on 2025-11-17 09:50

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


class Migration(migrations.Migration):

    dependencies = [
        ('bazi', '0021_bazi_group_relation'),
        ('ai', '0009_conversation_message_and_more'),
    ]

    operations = [
        migrations.CreateModel(
            name='ConversationSubject',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('content_type', models.CharField(choices=[('bazi', 'BaZi'), ('liuyao', 'LiuYao')], help_text='Type of divination record this subject represents', max_length=10, verbose_name='Content Type')),
                ('object_id', models.IntegerField(help_text='ID of the related object (Person ID for BaZi, LiuYao ID for LiuYao)', verbose_name='Object ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
            ],
            options={
                'verbose_name': 'Conversation Subject',
                'verbose_name_plural': 'Conversation Subjects',
                'ordering': ['-created_at'],
            },
        ),
        migrations.AddIndex(
            model_name='conversationsubject',
            index=models.Index(fields=['content_type', 'object_id'], name='ai_conversa_content_009c62_idx'),
        ),
        migrations.AlterUniqueTogether(
            name='conversationsubject',
            unique_together={('content_type', 'object_id')},
        ),
        migrations.AddField(
            model_name='conversation',
            name='subject',
            field=models.ForeignKey(blank=True, help_text='The divination record this conversation is about', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='conversations', to='ai.conversationsubject', verbose_name='Subject'),
        ),
        migrations.AlterField(
            model_name='conversation',
            name='person',
            field=models.ForeignKey(blank=True, help_text='Legacy field - use subject instead. The BaZi chart this conversation is about', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='conversations_legacy', to='bazi.person', verbose_name='Person (Legacy)'),
        ),
        migrations.AddIndex(
            model_name='conversation',
            index=models.Index(fields=['subject', '-updated_at'], name='ai_conversa_subject_4a8b48_idx'),
        ),
    ]
