"""Add an 'Export' item under the Master Data sidebar group.

Run after migrating:  python add_export_menu.py

The item links to /reports, where the CSV / Excel / PDF export of the current
(filtered) recruitment view lives (REQ-DASH-007). It sits under the existing
admin-only 'Master Data' parent, matching its siblings (permission_code blank,
admin_only=True). Idempotent — re-running just refreshes the item.
"""

import django
import os
import sys

ROUTE = "/reports"
NAME = "Export"


def add_export_menu():
    from apps.menus.models import Menu

    parent = Menu.objects.filter(name="Master Data", parent__isnull=True).first()
    if not parent:
        print("ERROR: 'Master Data' parent menu not found — run the master-data seeders first.")
        sys.exit(1)

    last = parent.children.order_by("-sort_order").first()
    next_order = (last.sort_order + 1) if last else 1

    item, created = Menu.objects.get_or_create(
        name=NAME, parent=parent,
        defaults={
            "route": ROUTE,
            "icon": "fa-solid fa-file-export",
            "sort_order": next_order,
            "permission_code": "",
            "is_active": True,
            "admin_only": True,
        },
    )
    if not created:
        item.route = ROUTE
        item.icon = "fa-solid fa-file-export"
        item.permission_code = ""
        item.is_active = True
        item.admin_only = True
        item.save()

    print(f"{'Created' if created else 'Updated'} '{NAME}' (route={ROUTE}) under 'Master Data' [sort_order={item.sort_order}].")


if __name__ == "__main__":
    sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev")
    django.setup()
    add_export_menu()
