# Generated by Django 5.2.15 on 2026-06-30 10:43 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("tickets", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Solution", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("title", models.CharField(max_length=200)), ("problem_signature", models.TextField()), ("related_system", models.CharField(blank=True, max_length=120)), ("environment_scope", models.CharField(blank=True, max_length=120)), ("root_cause", models.TextField()), ("solution", models.TextField()), ("risk_note", models.TextField(blank=True)), ("status", models.CharField(default="draft", max_length=40)), ("usage_count", models.PositiveIntegerField(default=0)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "category", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="tickets.ticketcategory", ), ), ( "created_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ], options={ "ordering": ["-updated_at"], }, ), migrations.CreateModel( name="TicketResolution", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("resolution_type", models.CharField(default="resolved", max_length=80)), ("root_cause", models.TextField(blank=True)), ("solution_text", models.TextField()), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "confirmed_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ( "linked_solution", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="solutions.solution", ), ), ( "ticket", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, related_name="resolution", to="tickets.ticket", ), ), ], ), migrations.CreateModel( name="TicketSolutionLink", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("link_type", models.CharField(default="referenced", max_length=40)), ("agent_run_id", models.BigIntegerField(blank=True, null=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ( "created_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ( "solution", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="ticket_links", to="solutions.solution", ), ), ( "ticket", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="solution_links", to="tickets.ticket", ), ), ], options={ "unique_together": {("ticket", "solution", "link_type")}, }, ), ]