Files
ai-ticket-platform/backend/apps/knowledge/migrations/0001_initial.py
2026-07-03 17:49:44 +08:00

98 lines
5.4 KiB
Python

# ruff: noqa: E501
# Generated by Django 5.2.15 on 2026-07-03 09:48
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='KnowledgeBase',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=160)),
('description', models.TextField(blank=True)),
('scope', models.CharField(blank=True, max_length=120)),
('enabled', models.BooleanField(default=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('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='KnowledgeDocument',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('file_name', models.CharField(max_length=255)),
('file_type', models.CharField(blank=True, max_length=80)),
('storage_path', models.CharField(blank=True, max_length=500)),
('content_text', models.TextField(blank=True)),
('parse_status', models.CharField(default='pending', max_length=40)),
('parse_error', models.TextField(blank=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
('knowledge_base', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='knowledge.knowledgebase')),
],
options={
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='KnowledgeItem',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200)),
('problem', models.TextField()),
('applicable_scope', models.TextField(blank=True)),
('error_code', models.CharField(blank=True, max_length=120)),
('root_cause', models.TextField(blank=True)),
('troubleshooting_steps', models.TextField(blank=True)),
('solution', models.TextField()),
('risk_note', models.TextField(blank=True)),
('status', models.CharField(default='draft', max_length=40)),
('source_type', models.CharField(default='manual', max_length=40)),
('source_ticket_id', models.BigIntegerField(blank=True, null=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_knowledge_items', to=settings.AUTH_USER_MODEL)),
('knowledge_base', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items', to='knowledge.knowledgebase')),
('reviewed_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reviewed_knowledge_items', to=settings.AUTH_USER_MODEL)),
],
options={
'ordering': ['-updated_at'],
},
),
migrations.CreateModel(
name='KnowledgeChunk',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('chunk_index', models.PositiveIntegerField(default=0)),
('content', models.TextField()),
('embedding', models.JSONField(blank=True, default=list)),
('embedding_model', models.CharField(default='local-hash-v1', max_length=120)),
('metadata', models.JSONField(blank=True, default=dict)),
('created_at', models.DateTimeField(auto_now_add=True)),
('knowledge_base', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chunks', to='knowledge.knowledgebase')),
('document', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='chunks', to='knowledge.knowledgedocument')),
('item', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='chunks', to='knowledge.knowledgeitem')),
],
options={
'ordering': ['knowledge_base_id', 'document_id', 'item_id', 'chunk_index'],
'indexes': [models.Index(fields=['knowledge_base', 'chunk_index'], name='knowledge_k_knowled_949c7b_idx')],
},
),
]