fix
This commit is contained in:
@@ -202,13 +202,36 @@ export class AgentsService {
|
||||
};
|
||||
|
||||
if (search) {
|
||||
where.OR = [
|
||||
{ firstName: { contains: search, mode: 'insensitive' } },
|
||||
{ lastName: { contains: search, mode: 'insensitive' } },
|
||||
{ bio: { contains: search, mode: 'insensitive' } },
|
||||
{ headline: { contains: search, mode: 'insensitive' } },
|
||||
{ companyName: { contains: search, mode: 'insensitive' } },
|
||||
];
|
||||
const searchParts = search.trim().split(/\s+/);
|
||||
|
||||
if (searchParts.length > 1) {
|
||||
// Multi-word search (e.g. "John Smith") — match first+last name combination
|
||||
// plus still try the full string against other fields
|
||||
where.OR = [
|
||||
// Match firstName + lastName across parts
|
||||
{
|
||||
AND: searchParts.map((part) => ({
|
||||
OR: [
|
||||
{ firstName: { contains: part, mode: 'insensitive' as const } },
|
||||
{ lastName: { contains: part, mode: 'insensitive' as const } },
|
||||
],
|
||||
})),
|
||||
},
|
||||
// Also match the full search string against other fields
|
||||
{ bio: { contains: search, mode: 'insensitive' } },
|
||||
{ headline: { contains: search, mode: 'insensitive' } },
|
||||
{ companyName: { contains: search, mode: 'insensitive' } },
|
||||
];
|
||||
} else {
|
||||
// Single word search — match against any field
|
||||
where.OR = [
|
||||
{ firstName: { contains: search, mode: 'insensitive' } },
|
||||
{ lastName: { contains: search, mode: 'insensitive' } },
|
||||
{ bio: { contains: search, mode: 'insensitive' } },
|
||||
{ headline: { contains: search, mode: 'insensitive' } },
|
||||
{ companyName: { contains: search, mode: 'insensitive' } },
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// General location search - searches across legacy columns AND dynamic field values
|
||||
|
||||
Reference in New Issue
Block a user