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

des = {
    'version': "1.0.0",
    'credits': "HVHVZ",
    'description': "Xóa khuyến mãi theo tiêu đề",
    'power': "Quản trị viên"
}

def load_km_list():
    try:
        with open('modules/cache/km.json', 'r', encoding='utf-8') as f:
            data = json.load(f)
            return data if isinstance(data, list) else []
    except Exception:
        return []

def save_km_list(content):
    try:
        with open('modules/cache/km.json', 'w', encoding='utf-8') as f:
            json.dump(content, f, ensure_ascii=False, indent=4)
        return True, None
    except Exception as e:
        return False, str(e)

def handle_delkm_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
        
        content = message.replace(f"{PREFIX}delkm", "", 1).strip()
        if not content:
            error_msg = f"❌ Vui lòng cung cấp tiêu đề khuyến mãi để xóa. Ví dụ: {PREFIX}delkm Tiêu đề"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return
        
        title_to_delete = content.strip()
        
        km_list = load_km_list()
        original_length = len(km_list)
        km_list = [km for km in km_list if km['title'] != title_to_delete]
        
        if len(km_list) == original_length:
            error_msg = f"❌ Không tìm thấy khuyến mãi với tiêu đề '{title_to_delete}'!"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return
        
        success, error = save_km_list(km_list)
        if not success:
            error_msg = f"❌ Lỗi khi lưu sau khi xóa: {error}. Vui lòng thử lại!"
            client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
            return
        
        success_msg = f"✅ Đã xóa khuyến mãi với tiêu đề '{title_to_delete}'!"
        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 {
        'delkm': handle_delkm_command
    }