Unified search algorithm across all lists; per-section record visibility (contacts, deals, activities, leads, finance, tickets, notes, projects)
This commit is contained in:
@@ -6,6 +6,7 @@ import type {
|
||||
} from '@mento/shared';
|
||||
import { Prisma } from '@prisma/client';
|
||||
import { PrismaService } from '../prisma/prisma.service';
|
||||
import { buildSearchWhere, ci } from '../common/search';
|
||||
|
||||
@Injectable()
|
||||
export class FaqService {
|
||||
@@ -21,15 +22,12 @@ export class FaqService {
|
||||
...(opts.category?.trim()
|
||||
? { category: opts.category.trim() }
|
||||
: {}),
|
||||
...(opts.q?.trim()
|
||||
? {
|
||||
OR: [
|
||||
{ question: { contains: opts.q.trim(), mode: 'insensitive' } },
|
||||
{ answer: { contains: opts.q.trim(), mode: 'insensitive' } },
|
||||
],
|
||||
}
|
||||
: {}),
|
||||
};
|
||||
const search = buildSearchWhere<Prisma.FaqArticleWhereInput>(opts.q, (t) => [
|
||||
{ question: ci(t) },
|
||||
{ answer: ci(t) },
|
||||
]);
|
||||
if (search) where.AND = [search];
|
||||
const rows = await this.prisma.faqArticle.findMany({
|
||||
where,
|
||||
orderBy: [{ position: 'asc' }, { createdAt: 'asc' }],
|
||||
|
||||
Reference in New Issue
Block a user