import requests
import telebot
import json

# Inisialisasi bot dengan token
bot = telebot.TeleBot('6030593934:AAGgk8_ug8sEPIYagAzrlGx-wrI5aCvT61o')
base_url = 'https://api.studyfashionvr.com/'
# base_url = 'http://192.168.1.102:5000/'

# Menangani perintah '/start'
@bot.message_handler(commands=['start'])
@bot.message_handler(func=lambda message: True)
def exchange_command(message):
    keyboard = telebot.types.InlineKeyboardMarkup()
    keyboard.row(
        telebot.types.InlineKeyboardButton('Buat Voucher', callback_data='create-voucher')
    )
    keyboard.row(
        telebot.types.InlineKeyboardButton('Lihat Voucher', callback_data='get-voucher')
    )
    bot.reply_to(message, 'Selamat datang di Study Fashion Bot')
    bot.send_message(message.chat.id, 'Silakan pilih menu di bawah ini', reply_markup=keyboard)

@bot.callback_query_handler(func=lambda call: True)
def iq_callback(query):
    data = query.data
    # print(query)
    if data == 'create-voucher':
       bot.answer_callback_query(query.id)
       sent_msg = bot.send_message(query.message.chat.id, "Silakan masukan kode voucher yang akan dibuat")
       bot.register_next_step_handler(sent_msg, create_voucher_handler)

    if data == 'get-voucher':
       bot.answer_callback_query(query.id)
       sent_msg = bot.send_message(query.message.chat.id, "Silakan masukan kode voucher yang ingin dilihat")
       bot.register_next_step_handler(sent_msg, get_voucher_handler)

# Menangani pesan teks
# @bot.message_handler(func=lambda message: True)
def create_voucher_handler(message):
    url = base_url+"voucher"
    params = {"code": message.text}
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
    response = requests.post(url, json=params, headers=headers)
    if response.status_code!=200:
        bot.reply_to(message, 'Permintaan pembuatan voucher gagal' + ' ('+str(response.status_code)+')')
        return
    response = json.loads(response.content)
    status = response['status']
    data = response['data']
    if status == "success":
        bot.reply_to(message, 'Permintaan pembuatan voucher berhasil: ' + data["code"])
    elif status == "failed":
        bot.reply_to(message, 'Permintaan pembuatan voucher gagal: ' + data)

def get_voucher_handler(message):
    code = message.text
    url = base_url+"voucher?code="+code
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
    response = requests.get(url, headers=headers)
    if response.status_code!=200:
        bot.reply_to(message, 'Permintaan pembuatan voucher gagal' + ' ('+str(response.status_code)+')')
        return
    response = json.loads(response.content)
    status = response['status']
    data = response['data']
    if status == "success":
        code = data['code']
        start_period = data['start_period']
        end_period = data['end_period']
        status_voc = data['status']
        user = data['user']
        info_voucher = "Kode Voucher: {code}\nWaktu Mulai: {start_period}\nWaktu Selesai: {end_period}\nStatus: {status}\nDigunakan oleh: {user}".format(code=code, start_period=start_period, end_period=end_period, status=status_voc, user=user)
        bot.reply_to(message, info_voucher)
    elif status == "failed":
        bot.reply_to(message, 'Voucher ini belum ada')

# Menjalankan bot
bot.polling()