import json
from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
from .models import Semester
import os
from django.conf import settings
def export_semesters_to_json():
    semesters = Semester.objects.all()
    data = []
    for semester in semesters:
        data.append({
            'semester_id': semester.semester_id,
            'title': semester.title,
            'slug': semester.slug,
            'code': semester.code,
        })
    
    json_file_path = os.path.join(settings.DATA_CACHE_DIR, 'semesters.json')
    with open(json_file_path, 'w') as f:
        json.dump(data, f, indent=4)

@receiver(post_save, sender=Semester)
def semester_post_save(sender, instance, created, **kwargs):
    """
    Update semesters.json when a semester is created or updated.
    """
    export_semesters_to_json()

@receiver(post_delete, sender=Semester)
def semester_post_delete(sender, instance, **kwargs):
    """
    Update semesters.json when a semester is deleted.
    """
    export_semesters_to_json()