package services

import (
	"time"

	"git.solsynth.dev/hypernet/paperclip/pkg/internal/database"
	"git.solsynth.dev/hypernet/paperclip/pkg/internal/models"

	"github.com/rs/zerolog/log"
)

func DoUnusedAttachmentCleanup() {
	deadline := time.Now().Add(-60 * time.Minute)

	var result []models.Attachment
	if err := database.C.Where("created_at < ? AND used_count = 0", deadline).
		Find(&result).Error; err != nil {
		log.Error().Err(err).Msg("An error occurred when getting unused attachments...")
		return
	}

	if err := DeleteAttachmentInBatch(result); err != nil {
		log.Error().Err(err).Msg("An error occurred when deleting unused attachments...")
		return
	}

	log.Info().Int("count", len(result)).Msg("Deleted unused attachments...")
}