import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ("tickets", "0014_customerreplytask_channel_approval"), ] operations = [ migrations.CreateModel( name="SupportEvaluationCase", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("key", models.SlugField(max_length=120, unique=True)), ("name", models.CharField(max_length=200)), ("source_kind", models.CharField(default="synthetic", max_length=32)), ("input_manifest", models.JSONField(default=dict)), ("expected_solution_ids", models.JSONField(default=list)), ("expected_auto_resolve", models.BooleanField(default=False)), ("expected_manual_fallback", models.BooleanField(default=True)), ("notes", models.TextField(blank=True)), ("enabled", models.BooleanField(default=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ], options={ "ordering": ["key"], "indexes": [ models.Index( fields=["source_kind", "enabled"], name="tickets_sup_source__864444_idx", ) ], }, ), migrations.CreateModel( name="SupportEvaluationResult", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("actual_candidate_solution_ids", models.JSONField(default=list)), ("actual_citation_ranks", models.JSONField(default=list)), ("matched_expected_solution", models.BooleanField(default=False)), ("actual_auto_resolved", models.BooleanField(default=False)), ("actual_manual_fallback", models.BooleanField(default=False)), ("incorrect_auto_reuse", models.BooleanField(default=False)), ("citations_valid", models.BooleanField(default=False)), ("passed", models.BooleanField(default=False)), ("details", models.JSONField(blank=True, default=dict)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "analysis", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="evaluation_results", to="tickets.ticketsupportanalysis", ), ), ( "case", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="results", to="tickets.supportevaluationcase", ), ), ( "reviewed_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="reviewed_support_evaluations", to=settings.AUTH_USER_MODEL, ), ), ], options={ "ordering": ["-updated_at"], "indexes": [ models.Index( fields=["case", "updated_at"], name="tickets_sup_case_id_1fef4b_idx", ) ], "constraints": [ models.UniqueConstraint( fields=("case", "analysis"), name="unique_support_case_analysis_result", ) ], }, ), ]