You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.6 KiB
37 lines
1.6 KiB
from rest_framework import serializers
|
|
|
|
from apps.account.models import LocationHistory
|
|
|
|
|
|
class LocationHistorySerializer(serializers.ModelSerializer):
|
|
user = serializers.HiddenField(default=serializers.CurrentUserDefault())
|
|
class Meta:
|
|
model = LocationHistory
|
|
exclude = ('at_time',)
|
|
|
|
class ReverseGeolocationSerializer(serializers.Serializer):
|
|
"""Serializer for reverse geolocation request query parameters"""
|
|
lat = serializers.FloatField(
|
|
required=True,
|
|
min_value=-90.0,
|
|
max_value=90.0,
|
|
help_text="Latitude coordinate (-90 to 90)"
|
|
)
|
|
lon = serializers.FloatField(
|
|
required=True,
|
|
min_value=-180.0,
|
|
max_value=180.0,
|
|
help_text="Longitude coordinate (-180 to 180)"
|
|
)
|
|
|
|
|
|
class ReverseGeolocationResponseSerializer(serializers.Serializer):
|
|
"""Serializer for reverse geolocation response"""
|
|
latitude = serializers.FloatField(read_only=True)
|
|
longitude = serializers.FloatField(read_only=True)
|
|
city = serializers.CharField(max_length=100, allow_null=True, read_only=True)
|
|
country = serializers.CharField(max_length=100, allow_null=True, read_only=True)
|
|
country_code = serializers.CharField(max_length=10, allow_null=True, read_only=True)
|
|
accuracy_radius = serializers.IntegerField(allow_null=True, read_only=True, required=False)
|
|
time_zone = serializers.CharField(max_length=100, allow_null=True, allow_blank=True, read_only=True, required=False)
|
|
postal_code = serializers.CharField(max_length=20, allow_null=True, allow_blank=True, read_only=True, required=False)
|