| parseMcpSearchResult(McpSchema.CallToolResult, boolean) |  | 0% |  | 0% | 13 | 13 | 46 | 46 | 1 | 1 |
| buildMcpSearchArguments(ProfileSearchCriteria, int, int) |  | 0% |  | 0% | 12 | 12 | 43 | 43 | 1 | 1 |
| searchFreelancersViaMcp(McpSyncClient, ProfileSearchCriteria, int, int) |  | 0% |  | 0% | 4 | 4 | 17 | 17 | 1 | 1 |
| searchFreelancers(ProfileSearchCriteria, int, int) |   | 24% |   | 50% | 1 | 2 | 9 | 12 | 0 | 1 |
| findFreelancersByCodesInBatch(List) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| lambda$searchFreelancersViaMcp$0(McpSchema.Tool) |  | 0% |  | 0% | 3 | 3 | 2 | 2 | 1 | 1 |
| resolveOrderBy(String, String) |   | 72% |   | 50% | 5 | 8 | 5 | 9 | 0 | 1 |
| buildLlmContext(String) |   | 93% |   | 66% | 2 | 4 | 4 | 36 | 0 | 1 |
| findTagsByFreelancerIdsInBatch(List) |  | 91% |   | 50% | 1 | 2 | 1 | 9 | 0 | 1 |
| lambda$findFreelancersByCodesInBatch$0(FreelancerBatchRow) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| searchFreelancersViaDb(ProfileSearchCriteria, int, int) |  | 100% | | n/a | 0 | 1 | 0 | 16 | 0 | 1 |
| lambda$searchFreelancersViaDb$0(ProfileSearchCriteria, Map, ProfileSearchQueryService.1Row) |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| findChatsByUser(String, int, int) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| ProfileSearchQueryService(JdbcClient, McpClientFactory, McpConnectionProperties, ObjectMapper) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| countChatsByUser(String) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| findMessagesByChat(Long) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| findLatestChatByUser(String) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| lambda$findTagsByFreelancerIdsInBatch$0(ProfileSearchQueryService.1TagRow) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |