import requests
from zlapi.models import Message, MultiMsgStyle, MessageStyle
import logging

# Cấu hình logging
logging.basicConfig(
    filename='donate.log',
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)

des = {
    'version': "1.0.0",
    'credits': "Vũ Xuân Kiên & Hồ Văn Hòa",
    'description': "Lệnh donate",
    'power': "Thành viên"
}

def handle_dn_command(message, message_object, thread_id, thread_type, author_id, client):
    try:
        # Lấy tên người dùng
        author_name = message_object.author_name if hasattr(message_object, 'author_name') else "Người dùng"

        # Xây dựng nội dung thông điệp
        base_text = f"Xin chào **{author_name}**\n" \
                   f"Cảm ơn bạn có ý định donate!\n" \
                   f"**Bank:** {xanh}VIETCOMBANK{/xanh}\n" \
                   f"**Stk:** {cam}1376313766{/cam}\n" \
                   f"**Ctk:** {đỏ}HỒ VĂN HOÀ{/đỏ}\n" \
                   f"Tùy tâm, tấm lòng của mọi người giúp tui có tiền duy trì và tạo nhiều chức năng hơn."

        # Định dạng style cho màu sắc và in đậm
        styles = MultiMsgStyle([
            MessageStyle(offset=0, length=7, style="bold"),  # "Xin chào"
            MessageStyle(offset=10, length=5, style="bold"),  # "Bank:"
            MessageStyle(offset=26, length=4, style="bold"),  # "Stk:"
            MessageStyle(offset=41, length=4, style="bold"),  # "Ctk:"

            # Màu xanh lá cho "VIETCOMBANK"
            MessageStyle(offset=16, length=11, style="color", color="#00FF00"),
            # Màu cam cho "1376313766"
            MessageStyle(offset=32, length=10, style="color", color="#FFA500"),
            # Màu đỏ cho "HỒ VĂN HOÀ"
            MessageStyle(offset=47, length=10, style="color", color="#FF0000"),
        ])

        # Gửi thông điệp
        client.replyMessage(
            Message(text=base_text, style=styles),
            message_object,
            thread_id,
            thread_type,
            ttl=60000
        )
        logger.info(f"Sent donate message to {author_name} (author_id: {author_id})")

    except requests.exceptions.RequestException as e:
        logger.error(f"Error in handle_dn_command (RequestException): {e}")
        error_msg = "❌ Lỗi khi xử lý yêu cầu: Vui lòng thử lại!"
        client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)
    except Exception as e:
        logger.error(f"Error in handle_dn_command: {e}")
        error_msg = "❌ Lỗi không xác định khi gửi thông điệp donate. Vui lòng thử lại!"
        client.replyMessage(Message(text=error_msg), message_object, thread_id, thread_type, ttl=60000)

def ft_vxkiue():
    return {
        'dn': handle_dn_command
    }