import json
from datetime import datetime
from zlapi.models import Message, ThreadType
from config import PREFIX

des = {
    'version': "1.0.0",
    'credits': "HVHVZ",
    'description': "Hiển thị bảng giá",
    'power': "Thành viên"
}

def load_price_list():
    try:
        with open('modules/cache/price_list.json', 'r', encoding='utf-8') as f:
            data = json.load(f)
            return data if isinstance(data, dict) else {}
    except Exception:
        return {}

def handle_bg_command(message, message_object, thread_id, thread_type, author_id, client):
    try:
        current_date = datetime.now().strftime("%d/%m/%Y")
        
        price_list = load_price_list()
        if not price_list:
            error_msg = "❌ Không thể tải bảng giá. Vui lòng kiểm tra file modules/cache/price_list.json!"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return
        
        reply_text = f"CẬP NHẬT BẢNG GIÁ TỐT NGÀY {current_date}\n\n"
        for product_code, product_data in price_list.items():
            reply_text += f"{product_data['name']} - ({product_code})\n"
            for package in product_data.get('packages', []):
                reply_text += f"    {package['content']}\n"
            reply_text += "\n"
        
        reply_text += (
            "✅ Tất cả tài khoản đều được bảo hành full thời gian sử dụng.\n\n"
            "👉 Nhanh tay chốt đơn để vừa có giá tốt, vừa nhận quà khủng nhé cả nhà!\n\n"
            "Xem thêm các sản phẩm khác tại website: https://shop.moretech.io.vn/\n\n"
            "Cảm ơn cả nhà đã luôn tin tưởng MORETECH! ❤️"
        )
        
        client.replyMessage(Message(text=reply_text), message_object, thread_id, thread_type)
        
    except Exception as e:
        error_msg = f"❌ Lỗi không xác định: {str(e)}. Vui lòng thử lại!"
        client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)

def ft_vxkiue():
    return {
        'bg': handle_bg_command
    }