This commit is contained in:
2026-04-06 18:33:04 +03:30
parent 1160d81cdb
commit af71fb441b
7 changed files with 59 additions and 4 deletions
@@ -30,3 +30,12 @@ export class UpdatePartnerDto extends PartialType(CreatePartnerDto) {
@ApiProperty({ enum: PartnerStatus })
status: PartnerStatus
}
export class LicenseChargeDto {
@IsNumber()
@ApiProperty({
required: true,
minimum: 0,
})
count: number
}
@@ -1,5 +1,5 @@
import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'
import { CreatePartnerDto, UpdatePartnerDto } from './dto/partner.dto'
import { CreatePartnerDto, LicenseChargeDto, UpdatePartnerDto } from './dto/partner.dto'
import { PartnersService } from './partners.service'
@Controller('admin/partners')
@@ -26,6 +26,11 @@ export class PartnersController {
return this.partnersService.update(id, data)
}
@Post(':id/charge-license')
async licenseCharge(@Param('id') id: string, @Body() data: LicenseChargeDto) {
return this.partnersService.licenseCharge(id, data)
}
@Delete(':id')
async delete(@Param('id') id: string) {
return this.partnersService.delete(id)
+13 -1
View File
@@ -8,7 +8,7 @@ import {
import { PrismaService } from '@/prisma/prisma.service'
import { Injectable } from '@nestjs/common'
import { ResponseMapper } from 'common/response/response-mapper'
import { CreatePartnerDto, UpdatePartnerDto } from './dto/partner.dto'
import { CreatePartnerDto, LicenseChargeDto, UpdatePartnerDto } from './dto/partner.dto'
@Injectable()
export class PartnersService {
@@ -69,6 +69,18 @@ export class PartnersService {
return ResponseMapper.update(partner)
}
async licenseCharge(id: string, data: LicenseChargeDto) {
const partner = await this.prisma.partner.update({
where: { id },
data: {
license_quota: {
increment: data.count,
},
},
})
return ResponseMapper.update(partner)
}
async delete(id: string) {
await this.prisma.partner.delete({ where: { id } })
return ResponseMapper.delete()
+18
View File
@@ -1,3 +1,4 @@
import { PublicWithToken } from '@/common/decorators/withToken.decorator'
import { Controller, Get } from '@nestjs/common'
import { EnumsService } from './enums.service'
@@ -6,86 +7,103 @@ export class EnumsController {
constructor(private readonly enumsService: EnumsService) {}
@Get('gold_karat')
@PublicWithToken()
async getGoldKarat() {
return this.enumsService.getEnumValues('GoldKarat')
}
@Get('user_status')
@PublicWithToken()
async getUserStatus() {
return this.enumsService.getEnumValues('UserStatus')
}
@Get('account_role')
@PublicWithToken()
async getAccountRole() {
return this.enumsService.getEnumValues('AccountRole')
}
@Get('account_status')
@PublicWithToken()
async getAccountStatus() {
return this.enumsService.getEnumValues('AccountStatus')
}
@Get('pos_status')
@PublicWithToken()
async getPOSStatus() {
return this.enumsService.getEnumValues('POSStatus')
}
@Get('pos_role')
@PublicWithToken()
async getPOSRole() {
return this.enumsService.getEnumValues('POSRole')
}
@Get('license_type')
@PublicWithToken()
async getLicenseType() {
return this.enumsService.getEnumValues('LicenseType')
}
@Get('license_status')
@PublicWithToken()
async getLicenseStatus() {
return this.enumsService.getEnumValues('LicenseStatus')
}
@Get('pos_type')
@PublicWithToken()
async getPOSType() {
return this.enumsService.getEnumValues('POSType')
}
@Get('user_type')
@PublicWithToken()
async getUserType() {
return this.enumsService.getEnumValues('UserType')
}
@Get('account_type')
@PublicWithToken()
async getAccountType() {
return this.enumsService.getEnumValues('AccountType')
}
@Get('partner_role')
@PublicWithToken()
async getPartnerRole() {
return this.enumsService.getEnumValues('PartnerRole')
}
@Get('business_role')
@PublicWithToken()
async getBusinessRole() {
return this.enumsService.getEnumValues('BusinessRole')
}
@Get('provider_role')
@PublicWithToken()
async getProviderRole() {
return this.enumsService.getEnumValues('ProviderRole')
}
@Get('token_type')
@PublicWithToken()
async getTokenType() {
return this.enumsService.getEnumValues('TokenType')
}
@Get('unit_type')
@PublicWithToken()
async getUnitType() {
return this.enumsService.getEnumValues('UnitType')
}
@Get('good_pricing_model')
@PublicWithToken()
async getGoodPricingModel() {
return this.enumsService.getEnumValues('GoodPricingModel')
}