# Generated by Django 5.2.6 on 2026-06-11

import django.db.models.deletion
import uuid
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ("platform_modules", "0012_phase4_featureentitlement_decouple"),
    ]

    operations = [
        migrations.CreateModel(
            name="FeatureGroup",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                (
                    "created_at",
                    models.DateTimeField(
                        auto_now_add=True, db_index=True, verbose_name="created at"
                    ),
                ),
                ("updated_at", models.DateTimeField(auto_now=True, verbose_name="updated at")),
                (
                    "public_id",
                    models.UUIDField(
                        db_index=True,
                        default=uuid.uuid4,
                        editable=False,
                        unique=True,
                        verbose_name="public id",
                    ),
                ),
                (
                    "name",
                    models.CharField(
                        db_index=True,
                        help_text="Unique group name, e.g. 'CRM' or 'Reports'.",
                        max_length=120,
                        unique=True,
                        verbose_name="name",
                    ),
                ),
                (
                    "slug",
                    models.SlugField(
                        db_index=True,
                        help_text="URL-friendly identifier, e.g. 'crm' or 'reports'.",
                        max_length=120,
                        unique=True,
                        verbose_name="slug",
                    ),
                ),
                (
                    "icon",
                    models.CharField(
                        blank=True,
                        default="",
                        help_text="Optional icon identifier for UI rendering.",
                        max_length=60,
                        verbose_name="icon",
                    ),
                ),
                (
                    "sort_order",
                    models.PositiveSmallIntegerField(
                        db_index=True,
                        default=0,
                        help_text="Controls display order; lower values appear first.",
                        verbose_name="sort order",
                    ),
                ),
                (
                    "description",
                    models.TextField(blank=True, default="", verbose_name="description"),
                ),
            ],
            options={
                "verbose_name": "feature group",
                "verbose_name_plural": "feature groups",
                "ordering": ("sort_order", "name"),
            },
        ),
        migrations.AddField(
            model_name="FeatureCatalog",
            name="group",
            field=models.ForeignKey(
                blank=True,
                help_text="Optional grouping for admin organisation and navigation.",
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="features",
                to="platform_modules.featuregroup",
                verbose_name="group",
            ),
        ),
    ]
