package sqlite

import (
	"context"
	"time"

	"switchboard-core/database"
)

// ── HealthStore ─────────────────────────────

type HealthStore struct{}

func NewHealthStore() *HealthStore { return &HealthStore{} }

// Prune deletes stale kernel data older than the given time.
func (s *HealthStore) Prune(ctx context.Context, before time.Time) (int64, error) {
	var total int64
	ts := before.UTC().Format("2006-01-02 15:04:05")

	res, _ := database.DB.ExecContext(ctx,
		`DELETE FROM ws_tickets WHERE expires_at < ?`, ts)
	if res != nil {
		n, _ := res.RowsAffected()
		total += n
	}

	res, _ = database.DB.ExecContext(ctx,
		`DELETE FROM rate_limit_counters WHERE window_start < ?`, ts)
	if res != nil {
		n, _ := res.RowsAffected()
		total += n
	}

	res, _ = database.DB.ExecContext(ctx,
		`DELETE FROM user_presence WHERE last_seen < ? AND status = 'offline'`, ts)
	if res != nil {
		n, _ := res.RowsAffected()
		total += n
	}

	return total, nil
}
