package org.github.tess1o.geopulse.weather;

import io.quarkus.runtime.annotations.RegisterForReflection;
import org.github.tess1o.geopulse.weather.client.OpenMeteoRestClient;
import org.github.tess1o.geopulse.weather.client.PirateWeatherRestClient;
import org.github.tess1o.geopulse.weather.client.WeatherProviderErrorKind;
import org.github.tess1o.geopulse.weather.client.WeatherProviderException;
import org.github.tess1o.geopulse.weather.dto.*;
import org.github.tess1o.geopulse.weather.model.WeatherSampleEntity;
import org.github.tess1o.geopulse.weather.model.WeatherSampleTargetEntity;
import org.github.tess1o.geopulse.weather.model.WeatherTargetSource;
import org.github.tess1o.geopulse.weather.model.WeatherTargetStatus;

@RegisterForReflection(targets = {
        WeatherSampleEntity.class,
        WeatherSampleTargetEntity.class,
        WeatherTargetSource.class,
        WeatherTargetStatus.class,
        WeatherProviderException.class,
        WeatherProviderErrorKind.class,
        WeatherSampleDTO.class,
        WeatherSamplesResponse.class,
        WeatherStatusResponse.class,
        WeatherIntegrationStatusResponse.class,
        WeatherWorkAcceptedResponse.class,
        WeatherProcessingStatus.class,
        WeatherReconciliationStatus.class,
        WeatherRunSummary.class,
        WeatherTargetQueueResponse.class,
        WeatherBackfillRequest.class,
        WeatherTestResponse.class,
        WeatherEndpointTestResponse.class,
        WeatherProviderSample.class,
        OpenMeteoResponse.class,
        OpenMeteoResponse.OpenMeteoCurrent.class,
        OpenMeteoResponse.OpenMeteoHourly.class,
        PirateWeatherResponse.class,
        PirateWeatherResponse.PirateWeatherDataBlock.class,
        PirateWeatherResponse.PirateWeatherDataPoint.class,
        OpenMeteoRestClient.class,
        PirateWeatherRestClient.class
})
public class WeatherNativeConfig {
}
