package io.delphiplatform.api.v3.model.mapper.streamsinfo;

import com.sonymusic.delphi.etl.apps.proto.Amazon;

import org.openapitools.jackson.nullable.JsonNullable;

import fr.xebia.extras.selma.Selma;
import io.delphiplatform.api.v3.model.amazon.AmazonDeviceType;
import io.delphiplatform.api.v3.model.amazon.AmazonEngagement;
import io.delphiplatform.api.v3.model.amazon.AmazonOperatingSystem;
import io.delphiplatform.api.v3.model.amazon.AmazonReferralSourceType;
import io.delphiplatform.api.v3.model.amazon.AmazonSelectionSourceType;
import io.delphiplatform.api.v3.model.amazon.AmazonSubscriptionType;

public class AmazonMappings {

    private final AmazonStreamsInfoMapper infoMapper = Selma.builder(AmazonStreamsInfoMapper.class).build();

    public JsonNullable<AmazonDeviceType> toDto(Amazon.AmazonAggregate.DeviceType o) {
        return JsonNullable.of(infoMapper.toDto(o));
    }

    public JsonNullable<AmazonEngagement> toDto(Amazon.AmazonAggregate.Engagement o) {
        return JsonNullable.of(infoMapper.toDto(o));
    }

    public JsonNullable<AmazonOperatingSystem> toDto(Amazon.AmazonAggregate.OperatingSystem o) {
        return JsonNullable.of(infoMapper.toDto(o));
    }

    public JsonNullable<AmazonReferralSourceType> toDto(Amazon.AmazonAggregate.ReferralSourceType o) {
        return JsonNullable.of(infoMapper.toDto(o));
    }

    public JsonNullable<AmazonSelectionSourceType> toDto(Amazon.AmazonAggregate.SelectionSourceType o) {
        return JsonNullable.of(infoMapper.toDto(o));
    }

    public JsonNullable<AmazonSubscriptionType> toDto(Amazon.AmazonAggregate.SubscriptionType o) {
        return JsonNullable.of(infoMapper.toDto(o));
    }


}
