package com.airlock.iam.admin.infrastructure.mapper.analytics;

import com.airlock.iam.admin.domain.model.analytics.Analytics;
import com.airlock.iam.admin.domain.model.analytics.LicenseAnalytics;
import com.airlock.iam.admin.domain.model.analytics.StructuredLicenseAnalytics;
import com.airlock.iam.admin.domain.model.analytics.UsageAnalytics;
import com.airlock.iam.base.misc.date.Dates;
import java.time.Instant;
import java.util.Optional;
import org.mapstruct.Mapper;

@Mapper
public interface AnalyticsMapper {
   AnalyticsDocument map(Analytics var1);

   LicenseDocument map(LicenseAnalytics var1);

   StructuredLicenseDocument map(StructuredLicenseAnalytics var1);

   UsageDataDocument map(UsageAnalytics var1);

   static <T> T unwrapOptional(Optional<T> data) {
      return data.orElse(null);
   }

   static String map(Instant instant) {
      return Dates.toString(instant);
   }
}
