package cn.cecep.talroad.data.analyse.task.entity;

import cn.cecep.talroad.domain.BasDeviceSite;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 分表计电设备点位
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DeviceSitVo {

    private String id;

    private String deviceId;

    public static List<DeviceSitVo> toDeviceSitVo(List<BasDeviceSite> basDeviceSites){
        List<DeviceSitVo> deviceSitVos = basDeviceSites.stream().map((basDeviceSite) -> {
            DeviceSitVo deviceSitVo = new DeviceSitVo();
            BeanUtils.copyProperties(basDeviceSite, deviceSitVo);
            return deviceSitVo;
        }).collect(Collectors.toList());
        return deviceSitVos;
    }

    public static List<String> toJsonString(List<DeviceSitVo> deviceSitVos){
        return deviceSitVos.stream().map(DeviceSitVo::toJsonString).collect(Collectors.toList());
    }

    public static String toJsonString(DeviceSitVo deviceSitVo){
        return JSONObject.toJSONString(deviceSitVo);
    }

    public static List<DeviceSitVo> parse(List<String> jsonData){
        return jsonData.stream().map(DeviceSitVo::parse).collect(Collectors.toList());
    }

    public static DeviceSitVo parse(String jsonData){
        return JSONObject.parseObject(jsonData,DeviceSitVo.class);
    }

}
