import sys
import datetime
import mysql.connector

# from datetime import datetime, timedelta
# d = datetime.today() - timedelta(days=days_to_subtract)

import default_setting

orderDate = sys.argv[1][0:11]
orderTime = sys.argv[2][0:9]
orderDest = sys.argv[3]

year, month, day = (int(x) for x in orderDate.split('-'))  
  
dayNo = datetime.datetime(year, month, day).weekday()
dayDt = datetime.datetime(year, month, day)

print(datetime.datetime(year, month, day).weekday(),'-',orderTime)

defaults = default_setting.defaultSettings()
cnx = mysql.connector.connect(user=defaults['dbuser'], password=defaults['dbpwd'],host=defaults['dbhost'],database=defaults['dbase'])
cursor = cnx.cursor(dictionary=True)

i = 0
while(dayNo >= 0):
	d = ((dayNo+1)*2)-1
	dataQuery = "SELECT id AS id, time_slot AS time_slot, working_days AS working_days FROM time_slot_master WHERE destination = '"+orderDest+"' AND time_slot<='"+str(orderTime)+"' AND substr(working_days,"+str(d)+",1)='1' ORDER BY destination, time_slot DESC LIMIT 1"
# print ("bdyQry-",dataQuery)
	try:
		cursor.execute(dataQuery)
		row = cursor.fetchone()
	except mysql.connector.Error as err:
		print("mysql Error: {}".format(err))
	if (row is None):
		orderTime = '23:59:59'
		dayDt = dayDt - datetime.timedelta(days=1)
		if (dayNo == 0):
			if (i > 0):
				break
			dayNo = 6
			i = 1
		else:
			dayNo = dayNo-1
	else:
		break
# timeslot not found - find earliest
if (row is None):
		dataQuery = "SELECT id AS id, time_slot AS time_slot, working_days AS working_days FROM time_slot_master WHERE destination = '"+orderDest+"' ORDER BY destination, time_slot LIMIT 1"
		try:
			cursor.execute(dataQuery)
			row = cursor.fetchone()
		except mysql.connector.Error as err:
			print("mysql Error: {}".format(err))

cursor.close()

dayTm = "0"+str(row['time_slot'])[-8:]
print("TIMESLOT:",str(dayDt)[0:10]+" "+dayTm,"-",row['working_days'],"-",row['working_days'][dayNo*2],"-",dayNo)
