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
+1
View File
@@ -21,5 +21,6 @@ export const UploadedFileTypes = {
GOOD: 'good',
SERVICE: 'service',
PROFILE_AVATAR: 'profile_avatar',
PARTNER_LOGO: 'partner_logo',
}
export type UploadedFileTypes = (typeof UploadedFileTypes)[keyof typeof UploadedFileTypes]
+2 -2
View File
@@ -27,14 +27,14 @@ export class ConsumerGuard {
const consumer = await this.prisma.consumer.findFirst({
where: {
consumer_accounts: {
accounts: {
some: {
id: tokenPayload.account_id,
},
},
},
select: {
consumer_accounts: {
accounts: {
select: {
role: true,
},
+2 -2
View File
@@ -23,14 +23,14 @@ export class PartnerGuard {
const partner = await this.prisma.partner.findFirst({
where: {
partner_accounts: {
accounts: {
some: {
id: tokenPayload.account_id,
},
},
},
select: {
partner_accounts: {
accounts: {
select: {
role: true,
},
+31
View File
@@ -0,0 +1,31 @@
import { ConsumerSelect } from '@/generated/prisma/models'
export const infoSelect: ConsumerSelect = {
legal: {
select: {
name: true,
registration_code: true,
partner: {
select: {
id: true,
name: true,
code: true,
},
},
},
},
individual: {
select: {
first_name: true,
last_name: true,
mobile_number: true,
partner: {
select: {
id: true,
name: true,
code: true,
},
},
},
},
}
+4 -2
View File
@@ -1,5 +1,7 @@
import * as pos from './pos'
import * as CONSUMER from './consumer'
import * as POS from './pos'
export const QUERY_CONSTANTS = {
pos,
POS,
CONSUMER,
}
+4
View File
@@ -0,0 +1,4 @@
export * from './jwt-user.util'
export * from './mappers/consumer_mappers.util'
export * from './password.util'
export * from './tracking-code-generator.util'
@@ -0,0 +1,27 @@
export default (consumer: any) => {
const { legal, individual, activation, ...rest } = consumer
const partner = legal?.partner || individual?.partner
delete legal?.partner
delete individual?.partner
return {
...rest,
partner,
legal: legal ? { ...legal } : null,
individual: individual
? { ...individual, fullname: `${rest?.first_name} ${rest?.last_name}` }
: null,
name: legal ? legal.name : `${individual?.first_name} ${individual?.last_name}`,
// license_info: prepareLicenseInfo(activation),
}
}
function prepareLicenseInfo(latestLicense: any) {
if (!latestLicense) return null
const { license, ...rest } = latestLicense
return {
...rest,
}
}