Files
studio-admin-be/src/admins/dto.ts
T
chyoo e31a07f5d9
ci/woodpecker/push/woodpecker Pipeline was successful
add admin issue..
2026-07-13 17:14:19 +09:00

77 lines
1.3 KiB
TypeScript

import { Transform } from 'class-transformer';
import { IsArray, IsBoolean, IsEmail, IsEnum, IsOptional, IsString, IsUUID, MinLength } from 'class-validator';
import { AdminRole } from './admin-role';
export class ListAdminsQuery {
@IsOptional()
@IsString()
page?: string;
@IsOptional()
@IsString()
limit?: string;
@IsOptional()
@IsString()
keyword?: string;
@IsOptional()
@IsString()
role?: string;
@IsOptional()
@IsString()
state?: string;
}
export class CreateAdminDto {
@Transform(({ value }) => typeof value === 'string' ? value.trim().toLowerCase() : value)
@IsEmail()
email!: string;
@IsString()
name!: string;
@IsEnum(AdminRole)
role!: AdminRole;
@IsString()
@MinLength(8)
temporaryPassword!: string;
}
export class UpdateAdminStatusDto {
@IsBoolean()
isActive!: boolean;
}
export class UpdateAdminRoleDto {
@IsEnum(AdminRole)
role!: AdminRole;
}
export class ResetAdminPasswordDto {
@IsString()
@MinLength(8)
temporaryPassword!: string;
}
export class CreateAdminSshKeyDto {
@IsOptional()
@IsString()
label?: string;
@IsString()
publicKey!: string;
@IsOptional()
@IsString()
giteaUsername?: string;
}
export class UpdateAdminAppPermissionsDto {
@IsArray()
@IsUUID('4', { each: true })
appIds!: string[];
}