import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

class PatientReferralItemWidget extends StatelessWidget {
  final String referralStatus;
  final int referralStatusCode;
  final String patientName;
  final int patientGender;
  final String referredDate;
  final String referredTime;
  final String patientID;
  final isSameBranch;
  final bool isReferral;
  final bool isReferralClinic;
  final String referralClinic;
  final String remark;
  final String nationality;
  final String nationalityFlag;
  final String doctorAvatar;
  final String referralDoctorName;
  final String clinicDescription;
  final Widget infoIcon;

  PatientReferralItemWidget(
      {this.referralStatus,
      this.referralStatusCode,
      this.patientName,
      this.patientGender,
      this.referredDate,
      this.referredTime,
      this.patientID,
      this.isSameBranch,
      this.isReferral,
      this.remark,
      this.nationality,
      this.nationalityFlag,
      this.doctorAvatar,
      this.referralDoctorName,
      this.clinicDescription,
      this.infoIcon,this.isReferralClinic=false,this.referralClinic});

  @override
  Widget build(BuildContext context) {
    ProjectViewModel projectViewModel = Provider.of(context);

    return Container(
      margin: EdgeInsets.only(left: 16.0, right: 16.0, top: 8.0),
      child: Column(
        children: [
          Container(
            child: CardWithBgWidget(
              bgColor: referralStatusCode == 1
                  ? Color(0xffc4aa54)
                  : referralStatusCode == 46
                      ? Colors.green[700]
                      : Colors.red[700],
              hasBorder: false,
              widget: Container(
                  // padding: EdgeInsets.only(left: 20, right: 0, bottom: 0),
                  child: InkWell(
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        AppText(
                          referralStatus != null ? referralStatus : "",
                          fontFamily: 'Poppins',
                          fontSize: 1.9 * SizeConfig.textMultiplier,
                          fontWeight: FontWeight.w700,
                          color: referralStatusCode == 1
                              ? Color(0xffc4aa54)
                              : referralStatusCode == 46
                                  ? Colors.green[700]
                                  : Colors.red[700],
                        ),
                        AppText(
                          referredDate,
                          fontFamily: 'Poppins',
                          fontWeight: FontWeight.w600,
                          fontSize: 2.0 * SizeConfig.textMultiplier,
                          color: Color(0XFF28353E),
                        )
                      ],
                    ),
                    Row(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Expanded(
                          child: AppText(
                            patientName,
                            fontSize: SizeConfig.textMultiplier * 2.2,
                            fontWeight: FontWeight.bold,
                            color: Colors.black,
                            fontFamily: 'Poppins',
                          ),
                        ),
                        SizedBox(
                          width: 4,
                        ),
                        patientGender == 1
                            ? Icon(
                                DoctorApp.male_2,
                                color: Colors.blue,
                              )
                            : Icon(
                                DoctorApp.female_1,
                                color: Colors.pink,
                              ),
                        SizedBox(
                          width: 4,
                        ),
                        AppText(
                          referredTime,
                          fontFamily: 'Poppins',
                          fontWeight: FontWeight.w600,
                          fontSize: 1.8 * SizeConfig.textMultiplier,
                          color: Color(0XFF575757),
                        )
                      ],
                    ),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      crossAxisAlignment: CrossAxisAlignment.center,
                      children: [
                        Expanded(
                          child: Column(
                            children: [
                              Row(
                                mainAxisAlignment: MainAxisAlignment.start,
                                children: [
                                  AppText(
                                    TranslationBase.of(context).fileNumber,
                                    fontFamily: 'Poppins',
                                    fontWeight: FontWeight.w600,
                                    fontSize: 1.7 * SizeConfig.textMultiplier,
                                    color: Color(0XFF575757),
                                  ),
                                  AppText(
                                    patientID,
                                    fontFamily: 'Poppins',
                                    fontWeight: FontWeight.w700,
                                    fontSize: 1.8 * SizeConfig.textMultiplier,
                                    color: Color(0XFF2E303A),
                                  ),
                                ],
                              ),
                              Row(
                                mainAxisAlignment: MainAxisAlignment.start,
                                children: [
                                  AppText(
                                    isSameBranch ? TranslationBase.of(context).referredFrom :TranslationBase.of(context).refClinic,
                                    fontFamily: 'Poppins',
                                    fontWeight: FontWeight.w600,
                                    fontSize: 1.7 * SizeConfig.textMultiplier,
                                    color: Color(0XFF575757),
                                  ),

                                  AppText(
                                    !isReferralClinic? isSameBranch ? TranslationBase.of(context).sameBranch : TranslationBase.of(context).otherBranch: " "+referralClinic,
                                    fontFamily: 'Poppins',
                                    fontWeight: FontWeight.w700,
                                    fontSize: 1.8 * SizeConfig.textMultiplier,
                                    color: Color(0XFF2E303A),
                                  ),
                                ],
                              ),
                            ],
                          ),
                        ),
                        Row(
                          children: [
                            AppText(
                              nationality != null ? nationality : "",
                              fontWeight: FontWeight.bold,
                              color: Color(0xFF2E303A),
                              fontSize: 1.4 * SizeConfig.textMultiplier,
                            ),
                            nationalityFlag != null
                                ? ClipRRect(
                                    borderRadius: BorderRadius.circular(20.0),
                                    child: Image.network(
                                      nationalityFlag,
                                      height: 25,
                                      width: 30,
                                      errorBuilder: (BuildContext context,
                                          Object exception,
                                          StackTrace stackTrace) {
                                        return Text('No Image');
                                      },
                                    ))
                                : SizedBox()
                          ],
                        )
                      ],
                    ),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.start,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        AppText(
                          TranslationBase.of(context).remarks + " : ",
                          fontFamily: 'Poppins',
                          fontWeight: FontWeight.w600,
                          fontSize: 1.7 * SizeConfig.textMultiplier,
                          color: Color(0XFF575757),
                        ),
                        Expanded(
                          child: AppText(
                            remark,
                            fontFamily: 'Poppins',
                            fontWeight: FontWeight.w700,
                            fontSize: 1.8 * SizeConfig.textMultiplier,
                            color: Color(0XFF2E303A),
                            maxLines: 1,
                          ),
                        ),
                      ],
                    ),
                    Row(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Container(
                          margin: EdgeInsets.only(left: 10, right: 0),
                          child: Image.asset(
                            isReferral
                                ? 'assets/images/patient/ic_ref_arrow_up.png'
                                : 'assets/images/patient/ic_ref_arrow_left.png',
                            height: 50,
                            width: 30,
                          ),
                        ),
                        Container(
                          margin: EdgeInsets.only(
                              left: 0, top: 25, right: 0, bottom: 0),
                          padding: EdgeInsets.only(left: 4.0, right: 4.0),
                          child: Container(
                            width: 40,
                            height: 40,
                            child: doctorAvatar != null
                                ? ClipRRect(
                                    borderRadius: BorderRadius.circular(20.0),
                                    child: Image.network(
                                      doctorAvatar,
                                      height: 25,
                                      width: 30,
                                      errorBuilder: (BuildContext context,
                                          Object exception,
                                          StackTrace stackTrace) {
                                        return Text('No Image');
                                      },
                                    ))
                                : Container(
                              child: Image.asset(
                                patientGender == 1
                                    ? 'assets/images/male_avatar.png'
                                    : 'assets/images/female_avatar.png',
                                fit: BoxFit.cover,
                              ),
                            ),
                          ),
                        ),
                        Expanded(
                          flex: 4,
                          child: Container(
                            margin: EdgeInsets.only(
                                left: 10, top: 25, right: 10, bottom: 0),
                            child: Column(
                              crossAxisAlignment: CrossAxisAlignment.start,
                              children: [
                                AppText(
                                  referralDoctorName,
                                  fontFamily: 'Poppins',
                                  fontWeight: FontWeight.w800,
                                  fontSize: 1.7 * SizeConfig.textMultiplier,
                                  color: Colors.black,
                                ),
                                if (clinicDescription != null)
                                  AppText(
                                    clinicDescription,
                                    fontFamily: 'Poppins',
                                    fontWeight: FontWeight.w700,
                                    fontSize: 1.4 * SizeConfig.textMultiplier,
                                    color: Color(0XFF2E303A),
                                  ),
                              ],
                            ),
                          ),
                        ),
                      ],
                    ),
                    Container(
                        width: double.infinity,
                        alignment: Alignment.centerRight,
                        child: infoIcon ?? Container())
                  ],
                ),
                // onTap: onTap,
              )),
            ),
          ),
        ],
      ),
    );
  }
}
