import {
    IsArray,
    IsBoolean,
    IsEmail,
    IsNotEmpty,
    IsOptional,
    IsString,
    IsUUID,
    MaxLength,
    MinLength,
  } from 'class-validator';

  export class CreateUserDto {
    @IsEmail()
    email!: string;

    @IsString()
    @MinLength(8)
    password!: string;

    @IsString()
    @IsNotEmpty()
    @MaxLength(200)
    fullName!: string;

    @IsOptional()
    @IsString()
    @MaxLength(100)
    username?: string;

    @IsOptional()
    @IsString()
    @MaxLength(50)
    phone?: string;

    @IsOptional()
    @IsUUID()
    officeId?: string;

    @IsOptional()
    @IsArray()
    @IsUUID(undefined, { each: true })
    roleIds?: string[];

    @IsOptional()
    @IsBoolean()
    isBypass?: boolean;
  }

  export class UpdateUserDto {
    @IsOptional()
    @IsString()
    @MaxLength(200)
    fullName?: string;

    @IsOptional()
    @IsString()
    @MaxLength(50)
    phone?: string;

    @IsOptional()
    @IsBoolean()
    active?: boolean;

    @IsOptional()
    @IsUUID()
    officeId?: string;

    @IsOptional()
    @IsArray()
    @IsUUID(undefined, { each: true })
    roleIds?: string[];
  }
  