import 'dart:convert';

import 'package:extended_text/extended_text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:yumi/shared/data_sources/sources/local/user_manager.dart';
import 'package:marquee/marquee.dart';
import 'package:provider/provider.dart';
import 'package:yumi/app_localizations.dart';
import 'package:yumi/services/general/sc_app_general_manager.dart';
import 'package:yumi/ui_kit/components/sc_compontent.dart';
import 'package:yumi/ui_kit/components/text/sc_text.dart';
import 'package:yumi/ui_kit/components/sc_tts.dart';
import 'package:yumi/app/constants/sc_global_config.dart';

import '../../shared/business_logic/models/res/sc_system_invit_message_res.dart';

class SCSystemMessageUtils {
  static Widget buildAgentSendInviteHostMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    Function(String id) rejectOpt,
    Function(String id) acceptOpt,
    BuildContext context,
  ) {
    String expand = data["expand"] ?? "";
    if (data["content"] != null) {
      var bean = SCSystemInvitMessageRes.fromJson(jsonDecode(data["content"]));
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              decoration: BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(0),
                  topRight: Radius.circular(8.w),
                  bottomLeft: Radius.circular(8.w),
                  bottomRight: Radius.circular(8),
                ),
              ),
              padding: EdgeInsets.all(8.0.w),
              child: Column(
                children: [
                  Row(
                    children: [
                      head(url: bean.userAvatar ?? "", width: 65.w),
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Row(
                            children: [
                              netImage(
                                url:
                                    Provider.of<SCAppGeneralManager>(
                                          context,
                                          listen: false,
                                        )
                                        .findCountryByName(
                                          bean.countryName ?? "",
                                        )
                                        ?.nationalFlag ??
                                    "",
                                borderRadius: BorderRadius.all(
                                  Radius.circular(3.w),
                                ),
                                width: 19.w,
                                height: 14.w,
                              ),
                              SizedBox(width: 3.w),
                              Container(
                                constraints: BoxConstraints(maxWidth: 160.w),
                                child: text(
                                  bean.userNickname ?? "",
                                  fontWeight: FontWeight.bold,
                                  textColor: Colors.white,
                                  fontSize: 16.sp,
                                ),
                              ),
                            ],
                          ),
                          GestureDetector(
                            child: Container(
                              padding: EdgeInsets.symmetric(vertical: 8.w),
                              decoration: BoxDecoration(
                                image: DecorationImage(
                                  image: AssetImage(
                                    (bean.account != bean.actualAccount)
                                        ? "sc_images/general/sc_icon_special_id_bg.png"
                                        : "sc_images/general/sc_icon_id_bg.png",
                                  ),
                                  fit: BoxFit.fitWidth,
                                ),
                              ),
                              child: Row(
                                textDirection: TextDirection.ltr,
                                children: [
                                  SizedBox(width: 38.w),
                                  text(
                                    bean.actualAccount ?? "",
                                    fontSize: 12.sp,
                                    textColor: Colors.white,
                                    fontWeight: FontWeight.bold,
                                  ),
                                  SizedBox(width: 5.w),
                                  Image.asset(
                                    "sc_images/room/sc_icon_user_card_copy_id.png",
                                    width: 12.w,
                                    height: 12.w,
                                  ),
                                  SizedBox(width: 8.w),
                                ],
                              ),
                            ),
                            onTap: () {
                              Clipboard.setData(
                                ClipboardData(text: bean.actualAccount ?? ""),
                              );
                              SCTts.show(
                                SCAppLocalizations.of(context)!.copiedToClipboard,
                              );
                            },
                          ),
                        ],
                      ),
                    ],
                  ),
                  SizedBox(height: 3.w),
                  Row(
                    children: [
                      SizedBox(width: 10.w),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xffFF6464),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.reject,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          rejectOpt(expand);
                        },
                      ),
                      Spacer(),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xff7B64FF),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.accept,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          acceptOpt(expand);
                        },
                      ),
                      SizedBox(width: 10.w),
                    ],
                  ),
                  Divider(color: Colors.black12, thickness: 0.5, height: 28.w),
                  ExtendedText(
                    SCAppLocalizations.of(context)!.inviteYouToBecomeHost,
                    // specialTextSpanBuilder: MySpecialTextSpanBuilder(),
                    style: TextStyle(fontSize: 14.sp, color: Colors.black54),
                  ),
                  SizedBox(height: 5.w),
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }

  static Widget buildBdSendInviteAgentMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    Function(String id) rejectOpt,
    Function(String id) acceptOpt,
    BuildContext context,
  ) {
    String expand = data["expand"] ?? "";
    if (data["content"] != null) {
      var bean = SCSystemInvitMessageRes.fromJson(jsonDecode(data["content"]));
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              decoration: BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(0),
                  topRight: Radius.circular(8.w),
                  bottomLeft: Radius.circular(8.w),
                  bottomRight: Radius.circular(8),
                ),
              ),
              padding: EdgeInsets.all(8.0.w),
              child: Column(
                children: [
                  Row(
                    children: [
                      head(url: bean.userAvatar ?? "", width: 65.w),
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Row(
                            children: [
                              netImage(
                                url:
                                    Provider.of<SCAppGeneralManager>(
                                          context,
                                          listen: false,
                                        )
                                        .findCountryByName(
                                          bean.countryName ?? "",
                                        )
                                        ?.nationalFlag ??
                                    "",
                                borderRadius: BorderRadius.all(
                                  Radius.circular(3.w),
                                ),
                                width: 19.w,
                                height: 14.w,
                              ),
                              SizedBox(width: 3.w),
                              Container(
                                constraints: BoxConstraints(maxWidth: 160.w),
                                child: text(
                                  bean.userNickname ?? "",
                                  fontWeight: FontWeight.bold,
                                  textColor: Colors.black,
                                  fontSize: 16.sp,
                                ),
                              ),
                            ],
                          ),
                          GestureDetector(
                            child: Container(
                              padding: EdgeInsets.symmetric(vertical: 8.w),
                              decoration: BoxDecoration(
                                image: DecorationImage(
                                  image: AssetImage(
                                    (bean.account != bean.actualAccount)
                                        ? "sc_images/general/sc_icon_special_id_bg.png"
                                        : "sc_images/general/sc_icon_id_bg.png",
                                  ),
                                  fit: BoxFit.fitWidth,
                                ),
                              ),
                              child: Row(
                                textDirection: TextDirection.ltr,
                                children: [
                                  SizedBox(width: 38.w),
                                  text(
                                    bean.actualAccount ?? "",
                                    fontSize: 12.sp,
                                    textColor: Colors.white,
                                    fontWeight: FontWeight.bold,
                                  ),
                                  SizedBox(width: 5.w),
                                  Image.asset(
                                    "sc_images/room/sc_icon_user_card_copy_id.png",
                                    width: 12.w,
                                    height: 12.w,
                                  ),
                                  SizedBox(width: 8.w),
                                ],
                              ),
                            ),
                            onTap: () {
                              Clipboard.setData(
                                ClipboardData(text: bean.actualAccount ?? ""),
                              );
                              SCTts.show(
                                SCAppLocalizations.of(context)!.copiedToClipboard,
                              );
                            },
                          ),
                        ],
                      ),
                    ],
                  ),
                  SizedBox(height: 3.w),
                  Row(
                    children: [
                      SizedBox(width: 10.w),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xffFF6464),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.reject,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          rejectOpt(expand);
                        },
                      ),
                      Spacer(),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xff7B64FF),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.accept,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          acceptOpt(expand);
                        },
                      ),
                      SizedBox(width: 10.w),
                    ],
                  ),
                  Divider(color: Colors.black12, thickness: 0.5, height: 28.w),
                  ExtendedText(
                    SCAppLocalizations.of(context)!.inviteYouToBecomeAgent,
                    // specialTextSpanBuilder: MySpecialTextSpanBuilder(),
                    style: TextStyle(fontSize: 14.sp, color: Colors.black54),
                  ),
                  SizedBox(height: 5.w),
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }

  static Widget buildBdLeaderInviteBdMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    Function(String id) rejectOpt,
    Function(String id) acceptOpt,
    BuildContext context,
  ) {
    String expand = data["expand"] ?? "";
    if (data["content"] != null) {
      var bean = SCSystemInvitMessageRes.fromJson(jsonDecode(data["content"]));
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              decoration: BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(0),
                  topRight: Radius.circular(8.w),
                  bottomLeft: Radius.circular(8.w),
                  bottomRight: Radius.circular(8),
                ),
              ),
              padding: EdgeInsets.all(8.0.w),
              child: Column(
                children: [
                  Row(
                    children: [
                      head(url: bean.userAvatar ?? "", width: 65.w),
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Row(
                            children: [
                              netImage(
                                url:
                                    Provider.of<SCAppGeneralManager>(
                                          context,
                                          listen: false,
                                        )
                                        .findCountryByName(
                                          bean.countryName ?? "",
                                        )
                                        ?.nationalFlag ??
                                    "",
                                borderRadius: BorderRadius.all(
                                  Radius.circular(3.w),
                                ),
                                width: 19.w,
                                height: 14.w,
                              ),
                              SizedBox(width: 3.w),
                              Container(
                                constraints: BoxConstraints(maxWidth: 160.w),
                                child: text(
                                  bean.userNickname ?? "",
                                  fontWeight: FontWeight.bold,
                                  textColor: Colors.black,
                                  fontSize: 16.sp,
                                ),
                              ),
                            ],
                          ),
                          GestureDetector(
                            child: Container(
                              padding: EdgeInsets.symmetric(vertical: 8.w),
                              decoration: BoxDecoration(
                                image: DecorationImage(
                                  image: AssetImage(
                                    (bean.account != bean.actualAccount)
                                        ? "sc_images/general/sc_icon_special_id_bg.png"
                                        : "sc_images/general/sc_icon_id_bg.png",
                                  ),
                                  fit: BoxFit.fitWidth,
                                ),
                              ),
                              child: Row(
                                textDirection: TextDirection.ltr,
                                children: [
                                  SizedBox(width: 38.w),
                                  text(
                                    bean.actualAccount ?? "",
                                    fontSize: 12.sp,
                                    textColor: Colors.white,
                                    fontWeight: FontWeight.bold,
                                  ),
                                  SizedBox(width: 5.w),
                                  Image.asset(
                                    "sc_images/room/sc_icon_user_card_copy_id.png",
                                    width: 12.w,
                                    height: 12.w,
                                  ),
                                  SizedBox(width: 8.w),
                                ],
                              ),
                            ),
                            onTap: () {
                              Clipboard.setData(
                                ClipboardData(text: bean.actualAccount ?? ""),
                              );
                              SCTts.show(
                                SCAppLocalizations.of(context)!.copiedToClipboard,
                              );
                            },
                          ),
                        ],
                      ),
                    ],
                  ),
                  SizedBox(height: 3.w),
                  Row(
                    children: [
                      SizedBox(width: 10.w),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xffFF6464),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.reject,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          rejectOpt(expand);
                        },
                      ),
                      Spacer(),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xff7B64FF),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.accept,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          acceptOpt(expand);
                        },
                      ),
                      SizedBox(width: 10.w),
                    ],
                  ),
                  Divider(color: Colors.black12, thickness: 0.5, height: 28.w),
                  ExtendedText(
                    SCAppLocalizations.of(context)!.inviteYouToBecomeBD,
                    // specialTextSpanBuilder: MySpecialTextSpanBuilder(),
                    style: TextStyle(fontSize: 14.sp, color: Colors.black54),
                  ),
                  SizedBox(height: 5.w),
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }

  static Widget buildBdLeaderInviteBdLeaderMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    Function(String id) rejectOpt,
    Function(String id) acceptOpt,
    BuildContext context,
  ) {
    String expand = data["expand"] ?? "";
    if (data["content"] != null) {
      var bean = SCSystemInvitMessageRes.fromJson(jsonDecode(data["content"]));
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              decoration: BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(0),
                  topRight: Radius.circular(8.w),
                  bottomLeft: Radius.circular(8.w),
                  bottomRight: Radius.circular(8),
                ),
              ),
              padding: EdgeInsets.all(8.0.w),
              child: Column(
                children: [
                  Row(
                    children: [
                      head(url: bean.userAvatar ?? "", width: 65.w),
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Row(
                            children: [
                              netImage(
                                url:
                                    Provider.of<SCAppGeneralManager>(
                                          context,
                                          listen: false,
                                        )
                                        .findCountryByName(
                                          bean.countryName ?? "",
                                        )
                                        ?.nationalFlag ??
                                    "",
                                borderRadius: BorderRadius.all(
                                  Radius.circular(3.w),
                                ),
                                width: 19.w,
                                height: 14.w,
                              ),
                              SizedBox(width: 3.w),
                              Container(
                                constraints: BoxConstraints(maxWidth: 160.w),
                                child: text(
                                  bean.userNickname ?? "",
                                  fontWeight: FontWeight.bold,
                                  textColor: Colors.black,
                                  fontSize: 16.sp,
                                ),
                              ),
                            ],
                          ),
                          GestureDetector(
                            child: Container(
                              padding: EdgeInsets.symmetric(vertical: 8.w),
                              decoration: BoxDecoration(
                                image: DecorationImage(
                                  image: AssetImage(
                                    (bean.account != bean.actualAccount)
                                        ? "sc_images/general/sc_icon_special_id_bg.png"
                                        : "sc_images/general/sc_icon_id_bg.png",
                                  ),
                                  fit: BoxFit.fitWidth,
                                ),
                              ),
                              child: Row(
                                textDirection: TextDirection.ltr,
                                children: [
                                  SizedBox(width: 38.w),
                                  text(
                                    bean.actualAccount ?? "",
                                    fontSize: 12.sp,
                                    textColor: Colors.white,
                                    fontWeight: FontWeight.bold,
                                  ),
                                  SizedBox(width: 5.w),
                                  Image.asset(
                                    "sc_images/room/sc_icon_user_card_copy_id.png",
                                    width: 12.w,
                                    height: 12.w,
                                  ),
                                  SizedBox(width: 8.w),
                                ],
                              ),
                            ),
                            onTap: () {
                              Clipboard.setData(
                                ClipboardData(text: bean.actualAccount ?? ""),
                              );
                              SCTts.show(
                                SCAppLocalizations.of(context)!.copiedToClipboard,
                              );
                            },
                          ),
                        ],
                      ),
                    ],
                  ),
                  SizedBox(height: 3.w),
                  Row(
                    children: [
                      SizedBox(width: 10.w),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xffFF6464),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.reject,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          rejectOpt(expand);
                        },
                      ),
                      Spacer(),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xff7B64FF),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.accept,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          acceptOpt(expand);
                        },
                      ),
                      SizedBox(width: 10.w),
                    ],
                  ),
                  Divider(color: Colors.black12, thickness: 0.5, height: 28.w),
                  ExtendedText(
                    SCAppLocalizations.of(
                      context,
                    )!.bDLeaderInviteYouToBecomeBDLeader,
                    // specialTextSpanBuilder: MySpecialTextSpanBuilder(),
                    style: TextStyle(fontSize: 14.sp, color: Colors.black54),
                  ),
                  SizedBox(height: 5.w),
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }

  static Widget buildAdminInviteRechargeAgentMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    Function(String id) rejectOpt,
    Function(String id) acceptOpt,
    BuildContext context,
  ) {
    String expand = data["expand"] ?? "";
    if (data["content"] != null) {
      var bean = SCSystemInvitMessageRes.fromJson(jsonDecode(data["content"]));
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              decoration: BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(0),
                  topRight: Radius.circular(8.w),
                  bottomLeft: Radius.circular(8.w),
                  bottomRight: Radius.circular(8),
                ),
              ),
              padding: EdgeInsets.all(8.0.w),
              child: Column(
                children: [
                  Row(
                    children: [
                      head(url: bean.userAvatar ?? "", width: 65.w),
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Row(
                            children: [
                              netImage(
                                url:
                                    Provider.of<SCAppGeneralManager>(
                                          context,
                                          listen: false,
                                        )
                                        .findCountryByName(
                                          bean.countryName ?? "",
                                        )
                                        ?.nationalFlag ??
                                    "",
                                borderRadius: BorderRadius.all(
                                  Radius.circular(3.w),
                                ),
                                width: 19.w,
                                height: 14.w,
                              ),
                              SizedBox(width: 3.w),
                              Container(
                                constraints: BoxConstraints(maxWidth: 160.w),
                                child: text(
                                  bean.userNickname ?? "",
                                  fontWeight: FontWeight.bold,
                                  textColor: Colors.black,
                                  fontSize: 16.sp,
                                ),
                              ),
                            ],
                          ),
                          GestureDetector(
                            child: Container(
                              padding: EdgeInsets.symmetric(vertical: 8.w),
                              decoration: BoxDecoration(
                                image: DecorationImage(
                                  image: AssetImage(
                                    (bean.account != bean.actualAccount)
                                        ? "sc_images/general/sc_icon_special_id_bg.png"
                                        : "sc_images/general/sc_icon_id_bg.png",
                                  ),
                                  fit: BoxFit.fitWidth,
                                ),
                              ),
                              child: Row(
                                textDirection: TextDirection.ltr,
                                children: [
                                  SizedBox(width: 38.w),
                                  text(
                                    bean.actualAccount ?? "",
                                    fontSize: 12.sp,
                                    textColor: Colors.white,
                                    fontWeight: FontWeight.bold,
                                  ),
                                  SizedBox(width: 5.w),
                                  Image.asset(
                                    "sc_images/room/sc_icon_user_card_copy_id.png",
                                    width: 12.w,
                                    height: 12.w,
                                  ),
                                  SizedBox(width: 8.w),
                                ],
                              ),
                            ),
                            onTap: () {
                              Clipboard.setData(
                                ClipboardData(text: bean.actualAccount ?? ""),
                              );
                              SCTts.show(
                                SCAppLocalizations.of(context)!.copiedToClipboard,
                              );
                            },
                          ),
                        ],
                      ),
                    ],
                  ),
                  SizedBox(height: 3.w),
                  Row(
                    children: [
                      SizedBox(width: 10.w),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xffFF6464),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.reject,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          rejectOpt(expand);
                        },
                      ),
                      Spacer(),
                      GestureDetector(
                        child: Container(
                          alignment: AlignmentDirectional.center,
                          height: 25.w,
                          width: 65.w,
                          decoration: BoxDecoration(
                            color: Color(0xff7B64FF),
                            borderRadius: BorderRadius.all(
                              Radius.circular(15.0),
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.accept,
                            fontSize: 14.sp,
                            fontWeight: FontWeight.w600,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          acceptOpt(expand);
                        },
                      ),
                      SizedBox(width: 10.w),
                    ],
                  ),
                  Divider(color: Colors.black12, thickness: 0.5, height: 28.w),
                  ExtendedText(
                    SCAppLocalizations.of(context)!.adminInviteRechargeAgent,
                    // specialTextSpanBuilder: MySpecialTextSpanBuilder(),
                    style: TextStyle(fontSize: 14.sp, color: Colors.black54),
                  ),
                  SizedBox(height: 5.w),
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }

  static Widget buildCPBuildMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    Function(String id) rejectOpt,
    Function(String id) acceptOpt,
    BuildContext context,
  ) {
    String expand = data["expand"] ?? "";
    if (data["content"] != null) {
      var bean = SCSystemInvitMessageRes.fromJson(jsonDecode(data["content"]));
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              height: 490.w,
              width: ScreenUtil().screenWidth * 0.8,
              decoration: BoxDecoration(
                image: DecorationImage(
                  image: AssetImage(
                    "sc_images/person/sc_icon_send_cp_requst_dialog_bg.png",
                  ),
                  fit: BoxFit.fill,
                ),
              ),
              child: Column(
                children: [
                  SizedBox(height: 58.w),
                  Container(
                    child: text(
                      bean.applyType == "APPLY"
                          ? SCAppLocalizations.of(context)!.cpRequest
                          : SCAppLocalizations.of(context)!.reconcileInvitation,
                      fontSize: 21.sp,
                      textColor: Color(0xffDB5872),
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                  Transform.translate(
                    offset: Offset(0, -23),
                    child: Stack(
                      alignment: AlignmentDirectional.center,
                      children: [
                        PositionedDirectional(
                          top: 22.w,
                          child: Row(
                            mainAxisSize: MainAxisSize.min,
                            children: [
                              head(url: bean.userAvatar ?? "", width: 80.w),
                              SizedBox(width: 12.w),
                              head(
                                url:
                                    AccountStorage()
                                        .getCurrentUser()
                                        ?.userProfile
                                        ?.userAvatar ??
                                    "",
                                width: 80.w,
                              ),
                            ],
                          ),
                        ),
                        Image.asset(
                          "sc_images/person/sc_icon_send_cp_requst_dialog_head.png",
                          height: 100.w,
                          fit: BoxFit.fill,
                        ),
                      ],
                    ),
                  ),
                  Transform.translate(
                    offset: Offset(0, -23),
                    child: Container(
                      height: 25.w,
                      width: ScreenUtil().screenWidth * 0.6,
                      decoration: BoxDecoration(
                        image: DecorationImage(
                          image: AssetImage(
                            "sc_images/person/sc_icon_send_cp_requst_username_bg.png",
                          ),
                          fit: BoxFit.fill,
                        ),
                      ),
                      child: Row(
                        children: [
                          Container(
                            alignment: Alignment.center,
                            width: 100.w,
                            height: 15.w,
                            child:
                                (bean.userNickname?.length ?? 0) > 8
                                    ? Marquee(
                                      text: bean.userNickname ?? "",
                                      style: TextStyle(
                                        fontSize: 10.sp,
                                        color: Colors.white,
                                        fontWeight: FontWeight.w600,
                                        decoration: TextDecoration.none,
                                      ),
                                      scrollAxis: Axis.horizontal,
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      blankSpace: 20.0,
                                      velocity: 40.0,
                                      pauseAfterRound: Duration(seconds: 1),
                                      accelerationDuration: Duration(
                                        seconds: 1,
                                      ),
                                      accelerationCurve: Curves.easeOut,
                                      decelerationDuration: Duration(
                                        milliseconds: 500,
                                      ),
                                      decelerationCurve: Curves.easeOut,
                                    )
                                    : Text(
                                      bean.userNickname ?? "",
                                      maxLines: 1,
                                      overflow: TextOverflow.ellipsis,
                                      style: TextStyle(
                                        fontSize: 10.sp,
                                        color: Colors.white,
                                        fontWeight: FontWeight.w600,
                                        decoration: TextDecoration.none,
                                      ),
                                    ),
                          ),
                          SizedBox(width: 20.w),
                          Container(
                            alignment: Alignment.center,
                            width: 100.w,
                            height: 15.w,
                            child:
                                (AccountStorage()
                                                .getCurrentUser()
                                                ?.userProfile
                                                ?.userNickname
                                                ?.length ??
                                            0) >
                                        8
                                    ? Marquee(
                                      text:
                                          AccountStorage()
                                              .getCurrentUser()
                                              ?.userProfile
                                              ?.userNickname ??
                                          "",
                                      style: TextStyle(
                                        fontSize: 10.sp,
                                        color: Colors.white,
                                        fontWeight: FontWeight.w600,
                                        decoration: TextDecoration.none,
                                      ),
                                      scrollAxis: Axis.horizontal,
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      blankSpace: 20.0,
                                      velocity: 40.0,
                                      pauseAfterRound: Duration(seconds: 1),
                                      accelerationDuration: Duration(
                                        seconds: 1,
                                      ),
                                      accelerationCurve: Curves.easeOut,
                                      decelerationDuration: Duration(
                                        milliseconds: 500,
                                      ),
                                      decelerationCurve: Curves.easeOut,
                                    )
                                    : Text(
                                      AccountStorage()
                                              .getCurrentUser()
                                              ?.userProfile
                                              ?.userNickname ??
                                          "",
                                      maxLines: 1,
                                      overflow: TextOverflow.ellipsis,
                                      style: TextStyle(
                                        fontSize: 10.sp,
                                        color: Colors.white,
                                        fontWeight: FontWeight.w600,
                                        decoration: TextDecoration.none,
                                      ),
                                    ),
                          ),
                        ],
                      ),
                    ),
                  ),
                  Container(
                    padding: EdgeInsets.only(bottom: 12.w),
                    margin: EdgeInsets.symmetric(horizontal: 18.w),
                    decoration: BoxDecoration(
                      image: DecorationImage(
                        image: AssetImage(
                          "sc_images/person/sc_icon_send_cp_requst_dialog_content.png",
                        ),
                        fit: BoxFit.fill,
                      ),
                    ),
                    child: Column(
                      children: [
                        Container(
                          margin: EdgeInsets.symmetric(
                            horizontal: 35.w,
                          ).copyWith(top: 40.w),
                          child: text(
                            bean.applyType == "APPLY"
                                ? SCAppLocalizations.of(
                                  context,
                                )!.areYouSureYouWantToSpend5(
                                  bean.userNickname ?? "",
                                )
                                : SCAppLocalizations.of(
                                  context,
                                )!.areYouSureYouWantToSpend6(
                                  bean.userNickname ?? "",
                                ),
                            fontWeight: FontWeight.w500,
                            textColor: Color(0xffFF79A1),
                            maxLines: 7,
                            fontSize: 14.sp,
                          ),
                        ),
                      ],
                    ),
                  ),
                  SizedBox(height: 10.w),
                  Row(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      GestureDetector(
                        child: Container(
                          padding: EdgeInsets.only(top: 7.w),
                          alignment: AlignmentDirectional.center,
                          width: 120.w,
                          height: 45.w,
                          decoration: BoxDecoration(
                            image: DecorationImage(
                              image: AssetImage(
                                "sc_images/person/sc_icon_send_cp_requst_cancel_bg.png",
                              ),
                              fit: BoxFit.fill,
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.reject,
                            fontSize: 17.sp,
                            fontWeight: FontWeight.bold,
                            textColor: Colors.white,
                          ),
                        ),
                        onTap: () {
                          rejectOpt(expand);
                        },
                      ),
                      SizedBox(width: 25.w),
                      GestureDetector(
                        child: Container(
                          padding: EdgeInsets.only(top: 7.w),
                          alignment: AlignmentDirectional.center,
                          width: 120.w,
                          height: 45.w,
                          decoration: BoxDecoration(
                            image: DecorationImage(
                              image: AssetImage(
                                "sc_images/person/sc_icon_send_cp_requst_ok_bg.png",
                              ),
                              fit: BoxFit.fill,
                            ),
                          ),
                          child: text(
                            SCAppLocalizations.of(context)!.accept,
                            fontSize: 17.sp,
                            fontWeight: FontWeight.bold,
                            textColor: Color(0xffDB5872),
                          ),
                        ),
                        onTap: () {
                          acceptOpt(expand);
                        },
                      ),
                    ],
                  ),
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }

  static Widget buildCPLoveLetterMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    BuildContext context,
  ) {
    if (data["content"] != null) {
      var bean = SCSystemInvitMessageRes.fromJson(jsonDecode(data["content"]));
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              height: 400.w,
              width: ScreenUtil().screenWidth * 0.8,
              decoration: BoxDecoration(
                image: DecorationImage(
                  image: AssetImage("sc_images/msg/sc_icon_cp_lover_bg.png"),
                  fit: BoxFit.fill,
                ),
              ),
              child: Column(
                children: [
                  SizedBox(height: 35.w),
                  Image.asset(
                    SCGlobalConfig.lang == "ar"
                        ? "sc_images/msg/sc_icon_cp_lover_text_ar.png"
                        : "sc_images/msg/sc_icon_cp_lover_text_en.png",
                    width: 110.w,
                    fit: BoxFit.fill,
                  ),
                  SizedBox(height: 45.w),
                  Row(
                    children: [
                      SizedBox(width: 55.w),
                      netImage(
                        url: bean.userAvatar ?? "",
                        width: 45.w,
                        height: 45.w,
                        shape: BoxShape.circle,
                      ),
                      Column(
                        children: [
                          Row(
                            children: [
                              Container(
                                alignment: Alignment.center,
                                width: 100.w,
                                height: 15.w,
                                child:
                                    (bean.userNickname?.length ?? 0) > 8
                                        ? Marquee(
                                          text: bean.userNickname ?? "",
                                          style: TextStyle(
                                            fontSize: 12.sp,
                                            color: Color(0xffDB5872),
                                            fontWeight: FontWeight.w600,
                                            decoration: TextDecoration.none,
                                          ),
                                          scrollAxis: Axis.horizontal,
                                          crossAxisAlignment:
                                              CrossAxisAlignment.start,
                                          blankSpace: 20.0,
                                          velocity: 40.0,
                                          pauseAfterRound: Duration(seconds: 1),
                                          accelerationDuration: Duration(
                                            seconds: 1,
                                          ),
                                          accelerationCurve: Curves.easeOut,
                                          decelerationDuration: Duration(
                                            milliseconds: 500,
                                          ),
                                          decelerationCurve: Curves.easeOut,
                                        )
                                        : Text(
                                          bean.userNickname ?? "",
                                          maxLines: 1,
                                          overflow: TextOverflow.ellipsis,
                                          style: TextStyle(
                                            fontSize: 12.sp,
                                            color: Color(0xffDB5872),
                                            fontWeight: FontWeight.w600,
                                            decoration: TextDecoration.none,
                                          ),
                                        ),
                              ),
                            ],
                          ),
                          GestureDetector(
                            child: Container(
                              padding: EdgeInsets.symmetric(vertical: 8.w),
                              decoration: BoxDecoration(
                                image: DecorationImage(
                                  image: AssetImage(
                                    (bean.account != bean.actualAccount)
                                        ? "sc_images/general/sc_icon_special_id_bg.png"
                                        : "sc_images/general/sc_icon_id_bg.png",
                                  ),
                                  fit: BoxFit.fitWidth,
                                ),
                              ),
                              child: Row(
                                textDirection: TextDirection.ltr,
                                children: [
                                  SizedBox(width: 38.w),
                                  text(
                                    bean.actualAccount ?? "",
                                    fontSize: 12.sp,
                                    textColor: Colors.white,
                                    fontWeight: FontWeight.bold,
                                  ),
                                  SizedBox(width: 5.w),
                                  Image.asset(
                                    "sc_images/room/sc_icon_user_card_copy_id.png",
                                    width: 12.w,
                                    height: 12.w,
                                  ),
                                  SizedBox(width: 8.w),
                                ],
                              ),
                            ),
                            onTap: () {
                              Clipboard.setData(
                                ClipboardData(text: bean.actualAccount ?? ""),
                              );
                              SCTts.show(
                                SCAppLocalizations.of(context)!.copiedToClipboard,
                              );
                            },
                          ),
                        ],
                      ),
                    ],
                  ),
                  SizedBox(height: 5.w),
                  Container(
                    height: 160.w,
                    margin: EdgeInsets.symmetric(horizontal: 53.w),
                    child: SingleChildScrollView(
                      child: ExtendedText(
                        bean.content ?? "",
                        style: TextStyle(
                          fontSize: 12.sp,
                          color: Color(0xffDB5872),
                          fontWeight: FontWeight.w600,
                        ),
                      ),
                    ),
                  ),
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }

  static Widget buildUserCoinsReceivedMessage(
    data,
    Function(BuildContext ct, String content) showMsgItemMenu,
    BuildContext context,
  ) {
    if (data["content"] != null) {
      return Builder(
        builder: (ct) {
          return GestureDetector(
            onLongPress: () {
              showMsgItemMenu(ct, "");
            },
            child: Container(
              decoration: BoxDecoration(
                color: Colors.white,
                boxShadow: [BoxShadow(blurRadius: 2.w, color: Colors.black26)],
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(0),
                  topRight: Radius.circular(8.w),
                  bottomLeft: Radius.circular(8.w),
                  bottomRight: Radius.circular(8),
                ),
              ),
              padding: EdgeInsets.all(8.0.w),
              child: Column(
                children: [
                  text(
                    SCAppLocalizations.of(context)!.coinsReceived,
                    fontSize: 16.sp,
                    textColor: Colors.black,
                    fontWeight: FontWeight.bold,
                  ),
                  ExtendedText(
                    data["content"],
                    // specialTextSpanBuilder: MySpecialTextSpanBuilder(),
                    style: TextStyle(fontSize: 14.sp, color: Colors.black54),
                  )
                ],
              ),
            ),
          );
        },
      );
    }
    return Container();
  }
}
