# Generated by Django 5.2.15 on 2026-07-14 05:47 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="SkillDefinition", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("code", models.SlugField(max_length=80, unique=True)), ("name", models.CharField(max_length=120)), ("description", 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, related_name="created_skills", to=settings.AUTH_USER_MODEL, ), ), ], options={ "ordering": ["name"], }, ), migrations.CreateModel( name="SkillVersion", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("version", models.PositiveIntegerField()), ("status", models.CharField(default="draft", max_length=24)), ("prompt_template", models.TextField()), ("input_schema", models.JSONField(default=dict)), ("output_schema", models.JSONField(default=dict)), ("example_input", models.JSONField(blank=True, default=dict)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ("published_at", models.DateTimeField(blank=True, null=True)), ( "created_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_skill_versions", to=settings.AUTH_USER_MODEL, ), ), ( "definition", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="versions", to="skills.skilldefinition", ), ), ( "published_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="published_skill_versions", to=settings.AUTH_USER_MODEL, ), ), ], options={ "ordering": ["-version"], }, ), migrations.AddField( model_name="skilldefinition", name="active_version", field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="active_for_definitions", to="skills.skillversion", ), ), migrations.AddConstraint( model_name="skillversion", constraint=models.UniqueConstraint( fields=("definition", "version"), name="unique_skill_version" ), ), migrations.AddConstraint( model_name="skillversion", constraint=models.UniqueConstraint( condition=models.Q(("status", "draft")), fields=("definition",), name="unique_skill_draft", ), ), ]