import datetime
import socket
import traceback

import ntplib
import requests
from dateutil.tz import gettz
from django.utils import timezone

from futplus.settings import TIME_ZONE


def allowed_discharge_time():
    from utils.realy_public_methods import get_db_time
    try:
        # ntp_client = ntplib.NTPClient()
        # ntp_response = ntp_client.request('uk.pool.ntp.org', version=3)
        # current_time = datetime.datetime.fromtimestamp(ntp_response.tx_time, datetime.timezone.utc).astimezone(
        #     gettz('Asia/Tehran'))
        current_time = get_db_time(timezone_=TIME_ZONE)
    except (ntplib.NTPException, socket.gaierror):
        print('error on get discharge time ', traceback.format_exc())
        current_time = datetime.datetime.fromisoformat(
            requests.get('http://142.132.177.244:8000/accounts/get-local-timezone/').json().get('local_timezone')
        )
    return 3 <= current_time.hour < 15


DISCHARGE_MODE2_INTERVAL_HOURS = 18

DISCHARGE_MODE3_INTERVAL_HOURS = 18
MULES_DISCHARGE_MODE3_INTERVAL_HOURS = 72

