Files
ai-ticket-platform/backend/apps/solutions/migrations/0001_initial.py
2026-06-30 18:46:30 +08:00

145 lines
5.3 KiB
Python

# 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")},
},
),
]