from app.api import api
from app.models import UserGeolocation
from app.util import datetime_util
from app.util.util import get_or_none


class UserGeolocationAccessor:
    @classmethod
    def update_user_geolocation(cls, applicant_id, applicant_type, field_id, id_type, service, latitude, longitude):
        time_now = datetime_util.get_now_ist_string()

        UserGeolocation.objects.update_or_create(applicant_id=applicant_id, defaults={
            "applicant_type": applicant_type,
            "field_id": field_id,
            "id_type": id_type,
            "service": service,
            "latitude": latitude,
            "longitude": longitude,
            "created_at": time_now,
            "updated_at": time_now
        })

        return api.SUCCESS

    @classmethod
    def get_lat_long(cls, application_id):
        return get_or_none(UserGeolocation, field_id=application_id, id_type='application_id')
