import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/core/app_export.dart';
import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/utils/date_util.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/lab/models/resp_models/patient_lab_orders_response_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart';
import 'package:hmg_patient_app_new/widgets/chip/app_custom_chip_widget.dart';
import 'dart:ui' as ui;

class LabOrderByTest extends StatelessWidget {
  final VoidCallback onTap;
  final int index;
  final TestDetails? tests;
  final bool isLoading;
  final bool isExpanded;
  final AppState appState;

  const LabOrderByTest({super.key, required this.onTap, required this.appState, this.tests, required this.index, this.isLoading = false, this.isExpanded = false});

  @override
  build(BuildContext context) {
    return AnimatedContainer(
      key:key,
        duration: Duration(milliseconds: 300),
        curve: Curves.easeInOut,
        margin: EdgeInsets.symmetric(vertical: 8.h),
        decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 20.h, hasShadow: true),
        child: Container(
          key: ValueKey<int>(index),
          padding: EdgeInsets.symmetric(horizontal: 16.h, vertical: 8.h),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              '${tests!.description}'.toText16(isBold: true, isEnglishOnly: true),
              SizedBox(height: 4.h),
              (appState.isArabic() ? tests!.testDescriptionAr : tests!.testDescriptionEn)!.toText12(isBold: true),
              SizedBox(height: 8.h),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  AppCustomChipWidget(
                    richText: Row(
                      children: [
                        "${LocaleKeys.lastTested.tr(context: context)}: ".toText12(isBold: true),
                        Directionality(
                            textDirection: ui.TextDirection.ltr,child: DateUtil.formatDateToDate(DateUtil.convertStringToDate(tests!.createdOn), false).toText12(isBold: true, isEnglishOnly: true))
                      ],
                    ),
                    backgroundColor: AppColors.greyLightColor,
                    textColor: AppColors.textColor,
                  ),
                ],
              ),
              SizedBox(height: 16.h),
              Row(
                children: [
                  Expanded(child: Container()),
                  Expanded(
                    child: CustomButton(
                      icon: AppAssets.view_report_icon,
                      iconColor: AppColors.primaryRedColor,
                      iconSize: 16.h,
                      text: LocaleKeys.viewResults.tr(context: context),
                      onPressed: () {
                        onTap();
                      },
                      backgroundColor: AppColors.secondaryLightRedColor,
                      borderColor: AppColors.secondaryLightRedColor,
                      textColor: AppColors.primaryRedColor,
                      fontSize: 14.f,
                      fontWeight: FontWeight.w600,
                      borderRadius: 12,
                      padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
                      height: 40.h,
                    ),
                  ),
                ],
              ),
            ],
          ),
        ));
  }
}
