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

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

import fr.xebia.extras.selma.IgnoreMissing;
import fr.xebia.extras.selma.Mapper;
import io.delphiplatform.api.v3.model.mapper.JsonNullableMappings;
import io.delphiplatform.api.v3.model.spotify.SpotifyDeviceType;
import io.delphiplatform.api.v3.model.spotify.SpotifyEngagement;
import io.delphiplatform.api.v3.model.spotify.SpotifyOperatingSystem;
import io.delphiplatform.api.v3.model.spotify.SpotifySaves;
import io.delphiplatform.api.v3.model.spotify.SpotifySource;

@Mapper(withIgnoreMissing = IgnoreMissing.ALL, withCustom = JsonNullableMappings.class)
public interface SpotifyStreamsInfoMapper {

    SpotifySource toDto(Spotify.SpotifySource source);

    SpotifyDeviceType toDto(Spotify.SpotifyDeviceType deviceType);

    SpotifyOperatingSystem toDto(Spotify.SpotifyOperatingSystem operatingSystem);

    SpotifyEngagement toDto(Spotify.SpotifyEngagement engagement);

    SpotifySaves toDto(Spotify.SpotifySaves saves);

}
