165 lines
3.8 KiB
TypeScript
165 lines
3.8 KiB
TypeScript
/**
|
||
* 管理员相关响应 DTO
|
||
*
|
||
* 功能描述:
|
||
* - 为 Swagger 提供明确的响应结构定义
|
||
* - 与 AdminService 返回结构保持一致
|
||
*
|
||
* @author jianuo
|
||
* @version 1.0.0
|
||
* @since 2025-12-19
|
||
*/
|
||
|
||
import { ApiProperty } from '@nestjs/swagger';
|
||
|
||
class AdminInfoDto {
|
||
@ApiProperty({ example: '1' })
|
||
id: string;
|
||
|
||
@ApiProperty({ example: 'admin' })
|
||
username: string;
|
||
|
||
@ApiProperty({ example: '管理员' })
|
||
nickname: string;
|
||
|
||
@ApiProperty({ example: 9 })
|
||
role: number;
|
||
}
|
||
|
||
class AdminLoginDataDto {
|
||
@ApiProperty({ type: AdminInfoDto })
|
||
admin: AdminInfoDto;
|
||
|
||
@ApiProperty({ description: '管理员访问Token(用于Authorization Bearer)' })
|
||
access_token: string;
|
||
|
||
@ApiProperty({ description: '过期时间戳(毫秒)', example: 1766102400000 })
|
||
expires_at: number;
|
||
}
|
||
|
||
export class AdminLoginResponseDto {
|
||
@ApiProperty({ example: true })
|
||
success: boolean;
|
||
|
||
@ApiProperty({ type: AdminLoginDataDto, required: false })
|
||
data?: AdminLoginDataDto;
|
||
|
||
@ApiProperty({ example: '管理员登录成功' })
|
||
message: string;
|
||
|
||
@ApiProperty({ required: false, example: 'ADMIN_LOGIN_FAILED' })
|
||
error_code?: string;
|
||
}
|
||
|
||
class AdminUserDto {
|
||
@ApiProperty({ example: '1' })
|
||
id: string;
|
||
|
||
@ApiProperty({ example: 'user1' })
|
||
username: string;
|
||
|
||
@ApiProperty({ example: '小明' })
|
||
nickname: string;
|
||
|
||
@ApiProperty({ required: false, example: 'user1@example.com', nullable: true })
|
||
email?: string;
|
||
|
||
@ApiProperty({ example: false })
|
||
email_verified: boolean;
|
||
|
||
@ApiProperty({ required: false, example: '+8613800138000', nullable: true })
|
||
phone?: string;
|
||
|
||
@ApiProperty({ required: false, example: 'https://example.com/avatar.png', nullable: true })
|
||
avatar_url?: string;
|
||
|
||
@ApiProperty({ example: 1 })
|
||
role: number;
|
||
|
||
@ApiProperty({ example: '2025-12-19T00:00:00.000Z' })
|
||
created_at: Date;
|
||
|
||
@ApiProperty({ example: '2025-12-19T00:00:00.000Z' })
|
||
updated_at: Date;
|
||
}
|
||
|
||
class AdminUsersDataDto {
|
||
@ApiProperty({ type: [AdminUserDto] })
|
||
users: AdminUserDto[];
|
||
|
||
@ApiProperty({ example: 100 })
|
||
limit: number;
|
||
|
||
@ApiProperty({ example: 0 })
|
||
offset: number;
|
||
}
|
||
|
||
export class AdminUsersResponseDto {
|
||
@ApiProperty({ example: true })
|
||
success: boolean;
|
||
|
||
@ApiProperty({ type: AdminUsersDataDto, required: false })
|
||
data?: AdminUsersDataDto;
|
||
|
||
@ApiProperty({ example: '用户列表获取成功' })
|
||
message: string;
|
||
|
||
@ApiProperty({ required: false, example: 'ADMIN_USERS_FAILED' })
|
||
error_code?: string;
|
||
}
|
||
|
||
class AdminUserDataDto {
|
||
@ApiProperty({ type: AdminUserDto })
|
||
user: AdminUserDto;
|
||
}
|
||
|
||
export class AdminUserResponseDto {
|
||
@ApiProperty({ example: true })
|
||
success: boolean;
|
||
|
||
@ApiProperty({ type: AdminUserDataDto, required: false })
|
||
data?: AdminUserDataDto;
|
||
|
||
@ApiProperty({ example: '用户信息获取成功' })
|
||
message: string;
|
||
}
|
||
|
||
export class AdminCommonResponseDto {
|
||
@ApiProperty({ example: true })
|
||
success: boolean;
|
||
|
||
@ApiProperty({ required: false })
|
||
data?: any;
|
||
|
||
@ApiProperty({ example: '密码重置成功' })
|
||
message: string;
|
||
|
||
@ApiProperty({ required: false, example: 'ADMIN_OPERATION_FAILED' })
|
||
error_code?: string;
|
||
}
|
||
|
||
class AdminRuntimeLogsDataDto {
|
||
@ApiProperty({ example: 'dev.log' })
|
||
file: string;
|
||
|
||
@ApiProperty({ description: '日志文件最后更新时间(ISO)', example: '2025-12-19T19:10:15.000Z' })
|
||
updated_at: string;
|
||
|
||
@ApiProperty({ type: [String], description: '日志行(按时间顺序,越靠后越新)' })
|
||
lines: string[];
|
||
}
|
||
|
||
export class AdminRuntimeLogsResponseDto {
|
||
@ApiProperty({ example: true })
|
||
success: boolean;
|
||
|
||
@ApiProperty({ type: AdminRuntimeLogsDataDto, required: false })
|
||
data?: AdminRuntimeLogsDataDto;
|
||
|
||
@ApiProperty({ example: '运行日志获取成功' })
|
||
message: string;
|
||
|
||
@ApiProperty({ required: false, example: 'ADMIN_OPERATION_FAILED' })
|
||
error_code?: string;
|
||
}
|