from django.core.management.base import BaseCommand
from django.db import connection


class Command(BaseCommand):
    help = "Fix migration history"

    def handle(self, *args, **options):
        with connection.cursor() as cursor:
            # Drop existing historical tables
            cursor.execute(
                """
                DROP TABLE IF EXISTS parks_historicalpark CASCADE;
                DROP TABLE IF EXISTS parks_historicalparkarea CASCADE;
            """
            )

            # Delete all existing parks migrations
            cursor.execute(
                """
                DELETE FROM django_migrations
                WHERE app = 'parks';
            """
            )

            # Insert the new initial migration
            cursor.execute(
                """
                INSERT INTO django_migrations (app, name, applied)
                VALUES ('parks', '0001_initial', NOW());
            """
            )

            self.stdout.write(self.style.SUCCESS("Successfully fixed migration history"))
