from django.db import migrations
from django.utils.text import slugify
from django.db import models
from dataset.models import Dataset

def generate_unique_slugs(apps, schema_editor):
    Dataset = apps.get_model('dataset', 'Dataset')  # Update 'dataset' with the name of your Django app

    for dataset in Dataset.objects.all():
        original_slug = slugify(dataset.name)
        if Dataset.objects.filter(slug=original_slug).exclude(id=dataset.id).exists():
            counter = 1
            while True:
                new_slug = f"{original_slug}-{counter}"
                if not Dataset.objects.filter(slug=new_slug).exists():
                    dataset.slug = new_slug
                    dataset.save()
                    break
                counter += 1

class Migration(migrations.Migration):

    dependencies = [
        ('dataset', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
        model_name='dataset',
        name='slug',
        field=models.SlugField(blank=True, max_length=200, null=True),
    ),
        migrations.RunPython(generate_unique_slugs),
        
    ]
