create license management

This commit is contained in:
2026-04-06 13:31:40 +03:30
parent c02e7afca1
commit 1160d81cdb
42 changed files with 1233 additions and 522 deletions
@@ -1,5 +1,5 @@
import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common'
import { CreateLicenseDto, UpdateLicenseDto } from './dto/license.dto'
import { Body, Controller, Get, Param, Patch } from '@nestjs/common'
import { UpdateLicenseDto } from './dto/license.dto'
import { PartnerLicensesService } from './licenses.service'
@Controller('admin/licenses')
@@ -16,11 +16,6 @@ export class LicensesController {
return this.licensesService.findOne(id)
}
@Post()
async create(@Body() data: CreateLicenseDto) {
return this.licensesService.create(data)
}
@Patch(':id')
async update(@Param('id') id: string, @Body() data: UpdateLicenseDto) {
return this.licensesService.update(id, data)
+3 -24
View File
@@ -2,8 +2,7 @@ import { LicenseInclude } from '@/generated/prisma/models'
import { PrismaService } from '@/prisma/prisma.service'
import { Injectable } from '@nestjs/common'
import { ResponseMapper } from 'common/response/response-mapper'
import { LicenseStatus } from 'generated/prisma/enums'
import { CreateLicenseDto, UpdateLicenseDto } from './dto/license.dto'
import { UpdateLicenseDto } from './dto/license.dto'
@Injectable()
export class PartnerLicensesService {
@@ -43,7 +42,6 @@ export class PartnerLicensesService {
this.prisma.license.findMany({
include: this.licenseInclude,
omit: {
pos_id: true,
partner_id: true,
},
}),
@@ -51,7 +49,7 @@ export class PartnerLicensesService {
])
return ResponseMapper.paginate(
licenses.map(license => {
const { pos, ...rest } = license
const { ...rest } = license
// @ts-ignore
const { accounts, ...posRest } = pos
return {
@@ -71,12 +69,11 @@ export class PartnerLicensesService {
where: { id },
include: this.licenseInclude,
omit: {
pos_id: true,
partner_id: true,
},
})
if (license) {
const { pos, ...rest } = license
const { ...rest } = license
// @ts-ignore
const { accounts, ...posRest } = pos
return ResponseMapper.single({
@@ -89,24 +86,6 @@ export class PartnerLicensesService {
return ResponseMapper.single(license)
}
async create(data: CreateLicenseDto) {
const date = new Date(data.starts_at || '')
const expiresAt =
data.expires_at || new Date(date.setFullYear(date.getFullYear() + 1))
const license = await this.prisma.license.create({
data: {
partner_id: data.partner_id,
pos_id: data.pos_id,
starts_at: date,
expires_at: expiresAt,
status: LicenseStatus.ACTIVE,
},
})
return ResponseMapper.create(license)
}
async update(id: string, data: UpdateLicenseDto) {
const license = await this.prisma.license.update({
where: { id },