hospital-log/backend/api/src/modules/auth/dto/auth.dto.ts

36 lines
844 B
TypeScript

import { IsString, IsNotEmpty, Length, IsEnum } from 'class-validator';
import { Expose, Transform } from 'class-transformer';
export enum UserRole {
Admin = 'admin',
User = 'user',
}
export class AuthDto {
@IsNotEmpty({ message: 'Username wajib diisi' })
@IsString({ message: 'Username harus berupa string' })
@Length(1, 100, { message: 'Username maksimal 100 karakter' })
username: string;
@IsNotEmpty({ message: 'Password wajib diisi' })
@IsString({ message: 'Password harus berupa string' })
@Length(6, undefined, { message: 'Password minimal 6 karakter' })
password: string;
}
export class AuthDtoResponse {
@Expose()
@Transform(({ value }: { value: bigint }) => value.toString())
id: bigint;
@Expose()
username: string;
@Expose()
@IsEnum(UserRole)
role: UserRole;
@Expose()
token: string;
}