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; }