feat: add SearchService for unified search functionality
- Create SearchService with SearchMediaItemsUnified method - Add SearchFieldValues method for autocomplete dropdown population - Add parseSearchQuery helper for quote detection (exact vs fuzzy search) - Move all business logic from handler to service layer - Follow established service pattern (FiltersService, CollectionService) - Service created inside handler constructor, not in main.go - SearchParams struct supports all filter types + sort parameter - FieldSearchParams struct for field-specific autocomplete queries - Returns FieldValue results with count and similarity scores This provides a clean service layer abstraction for search operations.
This commit is contained in:
@@ -30,6 +30,7 @@ type SearchParams struct {
|
||||
YearMax int
|
||||
HasCover bool
|
||||
SearchQuery string
|
||||
Sort string
|
||||
Limit int
|
||||
Offset int
|
||||
}
|
||||
@@ -76,6 +77,7 @@ func (s *SearchService) SearchMediaItemsUnified(ctx context.Context, params Sear
|
||||
SearchQuery: pgtype.Text{String: searchQuery, Valid: true},
|
||||
IsExactSearch: pgtype.Bool{Bool: isExact, Valid: true},
|
||||
SearchPattern: pgtype.Text{String: searchPattern, Valid: isExact},
|
||||
Sort: pgtype.Text{String: params.Sort, Valid: true},
|
||||
Limit: pgtype.Int4{Int32: int32(params.Limit), Valid: true},
|
||||
Offset: pgtype.Int4{Int32: int32(params.Offset), Valid: true},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user