package mysqlquerybuilder

import (
	"fmt"

	"git.gocasts.ir/ebhomengo/niki/param"
)

func BuildGetAllQuery(baseQuery string, filter param.FilterRequest, pagination param.PaginationRequest, sort param.SortRequest) (string, []any) {

	filterQuery, fArgs := BuildFilterQuery(filter)
	paginationQuery, pArgs := BuildPaginationQuery(pagination)
	sortQuery := BuildSortQuery(sort)

	args := []any{}
	args = append(args, fArgs...)
	args = append(args, pArgs...)

	query := baseQuery
	if filterQuery != "" {
		query = fmt.Sprintf("%s %s", query, filterQuery)
	}
	if sortQuery != "" {
		query = fmt.Sprintf("%s %s", query, sortQuery)
	}
	if paginationQuery != "" {
		query = fmt.Sprintf("%s %s", query, paginationQuery)
	}

	return query, args
}
