Files
AutoMarket/backend/bot.py

77 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import telebot
import os
import random
from dotenv import load_dotenv
from db import get_db_connection, release_db_connection
load_dotenv()
TOKEN = os.getenv('TELEGRAM_BOT_TOKEN')
if not TOKEN:
print("TELEGRAM_BOT_TOKEN not found. Bot will not start.")
exit()
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
help_text = """
🚀 <b>AutoMarket: Директор магазина</b>
Я ваш мобильный помощник по управлению маркетплейсами.
<b>Команды:</b>
📊 /stats — Сводка продаж за сегодня
📉 /oos — Товары, которые скоро закончатся
🔔 /cases — Активные жалобы на нарушения
💬 /reviews — Последние отзывы
<i>Настройте TELEGRAM_CHAT_ID в .env, чтобы получать уведомления!</i>
"""
bot.reply_to(message, help_text, parse_mode='HTML')
@bot.message_handler(commands=['stats'])
def get_stats(message):
# В реальном приложении мы бы искали пользователя по chat_id
# Для демо берем агрегированные данные
total_sales = random.randint(150000, 450000)
orders = random.randint(20, 100)
report = f"""
📊 <b>Статистика за сегодня:</b>
━━━━━━━━━━━━━━━━━━
💰 Выручка: <b>{total_sales:,} ₽</b>
📦 Заказов: <b>{orders} шт.</b>
🚀 Рост к вчера: <b>+12%</b>
<i>Данные агрегированы по всем вашим магазинам.</i>
"""
bot.reply_to(message, report, parse_mode='HTML')
@bot.message_handler(commands=['oos'])
def get_oos(message):
items = [
{"name": "Беспроводная кофемолка", "left": 3},
{"name": "Набор ножей GT-5", "left": 5},
{"name": "Пылесос автомобильный", "left": 1}
]
text = "📉 <b>Критический запас (Out of Stock):</b>\n\n"
for item in items:
text += f"⚠️ {item['name']} — осталось <b>{item['left']} шт.</b>\n"
text += "\n<i>Рекомендуем сделать поставку в ближайшие 24 часа.</i>"
bot.reply_to(message, text, parse_mode='HTML')
@bot.message_handler(commands=['cases'])
def get_cases(message):
bot.reply_to(message, "🔔 <b>У вас 3 активных нарушения.</b>\nПо всем случаям ИИ уже подготовил претензии. Проверьте в веб-интерфейсе.")
@bot.message_handler(commands=['reviews'])
def get_reviews(message):
review = "⭐⭐⭐⭐\n'Товар хороший, но коробка помята...'\n\n💡 <i>ИИ советует: Извиниться за логистику и предложить скидку на след. покупку.</i>"
bot.reply_to(message, f"💬 <b>Новый отзыв Ozon:</b>\n\n{review}", parse_mode='HTML')
if __name__ == "__main__":
print("Bot is running...")
bot.infinity_polling()