package handler

import (
	"strconv"

	"github.com/gin-gonic/gin"
)

func page(c *gin.Context) (int, int, error) {
	var value, size int
	if raw, exists := c.GetQuery("page"); exists && raw != "" {
		parsed, err := strconv.Atoi(raw)
		if err != nil {
			return 0, 0, err
		}
		value = parsed
	}
	if raw, exists := c.GetQuery("pageSize"); exists && raw != "" {
		parsed, err := strconv.Atoi(raw)
		if err != nil {
			return 0, 0, err
		}
		size = parsed
	}
	return value, size, nil
}

func IDsFromQuery(c *gin.Context) []uint {
	values := c.QueryArray("IDs[]")
	ids := make([]uint, 0, len(values))
	for _, value := range values {
		id, _ := strconv.ParseUint(value, 10, 64)
		if id > 0 {
			ids = append(ids, uint(id))
		}
	}
	return ids
}
