package handler

import (
	"context"
	"database/sql"
	"fmt"
	"net/http"
	"time"
	"vctp/db/queries"
)

// VmUpdate receives the CloudEvent for a VM modification or move
func (h *Handler) UpdateCleanup(w http.ResponseWriter, r *http.Request) {
	// Get the current time
	now := time.Now()
	// Get the start of the current day (midnight today)
	midnightToday := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
	// Convert to Unix time
	unixTime := midnightToday.Unix()

	// create the database parameters
	params := queries.CleanupUpdatesParams{
		UpdateType: "diskchange",
		UpdateTime: sql.NullInt64{Int64: unixTime, Valid: unixTime > 0},
	}

	h.Logger.Debug("database params", "params", params)
	err := h.Database.Queries().CleanupUpdates(context.Background(), params)

	if err != nil {
		h.Logger.Error("Error received cleaning updates table", "error", err)
		w.WriteHeader(http.StatusInternalServerError)
		fmt.Fprintf(w, "Delete Request unsuccessful %s\n", err)
	} else {
		h.Logger.Debug("Processed update cleanup successfully")
		w.WriteHeader(http.StatusOK)
		// TODO - return some JSON
		fmt.Fprintf(w, "Processed update cleanup successfully")
	}
}
