chore: add service search

This commit is contained in:
mahyargdz
2025-03-09 17:08:00 +03:30
parent cb8ecd770c
commit 2b51059bc1
3 changed files with 35 additions and 2 deletions
@@ -10,7 +10,7 @@ import { CategoryListSearchQueryDto, CategorySearchQueryDto } from "../DTO/categ
import { CreateCategoryDto } from "../DTO/create-category.dto";
import { CreateServiceDto } from "../DTO/create-service.dto";
import { DanakServiceReviewQueryDto } from "../DTO/danak-service-review-query.dto";
import { DanakServicesQueryDto, DanakServicesSearchQueryDto } from "../DTO/danak-services-search-query.dto";
import { DanakServicesGlobalSearchDto, DanakServicesQueryDto, DanakServicesSearchQueryDto } from "../DTO/danak-services-search-query.dto";
import { UpdateCategoryDto } from "../DTO/update-category.dto";
import { UpdateReviewStatusDto } from "../DTO/update-review-status.dto";
import { UpdateServiceDto } from "../DTO/update-service.dto";
@@ -324,6 +324,30 @@ export class DanakServicesService {
async getServicesListForUser(queryDto: DanakServicesQueryDto) {
return this.danakServicesRepository.getServicesForUser(queryDto);
}
/******************************************** */
async searchServices(queryDto: DanakServicesGlobalSearchDto) {
const servicesQuery = this.danakServicesRepository
.createQueryBuilder("service")
.leftJoin("service.category", "category")
.leftJoin("service.subscriptionPlans", "subscriptionPlans")
.select(["service.id", "service.name", "service.description", "service.icon", "category.id", "category.title"])
.where("service.isActive = :isActive", { isActive: true })
.andWhere("service.deletedAt IS NULL")
.andWhere("category.isActive = :categoryActive", { categoryActive: true })
.andWhere("category.deletedAt IS NULL")
.andWhere("subscriptionPlans.isActive = :planActive", { planActive: true });
if (queryDto.q) {
servicesQuery.andWhere("service.name ILIKE :searchQuery", { searchQuery: `%${queryDto.q}%` });
}
const services = await servicesQuery.getMany();
return {
services,
};
}
/******************************************** */