import { ApiProperty } from '@nestjs/swagger';
import { IsIn, IsNotEmpty, IsOptional, IsUUID } from 'class-validator';

export class AsignarEmpresaDto {
  @ApiProperty({ example: 'cd88ac6a-2b0e-41bc-afd9-24b594cb8daf', description: 'ID del usuario' })
  @IsNotEmpty({ message: 'usuario_id es requerido' })
  @IsUUID('all', { message: 'usuario_id debe ser un UUID válido' })
  usuario_id: string;

  @ApiProperty({ example: 'cd88ac6a-2b0e-41bc-afd9-24b594cb8daf', description: 'ID de la empresa' })
  @IsNotEmpty({ message: 'empresa_id es requerido' })
  @IsUUID('all', { message: 'empresa_id debe ser un UUID válido' })
  empresa_id: string;

  @ApiProperty({
    example: 'operador',
    description: 'Rol del usuario en la empresa',
    enum: ['admin', 'operador', 'visor'],
  })
  @IsOptional()
  @IsIn(['admin', 'operador', 'visor'], { message: 'rol debe ser admin, operador o visor' })
  rol?: string;
}

export class RevocarEmpresaDto {
  @ApiProperty({ example: 'cd88ac6a-2b0e-41bc-afd9-24b594cb8daf', description: 'ID del usuario' })
  @IsNotEmpty({ message: 'usuario_id es requerido' })
  @IsUUID('all', { message: 'usuario_id debe ser un UUID válido' })
  usuario_id: string;

  @ApiProperty({ example: 'cd88ac6a-2b0e-41bc-afd9-24b594cb8daf', description: 'ID de la empresa' })
  @IsNotEmpty({ message: 'empresa_id es requerido' })
  @IsUUID('all', { message: 'empresa_id debe ser un UUID válido' })
  empresa_id: string;
}
