// dto/create-user-permission.dto.ts
import { IsNumber, IsOptional, IsArray, ValidateNested } from 'class-validator';
import { Type } from 'class-transformer';

class ConditionDto {
  @IsOptional()
  condition_field: string;

  @IsOptional()
  condition_value: string;
}

export class CreateUserPermissionDto {
  @IsNumber()
  userId: number;

  @IsNumber()
  permissionId: number;

  @IsArray()
  @IsOptional()
  @ValidateNested({ each: true })
  @Type(() => ConditionDto)
  conditions?: { condition_field: string; condition_value: string }[];
}

export class UpdateUserPermissionDto {
  @IsNumber()
  @IsOptional()
  permissionId?: number;

  @IsArray()
  @IsOptional()
  @ValidateNested({ each: true })
  @Type(() => ConditionDto)
  conditions?: { condition_field: string; condition_value: string }[];
}