from flask import Flask, render_template, request, jsonify
import requests

app = Flask(__name__, 
            template_folder='templates',
            static_folder='static',
            static_url_path='/static')  # Добавьте это

TELEGRAM_BOT_TOKEN = '7849025102:AAEaos6Kza1OtyQ8YoE_8uStDYn8-n9EkJ8'
TELEGRAM_CHAT_ID = '-1002560223975'

@app.route("/", methods=["GET"])
def web():
    return render_template('index.html')

# Форма 1: заявка на подключение
def send_tg_application(data):
    text = (
        f"📢 <b>Новая заявка на подключение</b>\n"
        f"Никнейм: <b>@{data.get('user_name')}</b>\n"
        f"Имя: <b>{data.get('name')}</b>\n"
        f"Телефон: <b>{data.get('phone')}</b>\n"
        f"Город: <b>{data.get('city')}</b>\n"
        f"Улица: <b>{data.get('street')}</b>\n"
        f"Дом: <b>{data.get('building')}</b>"
    )
    url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
    payload = {
        "chat_id": TELEGRAM_CHAT_ID,
        "text": text,
        "parse_mode": "HTML"
    }
    return requests.post(url, json=payload)

# Форма 2: консультация/вопрос
def send_tg_consultation(data):
    text = (
        f"❓ <b>Новая заявка на консультацию</b>\n"
        f"Никнейм: <b>@{data.get('user_name')}</b>\n"
        f"Имя: <b>{data.get('name')}</b>\n"
        f"Телефон: <b>{data.get('phone')}</b>\n"
        f"Вопрос: <b>{data.get('question')}</b>"
    )
    url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
    payload = {
        "chat_id": TELEGRAM_CHAT_ID,
        "text": text,
        "parse_mode": "HTML"
    }
    return requests.post(url, json=payload)


# Отправка уведомления пользователю
def send_notification(user_id, message):
    url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
    payload = {
        "chat_id": user_id,
        "text": message,
        "parse_mode": "HTML"
    }
    requests.post(url, json=payload)


@app.route("/send_application", methods=["POST"])
def send_application():
    data = request.json
    try:
        # Предполагаем, что фронтенд присылает user_id
        user_id = data.get("user_id")  
        response = send_tg_application(data)
        
        if response.status_code == 200:
            # Отправляем уведомление пользователю
            send_notification(user_id, "✅ Ваша заявка на подключение принята! Ожидайте, мы свяжемся с вами")
            return jsonify({"success": True})
        else:
            return jsonify({"success": False, "error": response.text}), 500
    except Exception as e:
        return jsonify({"success": False, "error": str(e)}), 500

@app.route("/send_consultation", methods=["POST"])
def send_consultation():
    data = request.json
    try:
        user_id = data.get("user_id") 
        response = send_tg_consultation(data)

        if response.status_code == 200:
            # Отправляем уведомление пользователю
            send_notification(user_id, "✅ Ваша заявка на консультацию принята! Ожидайте, мы свяжемся с вами")
            return jsonify({"success": True})
        else:
            return jsonify({"success": False, "error": response.text}), 500
    except Exception as e:
        return jsonify({"success": False, "error": str(e)}), 500

@app.route(f'/{TELEGRAM_BOT_TOKEN}', methods=['POST'])
def telegram_webhook():
    data = request.get_json()
    if 'message' in data and '/start' in data['message'].get('text', ''):
        chat_id = data['message']['chat']['id']
        keyboard = {
            'inline_keyboard': [[{
                'text': 'Оставить заявку',
                'web_app': {'url': 'https://app.mts-kzn.online/'}
            }]]
        }
        requests.post(
            f'https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage',
            json={
                'chat_id': chat_id,
                'text': 'Компания МТС приветствует вас. Нажмите кнопку ниже, чтобы оставить заявку на подключение:',
                'reply_markup': keyboard
            }
        )
    return jsonify({'status': 'ok'})


if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=5000)
