feat: add response DTOs for various services across modules

- Created response DTOs for ConfigService, AppService, AuthService, CatalogsService, AccountsService, BusinessActivityComplexesService, ComplexPosesService, SalesInvoicesService, BusinessActivitiesService, ConsumerBusinessActivityGoodsService, and others.
- Implemented Create, FindAll, FindOne, and Update response types for services in consumer, partners, and POS modules.
- Added request DTOs for creating and updating goods in the consumer business activities module.
- Introduced filtering DTO for partner licenses.
- Enhanced response mapping for partner license activations.
This commit is contained in:
2026-04-27 10:45:39 +03:30
parent 34793295c9
commit dee96b6e91
208 changed files with 8058 additions and 2349 deletions
@@ -0,0 +1,4 @@
import type { PartnerLicensesService } from '../licenses.service'
export type PartnerLicensesServiceFindAllResponseDto = Awaited<ReturnType<PartnerLicensesService['findAll']>>
export type PartnerLicensesServiceFindOneResponseDto = Awaited<ReturnType<PartnerLicensesService['findOne']>>
@@ -1,17 +1,18 @@
import { Controller, Get, Param } from '@nestjs/common'
import { PartnerLicensesService } from './licenses.service'
import type { PartnerLicensesServiceFindAllResponseDto, PartnerLicensesServiceFindOneResponseDto } from './dto/licenses-response.dto'
@Controller('admin/licenses')
export class LicensesController {
constructor(private readonly licensesService: PartnerLicensesService) {}
@Get()
async findAll() {
async findAll(): Promise<PartnerLicensesServiceFindAllResponseDto> {
return this.licensesService.findAll()
}
@Get(':id')
async findOne(@Param('id') id: string) {
async findOne(@Param('id') id: string): Promise<PartnerLicensesServiceFindOneResponseDto> {
return this.licensesService.findOne(id)
}
+20 -4
View File
@@ -1,3 +1,5 @@
import { QUERY_CONSTANTS } from '@/common/queryConstants'
import consumer_mappersUtil from '@/common/utils/mappers/consumer_mappers.util'
import { LicenseActivationSelect } from '@/generated/prisma/models'
import { PrismaService } from '@/prisma/prisma.service'
import { Injectable } from '@nestjs/common'
@@ -18,8 +20,7 @@ export class PartnerLicensesService {
consumer: {
select: {
id: true,
first_name: true,
last_name: true,
...QUERY_CONSTANTS.CONSUMER.infoSelect,
},
},
},
@@ -49,7 +50,7 @@ export class PartnerLicensesService {
}
async findAll(page = 1, perPage = 10) {
const [licenses, total] = await this.prisma.$transaction([
const [activatedLicenses, total] = await this.prisma.$transaction([
this.prisma.licenseActivation.findMany({
select: this.licenseDefaultSelect,
skip: (page - 1) * perPage,
@@ -58,7 +59,22 @@ export class PartnerLicensesService {
this.prisma.licenseActivation.count(),
])
return ResponseMapper.paginate(licenses, {
const mappedLicenses = activatedLicenses.map(license => {
const { business_activity, ...rest } = license
const { consumer, ...businessActivityRest } = business_activity as any
const mappedConsumer = consumer_mappersUtil(consumer)
return {
...rest,
business_activity: {
...businessActivityRest,
mappedConsumer,
},
}
})
return ResponseMapper.paginate(activatedLicenses, {
total,
page,
perPage,