77 lines
3.1 KiB
Python
77 lines
3.1 KiB
Python
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()
|