package main

import (
	"encoding/json"
	"log"
	"os"
	"time"
)

func loadNotifiedEntries() {
	file, err := os.Open(notifiedFilePath)
	if err != nil {
		if os.IsNotExist(err) {
			return
		}
		log.Fatalf("Error loading notified entries: %v", err)
	}
	defer file.Close()

	err = json.NewDecoder(file).Decode(&notifiedEntries)
	if err != nil {
		log.Fatalf("Error decoding notified entries: %v", err)
	}
}

func saveNotifiedEntry(entryNumber int) {
	notifiedEntries[entryNumber] = true
	file, err := os.Create(notifiedFilePath)
	if err != nil {
		log.Fatalf("Error saving notified entries: %v", err)
	}
	defer file.Close()

	err = json.NewEncoder(file).Encode(notifiedEntries)
	if err != nil {
		log.Fatalf("Error encoding notified entries: %v", err)
	}
}

func checkAndSendNotifications() {
	for _, blog := range blogs {
		for _, entry := range blog.Entries {
			if !entry.Notified && !time.Now().Before(entry.Date) {
				sendNotifications(entry)
				entry.Notified = true
				saveNotifiedEntry(entry.Number)
			}
		}
	}
}