﻿import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
import {
  IsEnum,
  IsNotEmpty,
  IsObject,
  IsOptional,
  IsString,
  MinLength,
} from "class-validator";
import { UserRole } from "../entities/usuario.entity";

export class CreateUserDto {
  @ApiProperty()
  @IsString()
  @IsNotEmpty()
  username: string;

  @ApiProperty()
  @IsString()
  @IsNotEmpty()
  nombre: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  email?: string;

  @ApiProperty({ minLength: 4 })
  @IsString()
  @MinLength(4)
  password: string;

  @ApiProperty({ enum: UserRole })
  @IsEnum(UserRole)
  rol: UserRole;

  @ApiPropertyOptional({
    description: "Mapa de permisos por modulo: none|read|write",
  })
  @IsOptional()
  @IsObject()
  permisos?: Record<string, "none" | "read" | "write">;
}
