# Generated by Django 4.2.11 on 2026-04-12 11:37 from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='AIAgent', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('agent_id', models.CharField(max_length=100, unique=True)), ('name', models.CharField(max_length=200)), ('description', models.TextField(blank=True)), ('secret_key', models.CharField(max_length=64)), ('permissions', models.JSONField(default=list)), ('rate_limit', models.IntegerField(default=1000)), ('rate_limit_window', models.IntegerField(default=3600)), ('is_active', models.BooleanField(default=True)), ('last_seen', models.DateTimeField(blank=True, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'db_table': 'ai_agents', 'ordering': ['created_at'], }, ), migrations.CreateModel( name='AIWebhook', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('event', models.CharField(choices=[('article.created', 'Article Created'), ('article.approved', 'Article Approved'), ('article.rejected', 'Article Rejected'), ('service.created', 'Service Created'), ('review.pending', 'Review Pending')], max_length=50)), ('url', models.URLField()), ('secret', models.CharField(max_length=64)), ('is_active', models.BooleanField(default=True)), ('last_triggered', models.DateTimeField(blank=True, null=True)), ('failure_count', models.IntegerField(default=0)), ('created_at', models.DateTimeField(auto_now_add=True)), ('agent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='webhooks', to='agents.aiagent')), ], options={ 'db_table': 'ai_webhooks', 'ordering': ['created_at'], }, ), migrations.CreateModel( name='AITask', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('task_id', models.CharField(max_length=64, unique=True)), ('task_type', models.CharField(max_length=50)), ('status', models.CharField(choices=[('pending', 'Pending'), ('processing', 'Processing'), ('completed', 'Completed'), ('failed', 'Failed')], max_length=20)), ('progress', models.IntegerField(default=0)), ('total_items', models.IntegerField(blank=True, null=True)), ('processed_items', models.IntegerField(default=0)), ('result', models.JSONField(blank=True, null=True)), ('error_message', models.TextField(blank=True)), ('callback_url', models.URLField(blank=True, null=True)), ('callback_secret', models.CharField(blank=True, max_length=64, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('started_at', models.DateTimeField(blank=True, null=True)), ('completed_at', models.DateTimeField(blank=True, null=True)), ('agent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='agents.aiagent')), ], options={ 'db_table': 'ai_tasks', 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='AIOperationLog', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('action', models.CharField(max_length=50)), ('resource_type', models.CharField(max_length=50)), ('resource_id', models.IntegerField(blank=True, null=True)), ('status', models.CharField(choices=[('success', 'Success'), ('failed', 'Failed'), ('partial', 'Partial Success')], max_length=20)), ('confidence', models.FloatField(blank=True, null=True)), ('reasoning', models.TextField(blank=True)), ('request_data', models.JSONField(blank=True, null=True)), ('response_data', models.JSONField(blank=True, null=True)), ('error_message', models.TextField(blank=True)), ('execution_time_ms', models.IntegerField(blank=True, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('agent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='operations', to='agents.aiagent')), ], options={ 'db_table': 'ai_operation_logs', 'ordering': ['-created_at'], 'indexes': [models.Index(fields=['agent', '-created_at'], name='ai_operatio_agent_i_ab1f14_idx'), models.Index(fields=['resource_type', '-created_at'], name='ai_operatio_resourc_95d5e1_idx')], }, ), ]