package com.rera.mss.payload

import com.fasterxml.jackson.annotation.JsonInclude

@JsonInclude(JsonInclude.Include.NON_NULL)
data class MeasurementDataDto(
        val instrumentEnergyAndIrradiance: List<EnergyAndIrradianceDataDto>?,
        val sumEnergy: SumEnergyDataDto?,
        val performanceRatio: PerformanceRatioDataDto?
)

data class EnergyAndIrradianceDataDto(
        val instrumentId: Long,
        val minT: Long,
        val maxT: Long,
        val irradiance: List<DataPointDto>,
        val monitoredAreaEnergy: List<MonitoredAreaEnergyDto>?
)

data class MonitoredAreaEnergyDto(
        val monitoredAreaId: Long,
        val graphData: List<DataPointDto>
)

data class SumEnergyDataDto(
        val minT: Long,
        val maxT: Long,
        val realEnergy: InverterEnergyDto?,
        val theoreticalEnergy: List<InstrumentEnergyDto>
)

data class InstrumentEnergyDto(
        val instrumentId: Long,
        val graphData: List<DataPointDto>
)

data class InverterEnergyDto(
        val inverterId: Long,
        val graphData: List<DataPointDto>
)

data class PerformanceRatioDataDto(
        val minT: Long,
        val maxT: Long,
        val inverterId: Long,
        val instrumentIds: Set<Long>,
        val monitoredAreas: Set<MeasurementMonitoredAreaDto>,
        val graphData: List<DataPointDto>
)

data class DataPointDto(
        val time: Long,
        val value: Float
)

data class MssMeasurementDto(
        val event: String,
        val data: String,
        val published_at: String,
        val coreid: String
)