max catalogue count

This commit is contained in:
2026-03-15 16:02:16 +03:30
parent c58a7267ea
commit f9094fcbb3
+12 -1
View File
@@ -1,4 +1,4 @@
import { Injectable, NotFoundException } from '@nestjs/common'; import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
import { CreateCatalogueDto } from './dto/create-catalogue.dto'; import { CreateCatalogueDto } from './dto/create-catalogue.dto';
import { UpdateCatalogueDto } from './dto/update-catalogue.dto'; import { UpdateCatalogueDto } from './dto/update-catalogue.dto';
import { EntityManager } from '@mikro-orm/postgresql'; import { EntityManager } from '@mikro-orm/postgresql';
@@ -19,6 +19,12 @@ export class CatalogueService {
async create(dto: CreateCatalogueDto, businessId: string) { async create(dto: CreateCatalogueDto, businessId: string) {
const business = await this.businessService.findByIdOrFail(businessId) const business = await this.businessService.findByIdOrFail(businessId)
const createdCataloguesCount = await this.findCataloguesCountByBusinessId(businessId)
if (createdCataloguesCount >= business.maxCataloguesCount) {
throw new BadRequestException("شما از حداکثر تعداد کاتالوگ استفاده کرده اید و نمیتوانید کاتالوگ جدیدی بسازید")
}
const catalogue = this.em.create(Catalogue, const catalogue = this.em.create(Catalogue,
{ ...dto, business, status: CatalogueStatus.PENDING }) { ...dto, business, status: CatalogueStatus.PENDING })
@@ -63,4 +69,9 @@ export class CatalogueService {
await this.em.flush() await this.em.flush()
return catalogue return catalogue
} }
async findCataloguesCountByBusinessId(businessId: string) {
const count = await this.catalogueRepository.count({ business: { id: businessId }, deletedAt: null })
return count ?? 0
}
} }