liuyun 24790e8985 feat: add Swagger API docs (/docs) with DTO schemas
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-10 21:39:37 +08:00

102 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsInt, IsNotEmpty, IsOptional, IsString } from 'class-validator';
export class CreateResourceDto {
@ApiProperty({ description: '类型:menu/button/api' })
@IsString()
@IsNotEmpty()
type!: string;
@ApiProperty({ description: '资源 code(租户内唯一,兼权限标识)' })
@IsString()
@IsNotEmpty()
code!: string;
@ApiProperty({ description: '名称' })
@IsString()
@IsNotEmpty()
name!: string;
@ApiPropertyOptional({ description: '父资源 code' })
@IsOptional()
@IsString()
parentCode?: string;
@ApiPropertyOptional({ description: '路由 path(menu)' })
@IsOptional()
@IsString()
path?: string;
@ApiPropertyOptional({ description: '前端组件(menu)' })
@IsOptional()
@IsString()
component?: string;
@ApiPropertyOptional({ description: 'HTTP method(api)' })
@IsOptional()
@IsString()
method?: string;
@ApiPropertyOptional({ description: '接口 path(api)' })
@IsOptional()
@IsString()
apiPath?: string;
@ApiPropertyOptional({ description: '图标' })
@IsOptional()
@IsString()
icon?: string;
@ApiPropertyOptional({ description: '排序', default: 0 })
@IsOptional()
@IsInt()
sort?: number;
}
export class UpdateResourceDto {
@ApiPropertyOptional({ description: '名称' })
@IsOptional()
@IsString()
name?: string;
@ApiPropertyOptional({ description: '父资源 code' })
@IsOptional()
@IsString()
parentCode?: string;
@ApiPropertyOptional({ description: '路由 path' })
@IsOptional()
@IsString()
path?: string;
@ApiPropertyOptional({ description: '前端组件' })
@IsOptional()
@IsString()
component?: string;
@ApiPropertyOptional({ description: 'HTTP method' })
@IsOptional()
@IsString()
method?: string;
@ApiPropertyOptional({ description: '接口 path' })
@IsOptional()
@IsString()
apiPath?: string;
@ApiPropertyOptional({ description: '图标' })
@IsOptional()
@IsString()
icon?: string;
@ApiPropertyOptional({ description: '排序' })
@IsOptional()
@IsInt()
sort?: number;
@ApiPropertyOptional({ description: '状态:enabled/disabled' })
@IsOptional()
@IsString()
status?: string;
}