package com.airlock.iam.authentication.infrastructure.mapper;

import com.airlock.iam.authentication.infrastructure.transfer.response.FidoRegistrationAuthenticationChallengeData;
import com.airlock.iam.flow.shared.domain.model.fido.FidoPublicKeyCredentialCreationOptionData;
import com.airlock.iam.flow.shared.infrastructure.mapper.PublicKeyCredentialCreationOptionsMapper;
import ma.glasnost.orika.CustomConverter;
import ma.glasnost.orika.MappingContext;
import ma.glasnost.orika.metadata.Type;

public final class FidoRegistrationChallengeConverter
   extends CustomConverter<FidoPublicKeyCredentialCreationOptionData, FidoRegistrationAuthenticationChallengeData> {
   public FidoRegistrationAuthenticationChallengeData convert(
      FidoPublicKeyCredentialCreationOptionData source,
      Type<? extends FidoRegistrationAuthenticationChallengeData> destinationType,
      MappingContext mappingContext
   ) {
      return FidoRegistrationAuthenticationChallengeData.builder()
         .publicKeyCredentialCreationOptions(PublicKeyCredentialCreationOptionsMapper.mapPublicKeyCreationOptions(source.options()))
         .build();
   }
}
