update swagger

This commit is contained in:
2026-07-02 20:21:12 +03:30
parent 8e2e43e12b
commit 1f06b378e6
18 changed files with 346 additions and 34 deletions
@@ -0,0 +1,12 @@
import { ApiProperty } from '@nestjs/swagger';
export class SalonSmsBalanceDto {
@ApiProperty({ example: 100 })
freeSmsRemaining: number;
@ApiProperty({ example: 250 })
purchasedSmsRemaining: number;
@ApiProperty({ example: 350 })
totalRemaining: number;
}
@@ -21,9 +21,17 @@ import { PurchaseSmsPackageDto } from './dto/purchase-sms-package.dto';
import { PurchaseSubscriptionDto } from './dto/purchase-subscription.dto';
import { SalonSubscriptionsService } from './salon-subscriptions.service';
import { SWAGGER_JWT_AUTH } from '../swagger/swagger.setup';
import {
ApiStandardController,
ApiStandardOkResponse,
} from '../swagger/decorators/swagger-response.decorator';
import { SalonSmsBalanceDto } from './dto/salon-sms-balance.dto';
import { SalonSmsPurchase } from './entities/salon-sms-purchase.entity';
import { SalonSubscription } from './entities/salon-subscription.entity';
@ApiTags('Salon Subscriptions')
@ApiBearerAuth(SWAGGER_JWT_AUTH)
@ApiStandardController()
@Controller('salon-subscriptions')
@UseGuards(RolesGuard, PermissionsGuard)
export class SalonSubscriptionsController {
@@ -34,6 +42,7 @@ export class SalonSubscriptionsController {
@Roles(UserRole.ADMIN, UserRole.SALON)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@AllowWithoutSubscription()
@ApiStandardOkResponse(SalonSubscription)
@Post('purchase')
purchaseSubscription(
@Body() dto: PurchaseSubscriptionDto,
@@ -44,6 +53,7 @@ export class SalonSubscriptionsController {
@Roles(UserRole.ADMIN, UserRole.SALON)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@ApiStandardOkResponse(SalonSmsPurchase)
@Post('sms/purchase')
purchaseSmsPackage(
@Body() dto: PurchaseSmsPackageDto,
@@ -55,6 +65,7 @@ export class SalonSubscriptionsController {
@Roles(UserRole.ADMIN, UserRole.SALON)
@Permissions(PermissionCode.SUBSCRIPTIONS_READ)
@AllowWithoutSubscription()
@ApiStandardOkResponse(SalonSubscription, { isArray: true })
@Get('salon/:salonId')
findAllForSalon(
@Param('salonId', ParseUUIDPipe) salonId: string,
@@ -66,6 +77,7 @@ export class SalonSubscriptionsController {
@Roles(UserRole.ADMIN, UserRole.SALON)
@Permissions(PermissionCode.SUBSCRIPTIONS_READ)
@AllowWithoutSubscription()
@ApiStandardOkResponse(SalonSubscription, { nullable: true })
@Get('salon/:salonId/active')
findActiveForSalon(
@Param('salonId', ParseUUIDPipe) salonId: string,
@@ -77,6 +89,7 @@ export class SalonSubscriptionsController {
@Roles(UserRole.ADMIN, UserRole.SALON)
@Permissions(PermissionCode.SUBSCRIPTIONS_READ)
@AllowWithoutSubscription()
@ApiStandardOkResponse(SalonSmsBalanceDto)
@Get('salon/:salonId/sms-balance')
getSmsBalance(
@Param('salonId', ParseUUIDPipe) salonId: string,
@@ -87,6 +100,7 @@ export class SalonSubscriptionsController {
@Roles(UserRole.ADMIN, UserRole.SALON)
@Permissions(PermissionCode.SUBSCRIPTIONS_READ)
@ApiStandardOkResponse(SalonSmsPurchase, { isArray: true })
@Get('salon/:salonId/sms-purchases')
findSmsPurchasesForSalon(
@Param('salonId', ParseUUIDPipe) salonId: string,
@@ -101,6 +115,7 @@ export class SalonSubscriptionsController {
@Roles(UserRole.ADMIN, UserRole.SALON)
@Permissions(PermissionCode.SUBSCRIPTIONS_READ)
@AllowWithoutSubscription()
@ApiStandardOkResponse(SalonSubscription)
@Get(':id')
findOne(
@Param('id', ParseUUIDPipe) id: string,
@@ -23,9 +23,16 @@ import { UpdateSmsPackageDto } from './dto/update-sms-package.dto';
import { SmsPackagesService } from './sms-packages.service';
import { ApiPublicEndpoint } from '../swagger/decorators/swagger-auth.decorator';
import { SWAGGER_JWT_AUTH } from '../swagger/swagger.setup';
import {
ApiStandardController,
ApiStandardEmptyResponse,
ApiStandardOkResponse,
} from '../swagger/decorators/swagger-response.decorator';
import { SmsPackage } from './entities/sms-package.entity';
@ApiTags('SMS Packages')
@ApiBearerAuth(SWAGGER_JWT_AUTH)
@ApiStandardController()
@Controller('sms-packages')
@UseGuards(RolesGuard, PermissionsGuard)
export class SmsPackagesController {
@@ -33,6 +40,7 @@ export class SmsPackagesController {
@Roles(UserRole.ADMIN)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@ApiStandardOkResponse(SmsPackage)
@Post()
create(@Body() dto: CreateSmsPackageDto) {
return this.smsPackagesService.create(dto);
@@ -41,6 +49,7 @@ export class SmsPackagesController {
@Public()
@AllowWithoutSubscription()
@ApiPublicEndpoint('List active SMS packages')
@ApiStandardOkResponse(SmsPackage, { isArray: true })
@Get()
findAll() {
return this.smsPackagesService.findAll(true);
@@ -49,6 +58,7 @@ export class SmsPackagesController {
@Public()
@AllowWithoutSubscription()
@ApiPublicEndpoint('Get SMS package by ID')
@ApiStandardOkResponse(SmsPackage)
@Get(':id')
findOne(@Param('id', ParseUUIDPipe) id: string) {
return this.smsPackagesService.findOne(id);
@@ -56,6 +66,7 @@ export class SmsPackagesController {
@Roles(UserRole.ADMIN)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@ApiStandardOkResponse(SmsPackage)
@Patch(':id')
update(
@Param('id', ParseUUIDPipe) id: string,
@@ -66,6 +77,7 @@ export class SmsPackagesController {
@Roles(UserRole.ADMIN)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@ApiStandardEmptyResponse()
@Delete(':id')
remove(@Param('id', ParseUUIDPipe) id: string) {
return this.smsPackagesService.remove(id);
@@ -25,9 +25,16 @@ import { UpdateSubscriptionPlanDto } from './dto/update-subscription-plan.dto';
import { SubscriptionPlansService } from './subscription-plans.service';
import { ApiPublicEndpoint } from '../swagger/decorators/swagger-auth.decorator';
import { SWAGGER_JWT_AUTH } from '../swagger/swagger.setup';
import {
ApiStandardController,
ApiStandardEmptyResponse,
ApiStandardOkResponse,
} from '../swagger/decorators/swagger-response.decorator';
import { SubscriptionPlan } from './entities/subscription-plan.entity';
@ApiTags('Subscription Plans')
@ApiBearerAuth(SWAGGER_JWT_AUTH)
@ApiStandardController()
@Controller('subscription-plans')
@UseGuards(RolesGuard, PermissionsGuard)
export class SubscriptionPlansController {
@@ -37,6 +44,7 @@ export class SubscriptionPlansController {
@Roles(UserRole.ADMIN)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@ApiStandardOkResponse(SubscriptionPlan)
@Post()
create(@Body() dto: CreateSubscriptionPlanDto) {
return this.subscriptionPlansService.create(dto);
@@ -45,6 +53,7 @@ export class SubscriptionPlansController {
@Public()
@AllowWithoutSubscription()
@ApiPublicEndpoint('List active subscription plans')
@ApiStandardOkResponse(SubscriptionPlan, { isArray: true })
@Get()
findAll() {
return this.subscriptionPlansService.findAll(true);
@@ -53,6 +62,7 @@ export class SubscriptionPlansController {
@Public()
@AllowWithoutSubscription()
@ApiPublicEndpoint('Get subscription plan by ID')
@ApiStandardOkResponse(SubscriptionPlan)
@Get(':id')
findOne(@Param('id', ParseUUIDPipe) id: string) {
return this.subscriptionPlansService.findOne(id);
@@ -60,6 +70,7 @@ export class SubscriptionPlansController {
@Roles(UserRole.ADMIN)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@ApiStandardOkResponse(SubscriptionPlan)
@Patch(':id')
update(
@Param('id', ParseUUIDPipe) id: string,
@@ -70,6 +81,7 @@ export class SubscriptionPlansController {
@Roles(UserRole.ADMIN)
@Permissions(PermissionCode.SUBSCRIPTIONS_WRITE)
@ApiStandardEmptyResponse()
@Delete(':id')
remove(@Param('id', ParseUUIDPipe) id: string) {
return this.subscriptionPlansService.remove(id);