from rest_framework import serializers from django.db import models from .models import WeatherStats class WeatherStatSerializer(serializers.ModelSerializer): created_at = serializers.DateTimeField(read_only=True) class Meta: model = WeatherStats fields = ('humidity_air', 'humidity_ground', 'temperature', 'light', 'created_at') class OpenWeatherAPISerializer(serializers.Serializer): date = serializers.DateField() temp_night = serializers.FloatField() temp_day = serializers.FloatField() humidity = serializers.FloatField() wind_speed = serializers.FloatField() precip_probability = serializers.FloatField() class WeatherPeriods(models.TextChoices): min_10 = 'min_10', '10 Minutes' min_30 = 'min_30', '30 Minutes' hour = 'hour', '1 Hour' hour_6 = 'hour_6', '6 Hours' hour_12 = 'hour_12', '12 Hours' hour_24 = 'hour_24', '24 Hours' @classmethod def only_values(cls): return [value for value, label in cls.choices] class WeatherByPeriodRequestSerializer(serializers.Serializer): period = serializers.ChoiceField(WeatherPeriods.choices, required=True) class WeatherByPeriodSerializer(serializers.Serializer): date = serializers.DateTimeField(required=True) humidity_air = serializers.FloatField(required=True) humidity_ground = serializers.FloatField(required=True) temperature = serializers.FloatField(required=True) light = serializers.FloatField(required=True)