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

des = {
    'version': "1.0.0",
    'credits': "HVHVZ",
    'description': "Xóa sản phẩm và các gói liên quan",
    'power': "Quản trị 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 save_price_list(data):
    try:
        with open('modules/cache/price_list.json', 'w', encoding='utf-8') as f:
            json.dump(data, f, ensure_ascii=False, indent=4)
        return True
    except Exception:
        return False

def handle_delsp_command(message, message_object, thread_id, thread_type, author_id, client):
    try:
        if str(author_id) not in ADMIN:
            error_msg = "❌ Chỉ quản trị viên mới có thể sử dụng lệnh này!"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return

        parts = message.split(" ", 1)
        if len(parts) < 2 or not parts[1].strip():
            error_msg = f"❌ Vui lòng cung cấp mã sản phẩm. Ví dụ: {PREFIX}delsp gemini"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return

        product_code = parts[1].strip()

        price_list = load_price_list()
        if product_code not in price_list:
            error_msg = f"❌ Mã sản phẩm '{product_code}' không tồn tại trong bảng giá!"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return

        product_name = price_list[product_code]["name"]
        del price_list[product_code]

        if not save_price_list(price_list):
            error_msg = "❌ Lỗi khi lưu bảng giá sau khi xóa!"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return

        success_msg = f"✅ Đã xóa sản phẩm '{product_name}' và tất cả gói liên quan!"
        client.replyMessage(Message(text=success_msg), message_object, thread_id, thread_type, ttl=60000)

    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 {
        'delsp': handle_delsp_command
    }