import json
from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
from .models import TimeSlot
from django.conf import settings
import os

def export_timeslots_to_json():
    timeslots = TimeSlot.objects.all().order_by('start_time')
    data = []
    for timeslot in timeslots:
        data.append({
            'id': str(timeslot.id),
            'start_time': str(timeslot.start_time),
            'end_time': str(timeslot.end_time),
            'slot_name': timeslot.slot_name,
            'slug': timeslot.slug,
            'status': timeslot.status.title if timeslot.status else None,
            'created_at': str(timeslot.created_at),
        })
    with open(os.path.join(settings.DATA_CACHE_DIR, 'timeslots.json'), 'w') as f:
        json.dump(data, f, indent=4)

@receiver(post_save, sender=TimeSlot)
def save_timeslot_signal(sender, instance, **kwargs):
    export_timeslots_to_json()

@receiver(post_delete, sender=TimeSlot)
def delete_timeslot_signal(sender, instance, **kwargs):
    export_timeslots_to_json()
