package com.red.circle.other.app.inner.convertor.user;

import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.infra.database.rds.entity.user.device.DeviceRegisterQuantity;
import com.red.circle.other.infra.database.rds.entity.user.user.ArchiveDevice;
import com.red.circle.other.infra.database.rds.entity.user.user.LatestMobileDevice;
import com.red.circle.other.inner.model.dto.user.UserLatestMobileDeviceHistoryDTO;
import com.red.circle.other.inner.model.dto.user.device.ArchiveDeviceDTO;
import com.red.circle.other.inner.model.dto.user.device.DeviceRegisterQuantityDTO;
import com.red.circle.other.inner.model.dto.user.device.LatestMobileDeviceDTO;
import java.util.List;
import java.util.Map;
import org.mapstruct.Mapper;

/**
 * @author pengliang on 2023/5/25
 */
@Mapper(componentModel = ConvertorModel.SPRING)
public interface RegisterDeviceInnerConvertor {

  LatestMobileDevice toLatestMobileDevice(LatestMobileDeviceDTO latestMobileDeviceDTO);

  LatestMobileDeviceDTO toLatestMobileDeviceDTO(LatestMobileDevice latestMobileDevice);

  UserLatestMobileDeviceHistoryDTO toPageLatestMobileDeviceHistoryDTO(
      LatestMobileDevice latestMobileDevice);

  List<UserLatestMobileDeviceHistoryDTO> toListUserLatestMobileDeviceHistory(
      List<LatestMobileDevice> latestMobileDevice);

  Map<String, DeviceRegisterQuantityDTO> toMapDeviceRegisterQuantityDTO(
      Map<String, DeviceRegisterQuantity> map);

  ArchiveDeviceDTO toArchiveDeviceDTO(ArchiveDevice archiveDevice);

}
