import 'package:cs_resources/constants/color_constants.dart';
import 'package:domain/entity/response/u_k_security_attendance_entity.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:plugin_basic/basic_export.dart';
import 'package:widgets/ext/ex_widget.dart';
import 'package:widgets/my_button.dart';
import 'package:widgets/my_text_view.dart';

/*
 * 电子考勤Item
 */
class SecurityRegistrationItem extends StatelessWidget {
  final int index;
  final UKSecurityAttendanceRows item;
  final VoidCallback? onMemberAction;
  final VoidCallback? onEditAction;

  SecurityRegistrationItem({
    required this.index,
    required this.item,
    this.onMemberAction,
    this.onEditAction,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: const EdgeInsets.symmetric(vertical: 23, horizontal: 21),
      margin: const EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5),
      decoration: BoxDecoration(
        color: const Color(0xFF4DCFF6).withOpacity(0.2), // 设置背景颜色和不透明度
        borderRadius: BorderRadius.circular(5), // 设置圆角
      ),
      child: Column(
        mainAxisSize: MainAxisSize.max,
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          //员工姓名
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "${"Staff Name".tr}:",
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //姓名
              MyTextView(
                item.staffName ?? "-",
                isFontMedium: true,
                textColor: ColorConstants.textYellowFFBB1B,
                fontSize: 14,
                marginLeft: 5,
                marginRight: 5,
                textDecoration: TextDecoration.underline,
                decorationColor: ColorConstants.textYellowFFBB1B,
                // 可选，设置下划线的颜色
                decorationThickness: 2.0,
                // 可选，设置下划线的粗细
                decorationStyle: TextDecorationStyle.solid,
                onClick: onMemberAction,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          //员工电话
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "${"Mobile".tr}:",
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //电话文本
              MyTextView(
                item.phone ?? "-",
                isFontMedium: true,
                textColor: Colors.white,
                fontSize: 14,
                marginLeft: 5,
                marginRight: 5,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          //工作标题
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "${"Title".tr}:",
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //文本
              MyTextView(
                item.jobTitle ?? "-",
                isFontMedium: true,
                textColor: Colors.white,
                fontSize: 14,
                marginLeft: 5,
                marginRight: 5,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          //工作对应的部门
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "${"Outlet".tr}:",
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //电话文本
              MyTextView(
                item.departmentName ?? "-",
                isFontMedium: true,
                textColor: Colors.white,
                fontSize: 14,
                marginLeft: 5,
                marginRight: 5,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          // 工作日期
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "${"Job Date".tr}:",
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //时间
              MyTextView(
                item.jobTime?.split(" ")[0] ?? "-",
                marginLeft: 5,
                isFontRegular: true,
                textColor: Colors.white,
                fontSize: 14,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          // 工作时间
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "${"Job Time".tr}:",
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //时间
              MyTextView(
                item.jobTime?.split(" ").sublist(1).join(" ") ?? "-",
                marginLeft: 5,
                isFontRegular: true,
                textColor: Colors.white,
                fontSize: 14,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          // 门卫签到时间
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "Security In:".tr,
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //时间
              MyTextView(
                item.securityIn?.time ?? "-",
                marginLeft: 5,
                isFontRegular: true,
                textColor: item.securityIn?.changed == 1 ? ColorConstants.textRedFF6262 : Colors.white,
                fontSize: 14,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          // 门卫签出时间
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "Security Out:".tr,
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //时间
              MyTextView(
                item.securityOut?.time ?? "-",
                marginLeft: 5,
                isFontRegular: true,
                textColor: item.securityOut?.changed == 1 ? ColorConstants.textRedFF6262 : Colors.white,
                fontSize: 14,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          // 申请时间
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "Applied At:".tr,
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //发布状态
              MyTextView(
                item.appliedAt ?? "-",
                marginLeft: 5,
                isFontRegular: true,
                textColor: Colors.white,
                fontSize: 14,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          // 状态
          Row(
            mainAxisSize: MainAxisSize.max,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              MyTextView(
                "Status:".tr,
                isFontRegular: true,
                textColor: ColorConstants.textGrayAECAE5,
                fontSize: 14,
              ),

              //发布状态
              MyTextView(
                item.statusShow ?? "-",
                marginLeft: 5,
                isFontRegular: true,
                textColor: "Completed" == item.statusShow
                    ? ColorConstants.textGreen05DC82
                    : "Cancelled" == item.statusShow || "Rejected" == item.statusShow
                        ? ColorConstants.textRedFF6262
                        : "Revised" == item.statusShow || "Pending" == item.statusShow || "Approve" == item.statusShow
                            ? ColorConstants.textYellowFFBB1B
                            : ColorConstants.textBlue06D9FF, //默认蓝色
                fontSize: 14,
              ).expanded(),
            ],
          ).marginOnly(top: 12),

          //操作按钮
          Row(
            mainAxisSize: MainAxisSize.max,
            mainAxisAlignment: MainAxisAlignment.end,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              //编辑按钮
              Visibility(
                child: MyButton(
                  onPressed: () {
                    FocusScope.of(context).unfocus();
                    onEditAction?.call();
                  },
                  text: "Edit".tr,
                  textColor: ColorConstants.white,
                  backgroundColor: hexToColor(
                    "#FFBB1B",
                  ),
                  radius: 17.25,
                  minWidth: 60,
                  minHeight: 35,
                ).marginOnly(left: 12),
              ),
            ],
          ).marginOnly(top: 15),
        ],
      ),
    );
  }
}
