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