# Generated by Django 5.2.15 on 2026-07-02 02:37 import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='AiModel', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128, unique=True)), ('url', models.URLField(max_length=500)), ('model', models.CharField(max_length=128)), ('api_type', models.CharField(choices=[('auto', 'Auto'), ('chat', 'Chat completions'), ('gemini', 'Gemini'), ('images', 'Images generations'), ('images_edits', 'Images edits')], default='auto', max_length=32)), ('api_key_encrypted', models.TextField(blank=True, editable=False)), ('capabilities', models.JSONField(blank=True, default=list)), ('timeout_seconds', models.PositiveIntegerField(default=0, help_text='0 means use provider resolution defaults.')), ('connect_timeout_seconds', models.PositiveIntegerField(default=30)), ('extra_body', models.JSONField(blank=True, default=dict)), ('is_active', models.BooleanField(default=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'db_table': 'ai_model', 'ordering': ('name',), }, ), migrations.CreateModel( name='ModelAlias', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('alias', models.SlugField(max_length=64)), ('operation_type', models.CharField(choices=[('title', 'Generate title'), ('image', 'Generate image')], max_length=32)), ('is_default', models.BooleanField(default=False)), ('is_active', models.BooleanField(default=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('ai_model', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='aliases', to='ai.aimodel')), ], options={ 'db_table': 'model_alias', 'ordering': ('operation_type', 'alias'), 'indexes': [models.Index(fields=['operation_type', 'is_default'], name='model_alias_operati_622f4b_idx'), models.Index(fields=['operation_type', 'is_active'], name='model_alias_operati_32d832_idx')], 'constraints': [models.UniqueConstraint(fields=('operation_type', 'alias'), name='unique_model_alias_per_operation')], }, ), ]