# Generated by Django 4.2.16 on 2026-10-02 09:43

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


class Migration(migrations.Migration):

    dependencies = [
        ('core', '0014_seed_default_kyc_level_policy'),
        ('escrow', '0007_deal_created_at'),
    ]

    operations = [
        migrations.CreateModel(
            name='DealMessage',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('sender_role', models.CharField(choices=[('buyer', 'Buyer'), ('seller', 'Seller'), ('support', 'Support'), ('system', 'System')], max_length=10)),
                ('staff_name', models.CharField(blank=True, default='', max_length=120)),
                ('body', models.TextField(blank=True, default='')),
                ('image', models.FileField(blank=True, null=True, upload_to='chat/')),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('deal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chat_messages', to='escrow.deal')),
                ('sender', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='deal_messages', to='core.user')),
            ],
            options={
                'db_table': 'deal_messages',
                'ordering': ['created_at'],
            },
        ),
        migrations.CreateModel(
            name='DealChatState',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('support_requested_at', models.DateTimeField(blank=True, null=True)),
                ('support_joined_at', models.DateTimeField(blank=True, null=True)),
                ('support_joined_by', models.CharField(blank=True, default='', max_length=120)),
                ('deal', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='chat_state', to='escrow.deal')),
                ('support_requested_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='core.user')),
            ],
            options={
                'db_table': 'deal_chat_states',
            },
        ),
        migrations.CreateModel(
            name='DealChatRead',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('last_read_at', models.DateTimeField()),
                ('deal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chat_reads', to='escrow.deal')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='core.user')),
            ],
            options={
                'db_table': 'deal_chat_reads',
            },
        ),
        migrations.AddConstraint(
            model_name='dealchatread',
            constraint=models.UniqueConstraint(fields=('deal', 'user'), name='unique_chat_read'),
        ),
    ]
