feat: complete multimodal ticket intake

This commit is contained in:
hailin
2026-07-27 18:59:28 +08:00
parent 96452934a3
commit 93065c0a00
39 changed files with 6443 additions and 267 deletions

View File

@@ -0,0 +1,51 @@
from django.db import migrations, models
def migrate_intake_statuses(apps, schema_editor):
TicketDraft = apps.get_model("tickets", "TicketDraft")
TicketDraft.objects.filter(status="editing").update(status="collecting")
TicketDraft.objects.filter(status="ready").update(status="needs_input")
TicketDraft.objects.filter(status="confirmed").update(status="ticket_created")
def restore_draft_statuses(apps, schema_editor):
TicketDraft = apps.get_model("tickets", "TicketDraft")
TicketDraft.objects.filter(status="collecting").update(status="editing")
TicketDraft.objects.filter(status="needs_input").update(status="ready")
TicketDraft.objects.filter(status="ticket_created").update(status="confirmed")
class Migration(migrations.Migration):
dependencies = [
("tickets", "0005_ticketcollaborator_ticketfieldevidence_and_more"),
]
operations = [
migrations.AddField(
model_name="ticketdraft",
name="field_evidence",
field=models.JSONField(default=dict),
),
migrations.AddField(
model_name="ticketdraft",
name="invalid_reason",
field=models.TextField(blank=True),
),
migrations.AddField(
model_name="ticketdraft",
name="message_timeline",
field=models.JSONField(default=list),
),
migrations.AddField(
model_name="ticketdraft",
name="problem_valid",
field=models.BooleanField(blank=True, null=True),
),
migrations.AlterField(
model_name="ticketdraft",
name="status",
field=models.CharField(default="collecting", max_length=24),
),
migrations.RunPython(migrate_intake_statuses, restore_draft_statuses),
]