package rest

import (
	"github.com/nexuscrm/backend/internal/application/services"
)

// SearchHandler manages search API endpoints.
// Method implementations are split across domain-specific files:
//   - search_sosl.go          — SearchSOSL, parseSOSL, parseFieldListWithOptions, executeSearchWithLimits
//   - search_parameterized.go — SearchParameterized, SearchParameterizedPOST
type SearchHandler struct {
	svcMgr *services.ServiceManager
}

// searchObjectConfig holds per-object search configuration
type searchObjectConfig struct {
	Name     string
	Fields   []string
	Limit    int
	Offset   int
	OrderBy  string
	OrderDir string
	Filter   string // WHERE clause
}

// NewSearchHandler creates a new SearchHandler
func NewSearchHandler(svcMgr *services.ServiceManager) *SearchHandler {
	return &SearchHandler{svcMgr: svcMgr}
}
