# -*- coding: utf-8 -*-
import sys
import json
import requests
import dateparser
from datetime import datetime

apiUrl = "https://reporter.gc-track.com/api/app/"
app_id = 1
api_user = 13510
api_token = "fc323b1d03569f3be9e598df178017808b8bc9fb"
api_password = "XG@O1MKysSTBqxT"

def getMonthlyReport(facilityId):
    body = {"facility": facilityId}
    r = requests.post(apiUrl+"reports/get_monthly_report.php", body)
    r.encoding = "utf-8"
    return json.loads(r.text)


def find_report(facilityId,month_year):
    body = {"user": api_user,"app":app_id,"api_token":api_token,"facility_id": facilityId,"month_year":month_year}
    r = requests.post(apiUrl+"reports/get_month_report.php", body)
    r.encoding = "utf-8"
    return json.loads(r.text)    

def getMonthlyReportSingle(facilityId,month):
    body = {"facility": facilityId, "month": month} 
    r = requests.post(apiUrl+"reports/month_report_single.php", body)
    r.encoding = "utf-8"
    return json.loads(r.text)

def getFacilityInfo(facilityId):
    body = {"user": api_user,"app":app_id,"api_token":api_token,"facility_id": facilityId}
    r = requests.post(apiUrl+"facilities/list_facility.php",body)
    r.encoding = "utf-8"
    return json.loads(r.text)["facility_list"][0]

def getProdFacilities():
    r = requests.post(apiUrl+"facilities/list_prod_facilities.php")
    r.encoding = "utf-8"
    return json.loads(r.text)

def getRevFacilities():
    r = requests.post(apiUrl+"facilities/list_rev_facilities.php")
    r.encoding = "utf-8"
    return json.loads(r.text)

def generateQRCode(message):
    body = {"qr_content": str(message)}
    r = requests.post(apiUrl+"tools/qr.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return str(response["data"])

def getPressureGraphData(componentId,month):
    body = {"component": componentId, "month": month}
    r = requests.post(apiUrl+"activations/get_valuerecord_month_single.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response

def getJockeyGraphData(redboxId,selectDate):
    date_obj = datetime.strptime(selectDate, "%Y-%m")
    formatted_date = date_obj.strftime("%Y-%m")
    body = {"redbox_id": redboxId,"user": api_user,"app":app_id,"api_token":api_token,"selected_date":formatted_date}
    r = requests.post(apiUrl+"activations/jockey_activations.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response


def getSensorList(facility):
    body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token}
    r = requests.post(apiUrl+"components/list_sensor.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response

# def getValueRecord(component):
#     body = {"component": component,"user": api_user,"app":app_id,"api_token":api_token}
#     r = requests.post(apiUrl+"app/get_valuerecord.php",body)
#     r.encoding = "utf-8"
#     response = json.loads(r.text)
#     return response

# def getValueRecord(component,last7,last30):
#     body = {"component": component,"user": api_user,"app":app_id,"api_token":api_token,"last_7":last7,"last_30":last30}
#     r = requests.post(apiUrl+"app/get_valuerecord.php",body)
#     r.encoding = "utf-8"
#     response = json.loads(r.text)
#     return response


# def getDetectorInfo(facility):
#     body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token}
#     r = requests.post(apiUrl+"app/get_detector.php",body)
#     r.encoding = "utf-8"
#     response = json.loads(r.text)
#     return response

# def listCompressor(facility):
#     body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token}
#     r = requests.post(apiUrl+"app/list_compressor.php",body)
#     r.encoding = "utf-8"
#     response = json.loads(r.text)
#     return response

# def listDetectorMessage(facility):
#     body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token}
#     r = requests.post(apiUrl+"app/list_detectormessage.php",body)
#     r.encoding = "utf-8"
#     response = json.loads(r.text)
#     return response

# def getCountRecord():
#     body = {"user": api_user,"app":app_id,"api_token":api_token}
#     r = requests.post(apiUrl+"app/list_detectormessage.php",body)
#     r.encoding = "utf-8"
#     response = json.loads(r.text)
#     return 
    

def getMonthActivations(facilityId,month):
    body = {"facility": facilityId, "month": month,"user": api_user,"app":app_id,"api_token":api_token} 
    r = requests.post(apiUrl+"activations/get_month_pump_activations.php", body)
    r.encoding = "utf-8"
    return json.loads(r.text)   

def listComponent(facility):
    body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token}
    r = requests.post(apiUrl+"components/list_component.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response

def listDetectorMessageByDate(facility,startDate,endDate):
    body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token,"start_date":startDate,"end_date":endDate}
    r = requests.post(apiUrl+"messages/list_detectormessage.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response

def listRedboxMessage(facility):
    body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token}
    r = requests.post(apiUrl+"messages/list_redboxmessage.php ",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response

def listAlertHistoryByDate(facility,startDate,endDate):
    body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token,"start_date":startDate,"end_date":endDate,"is_monthly_report":1}
    r = requests.post(apiUrl+"messages/index.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response

def listAlertHistory(facility):
    body = {"facility": facility,"user": api_user,"app":app_id,"api_token":api_token,"is_monthly_report":1}
    r = requests.post(apiUrl+"messages/index.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response

def getNewPumpInfo(redbox_id,start_date,end_date):
    body = {"user": api_user,"app":app_id,"api_token":api_token,"redbox_id": redbox_id,"start_date": start_date,"end_date":end_date}
    r = requests.post(apiUrl+"activations/get_pump_staterecords.php",body)
    r.encoding = "utf-8"
    response = json.loads(r.text)
    return response