import 'package:dio/dio.dart'; import '../../models/search_response.dart'; /// SearchApi wraps GET /api/search. The server runs three facets (artists, /// albums, tracks) sharing one limit/offset pair. Each facet returns its /// own total reflecting the full match count. class SearchApi { SearchApi(this._dio); final Dio _dio; /// Empty / whitespace-only query is the caller's responsibility to /// guard against — the server returns 400 bad_request for it. Future search( String query, { int limit = 20, int offset = 0, }) async { final r = await _dio.get>( '/api/search', queryParameters: { 'q': query, 'limit': limit, 'offset': offset, }, ); return SearchResponse.fromJson(r.data ?? const {}); } }