#!/usr/bin/env python3
"""
Erstellt Standard-Schuljahre für österreichische Schulen
Führe dieses Skript nach der Migration aus, um Standard-Perioden zu erstellen.
"""

from datetime import date
from models.models import AcademicPeriod, AcademicPeriodType
from server.database import Session
import sys
sys.path.append('/workspace')


def create_default_academic_periods():
    """Erstellt Standard-Schuljahre für österreichische Schulen"""
    session = Session()

    try:
        # Prüfe ob bereits Perioden existieren
        existing = session.query(AcademicPeriod).first()
        if existing:
            print("Academic periods already exist. Skipping creation.")
            return

        # Standard Schuljahre erstellen
        periods = [
            {
                'name': 'Schuljahr 2024/25',
                'display_name': 'SJ 24/25',
                'start_date': date(2024, 9, 2),
                'end_date': date(2025, 7, 4),
                'period_type': AcademicPeriodType.schuljahr,
                'is_active': True  # Aktuelles Schuljahr
            },
            {
                'name': 'Schuljahr 2025/26',
                'display_name': 'SJ 25/26',
                'start_date': date(2025, 9, 1),
                'end_date': date(2026, 7, 3),
                'period_type': AcademicPeriodType.schuljahr,
                'is_active': False
            },
            {
                'name': 'Schuljahr 2026/27',
                'display_name': 'SJ 26/27',
                'start_date': date(2026, 9, 7),
                'end_date': date(2027, 7, 2),
                'period_type': AcademicPeriodType.schuljahr,
                'is_active': False
            }
        ]

        for period_data in periods:
            period = AcademicPeriod(**period_data)
            session.add(period)

        session.commit()
        print(f"Successfully created {len(periods)} academic periods")

        # Zeige erstellte Perioden
        for period in session.query(AcademicPeriod).all():
            status = "AKTIV" if period.is_active else "inaktiv"
            print(
                f"  - {period.name} ({period.start_date} - {period.end_date}) [{status}]")

    except Exception as e:
        session.rollback()
        print(f"Error creating academic periods: {e}")
    finally:
        session.close()


if __name__ == "__main__":
    create_default_academic_periods()
