package infra

import (
	"database/sql"
	"fmt"
	"time"
)

// SessionCleanup elimina todas las sesiones con expires_at < ahora.
// Retorna el numero de filas eliminadas.
func SessionCleanup(db *sql.DB) (int64, error) {
	if db == nil {
		return 0, fmt.Errorf("session_cleanup: db nil")
	}
	res, err := db.Exec("DELETE FROM sessions WHERE expires_at < ?", time.Now().Unix())
	if err != nil {
		return 0, fmt.Errorf("session_cleanup: delete: %w", err)
	}
	n, err := res.RowsAffected()
	if err != nil {
		return 0, fmt.Errorf("session_cleanup: rows_affected: %w", err)
	}
	return n, nil
}
