import 'package:cpt_services/components/status_card_item_vm.dart';
import 'package:cpt_services/modules/services/homeService/home_service_page.dart';
import 'package:cs_resources/theme/app_colors_theme.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shared/utils/color_utils.dart';
import 'package:shared/utils/ext_dart.dart';
import 'package:shared/utils/log_utils.dart';
import 'package:widgets/ext/ex_widget.dart';
import 'package:widgets/my_button.dart';
import 'package:widgets/my_text_view.dart';

import '../constants_services.dart';

class RepairStausCardItem extends HookConsumerWidget {
  int serviceId;
  String cleanServiceType;
  int serviceStatusCode;
  Map<String, dynamic> itemObj;
  double? cardHeight ;
  final Function(dynamic)? onClickCard;

  RepairStausCardItem({
    Key? key,
    required this.serviceId,
    required this.cleanServiceType,
    required this.serviceStatusCode,
    required this.itemObj,
    this.onClickCard,
    cardHeight,
  }): super(key: key) {
    this.cardHeight = cardHeight ?? 180.0;
  }

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final vm = ref.read(statusCardItemVmProvider.notifier);

    final title = itemObj.getValue("title", "Repair air Conditioner");
    final companyName = itemObj.getValue("company_name", "HONG YE GROUP PTE LTD");

    Log.d("serviceStatusCode $serviceStatusCode");

    bool isCompletedStatus = servicesConstants.servicesStatus['$serviceStatusCode']['code'] == 2? true:false;
    String status_text = servicesConstants.servicesStatus['$serviceStatusCode']['text'];

    // final status_text = itemObj.getValue("status_text", "");

    // List<Map<String, dynamic>>? actionBtnList = servicesConstants.servicesStatusActionBtnList[serviceStatusCode];
    // Log.d("actionBtnList   $actionBtnList");

    useEffect((){
      vm.setInitData(context, serviceId, cleanServiceType, serviceStatusCode);
      return () {
      };
    },[]);
    return Container(
      width: double.infinity,
      height: cardHeight!,
      child: Padding(
        padding: const EdgeInsets.only(left: 18.0, right: 18.0, top: 22.0, bottom: 22.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Expanded(
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    // 标题 和状态
                    Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        // 标题
                        Expanded(
                          child: MyTextView(
                            title,
                            fontSize: 16,
                            maxLines: 1,
                            isFontMedium: true,
                            textAlign: TextAlign.left,
                          ),
                        ),
                        // 状态
                        MyTextView(
                          status_text,
                          fontSize: 14,
                          maxLines: 1,
                          isFontRegular: true,
                          textAlign: TextAlign.left,
                          textColor: context.appColors.textPrimary,
                        ),
                      ],
                    ),
                    // 公司名称
                    MyTextView(
                      companyName,
                      fontSize: 14,
                      maxLines: 1,
                      isFontRegular: true,
                      textAlign: TextAlign.left,
                      marginTop: 6,
                    ),
                    MyTextView(
                      'The staff will contact you soon',
                      fontSize: 14,
                      maxLines: 1,
                      isFontRegular: true,
                      textAlign: TextAlign.left,
                      textColor: context.appColors.textDarkGray999,
                      marginTop: 5,
                    ),
                    isCompletedStatus? Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        Expanded(
                          child: MyTextView(
                            'Processing Time',
                            fontSize: 14,
                            maxLines: 1,
                            isFontRegular: true,
                            textAlign: TextAlign.left,
                            textColor: context.appColors.textBlack,
                            marginTop: 5,
                          ),
                        ),
                        Expanded(
                          child: MyTextView(
                            '13 0ct 2024 12:00',
                            fontSize: 14,
                            maxLines: 1,
                            isFontRegular: true,
                            textAlign: TextAlign.end,
                            textColor: context.appColors.textBlack,
                            marginTop: 5,
                          ),
                        )
                      ],
                    ): SizedBox.shrink(),
                  ],
                )
            ),
            // Container(
            // margin: EdgeInsets.only(top: 15),
            // child: _buildActionSection(context,actionBtnList!, vm, ref),
            // ),
          ],
        ),
      ),
    );
  }

  Widget _buildActionSection(BuildContext context,List<Map<String, dynamic>> actionBtnList, StatusCardItemVm vm, WidgetRef ref ) {
    return LayoutBuilder(
        builder: (BuildContext context, BoxConstraints constraints) {
          final maxHeight = constraints.maxHeight;
          final minHeight = constraints.minHeight;
          final maxWidth = constraints.maxWidth;
          // Log.d("---maxHeight-----$maxHeight-- $minHeight  $maxWidth--");
          return Container(
            height: 50,
            // color: Colors.red,
            width: maxWidth,
            child: Row(
                mainAxisAlignment: MainAxisAlignment.end,
                mainAxisSize: MainAxisSize.max,
                children: List.generate(actionBtnList.length, (index){
                  var item = actionBtnList[index];
                  // return Expanded(
                  //   child: _buildBtn(context, item),
                  // );
                  return _buildBtn(context, item, vm, ref);
                })
            ),
          ).scrollable(
            scrollDirection: Axis.horizontal,
            physics: BouncingScrollPhysics(),
          );
        }
    );
  }

  Widget _buildBtn(BuildContext context, Map<String, dynamic> btnItem, StatusCardItemVm vm, WidgetRef ref) {
    // final btnCode = btnItem['code'];
    return MyButton(
      onPressed: (){
        vm.handlerClickActionBtn(context, btnItem);
      },
      text: btnItem['text'],
      radius: 10.0,
      textColor: context.appColors.textWhite,
      backgroundColor: ColorUtils.string2Color(btnItem['btnColor']),
      fontSize: 12,
      padding: EdgeInsets.symmetric(horizontal: 5),
      minWidth: btnItem['btnWidth']?.toDouble(),
      minHeight: btnItem['btnHeight']?.toDouble() + 5,
    ).marginOnly(left: 5);
  }
}