# Generated by Django 5.1.5 on 2025-02-06 21:57

import uuid

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


class Migration(migrations.Migration):

    dependencies = [
        ('core', '0004_chat_source_name'),
    ]

    operations = [
        migrations.CreateModel(
            name='AI',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('base_url', models.CharField(blank=True, max_length=255, null=True)),
                ('api_key', models.CharField(blank=True, max_length=255, null=True)),
                ('model', models.CharField(choices=[('GPT 4o Mini', 'gpt-4o-mini'), ('GPT 4o', 'gpt-4o')], max_length=255)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Person',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=255)),
                ('summary', models.TextField()),
                ('profile', models.TextField()),
                ('revealed', models.TextField()),
                ('dislikes', models.TextField(blank=True, null=True)),
                ('likes', models.TextField(blank=True, null=True)),
                ('sentiment', models.FloatField(default=0.0)),
                ('timezone', models.CharField(blank=True, max_length=50, null=True)),
                ('last_interaction', models.DateTimeField(blank=True, null=True)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Group',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=255)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
                ('people', models.ManyToManyField(to='core.person')),
            ],
        ),
        migrations.CreateModel(
            name='Persona',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('alias', models.CharField(blank=True, max_length=255, null=True)),
                ('mbti', models.CharField(blank=True, choices=[('INTJ', 'INTJ - Architect'), ('INTP', 'INTP - Logician'), ('ENTJ', 'ENTJ - Commander'), ('ENTP', 'ENTP - Debater'), ('INFJ', 'INFJ - Advocate'), ('INFP', 'INFP - Mediator'), ('ENFJ', 'ENFJ - Protagonist'), ('ENFP', 'ENFP - Campaigner'), ('ISTJ', 'ISTJ - Logistician'), ('ISFJ', 'ISFJ - Defender'), ('ESTJ', 'ESTJ - Executive'), ('ESFJ', 'ESFJ - Consul'), ('ISTP', 'ISTP - Virtuoso'), ('ISFP', 'ISFP - Adventurer'), ('ESTP', 'ESTP - Entrepreneur'), ('ESFP', 'ESFP - Entertainer')], max_length=255, null=True)),
                ('mbti_identity', models.FloatField(default=0.0)),
                ('inner_story', models.TextField(blank=True, null=True)),
                ('core_values', models.TextField(blank=True, null=True)),
                ('communication_style', models.TextField(blank=True, null=True)),
                ('flirting_style', models.TextField(blank=True, null=True)),
                ('humor_style', models.CharField(blank=True, choices=[('dry', 'Dry'), ('dark', 'Dark'), ('playful', 'Playful'), ('teasing', 'Teasing'), ('sarcastic', 'Sarcastic'), ('intellectual', 'Intellectual')], max_length=50, null=True)),
                ('likes', models.TextField(blank=True, null=True)),
                ('dislikes', models.TextField(blank=True, null=True)),
                ('tone', models.CharField(blank=True, choices=[('formal', 'Formal'), ('casual', 'Casual'), ('witty', 'Witty'), ('serious', 'Serious'), ('warm', 'Warm'), ('detached', 'Detached')], max_length=50, null=True)),
                ('response_tactics', models.TextField(blank=True, null=True)),
                ('persuasion_tactics', models.TextField(blank=True, null=True)),
                ('boundaries', models.TextField(blank=True, null=True)),
                ('trust', models.IntegerField(default=50)),
                ('adaptability', models.IntegerField(default=70)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Manipulation',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=255)),
                ('enabled', models.BooleanField(default=False)),
                ('ai', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='core.ai')),
                ('group', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='core.group')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
                ('persona', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='core.persona')),
            ],
        ),
        migrations.CreateModel(
            name='PersonIdentifier',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('identifier', models.CharField(max_length=255)),
                ('service', models.CharField(choices=[('signal', 'Signal'), ('instagram', 'Instagram')], max_length=255)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.AddField(
            model_name='person',
            name='identifiers',
            field=models.ManyToManyField(to='core.personidentifier'),
        ),
    ]
