import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/DischargeReferralPatient.dart';
import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/material.dart';

import '../../routes.dart';



class ReferralDischargedPatientDetails extends StatelessWidget {
  final DischargeReferralPatient referredPatient;

  ReferralDischargedPatientDetails(this.referredPatient,);

  @override
  Widget build(BuildContext context) {
    return BaseView<PatientReferralViewModel>(
      builder: (_, model, w) => AppScaffold(
        baseViewModel: model,
        isShowAppBar: false,
        body: Container(
          child: Column(
            children: [
              Container(
                padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5),
                decoration: BoxDecoration(
                  color: Colors.white,
                ),
                child: Container(
                  padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
                  margin: EdgeInsets.only(top: 50),
                  child: Column(
                    children: [
                      Container(
                        padding: EdgeInsets.only(left: 12.0),
                        child: Row(children: [
                          IconButton(
                            icon: Icon(Icons.arrow_back_ios),
                            color: Colors.black, //Colors.black,
                            onPressed: () => Navigator.pop(context),
                          ),
                          Expanded(
                            child: AppText(
                              (Helpers.capitalize(
                                  "${referredPatient.firstName} ${referredPatient.lastName}")),
                              fontSize: SizeConfig.textMultiplier * 2.5,
                              fontWeight: FontWeight.bold,
                              fontFamily: 'Poppins',
                            ),
                          ),
                          referredPatient.gender == 1
                              ? Icon(
                                  DoctorApp.male_2,
                                  color: Colors.blue,
                                )
                              : Icon(
                                  DoctorApp.female_1,
                                  color: Colors.pink,
                                ),
                          InkWell(
                            onTap: () {
                              PatiantInformtion patient =
                              model.getPatientFromDischargeReferralPatient(referredPatient);
                              Navigator.of(context)
                                  .pushNamed(PATIENTS_PROFILE, arguments: {
                                "patient": patient,
                                "patientType": "1",
                                "isInpatient": true,
                                "arrivalType": "1",
                                "from": DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd'),
                                "to": DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd'),
                              });
                            },
                            child: Icon(
                              Icons.account_circle,
                              size: 25,
                            ),
                          )
                        ]),
                      ),

                      Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          //TODO from backend
                          // Padding(
                          //   padding: EdgeInsets.only(left: 12.0),
                          //   child: Container(
                          //     width: 60,
                          //     height: 60,
                          //     child: Image.network(
                          //         referredPatient.doctorImageURL
                          //     ),
                          //   ),
                          // ),
                          SizedBox(
                            width: 10,
                          ),
                          Expanded(
                            child: Column(
                              children: [
                                Row(
                                  mainAxisAlignment:
                                      MainAxisAlignment.spaceBetween,
                                  children: [
                                    AppText(
                                      "${model.getReferralStatusNameByCode(referredPatient.referralStatus, context)}",
                                      fontFamily: 'Poppins',
                                      fontSize: 1.9 * SizeConfig.textMultiplier,
                                      fontWeight: FontWeight.w700,
                                      color: referredPatient.referralStatus == 1
                                          ? Color(0xffc4aa54)
                                          : referredPatient.referralStatus == 46
                                              ? Colors.green[700]
                                              : Colors.red[700],
                                    ),
                                    AppText(
                                      DateUtils.getDayMonthYearDateFormatted(referredPatient.referralDate,),
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 2.0 * SizeConfig.textMultiplier,
                                      color: Color(0XFF28353E),
                                    )
                                  ],
                                ),

                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      "Admission Date: ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        DateUtils.convertDateFromServerFormat(
                                            referredPatient.admissionDate,
                                            "dd MMM,yyyy"),
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),
                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      "Discharge Date: ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        DateUtils.convertDateFromServerFormat(
                                            referredPatient.dischargeDate,
                                            "dd MMM,yyyy"),
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),
                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      "Number of Days: ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        DateUtils.convertDateFromServerFormat(
                                            referredPatient.dischargeDate,
                                            "dd MMM,yyyy"),
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),
                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      "Referring Doctor ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        referredPatient.referringDoctorName,
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),

                                Row(
                                  mainAxisAlignment:
                                  MainAxisAlignment.spaceBetween,
                                  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(
                                          "${referredPatient.patientID}",
                                          fontFamily: 'Poppins',
                                          fontWeight: FontWeight.w700,
                                          fontSize:
                                          1.8 * SizeConfig.textMultiplier,
                                          color: Color(0XFF2E303A),
                                        ),
                                      ],
                                    ),

                                  ],
                                ),
                                Row(
                                  mainAxisAlignment:
                                  MainAxisAlignment.spaceBetween,
                                  crossAxisAlignment: CrossAxisAlignment.center,
                                  children: [
                                    Expanded(
                                      child: Column(
                                        children: [
                                          Row(
                                            mainAxisAlignment:
                                            MainAxisAlignment.start,
                                            children: [
                                              AppText(
                                                "${TranslationBase.of(context).refClinic}: ",
                                                fontFamily: 'Poppins',
                                                fontWeight: FontWeight.w600,
                                                fontSize: 1.7 *
                                                    SizeConfig.textMultiplier,
                                                color: Color(0XFF575757),
                                              ),
                                              AppText(
                                                referredPatient
                                                    .referringClinicDescription,
                                                fontFamily: 'Poppins',
                                                fontWeight: FontWeight.w700,
                                                fontSize: 1.8 *
                                                    SizeConfig.textMultiplier,
                                                color: Color(0XFF2E303A),
                                              ),
                                            ],
                                          ),
                                          Row(
                                            mainAxisAlignment:
                                            MainAxisAlignment.start,
                                            crossAxisAlignment:
                                            CrossAxisAlignment.start,
                                            children: [
                                              AppText(
                                                TranslationBase.of(context)
                                                    .frequency +
                                                    ": ",
                                                fontFamily: 'Poppins',
                                                fontWeight: FontWeight.w600,
                                                fontSize: 1.7 *
                                                    SizeConfig.textMultiplier,
                                                color: Color(0XFF575757),
                                              ),
                                              Expanded(
                                                child: AppText(
                                                  referredPatient
                                                      .frequencyDescription,
                                                  fontFamily: 'Poppins',
                                                  fontWeight: FontWeight.w700,
                                                  fontSize: 1.8 *
                                                      SizeConfig.textMultiplier,
                                                  color: Color(0XFF2E303A),
                                                ),
                                              ),
                                            ],
                                          ),
                                        ],
                                      ),
                                    ),
                                  ],
                                ),
                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      TranslationBase.of(context).priority +
                                          ": ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        referredPatient.priorityDescription,
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),

                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      "Referring Clinic ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        referredPatient.referringClinicDescription,
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),
                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      "Frequency ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        referredPatient.frequency.toString(),
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),

                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      "Priority ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        referredPatient.frequency.toString(),
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                        1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),



                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    AppText(
                                      TranslationBase.of(context)
                                              .maxResponseTime +
                                          ": ",
                                      fontFamily: 'Poppins',
                                      fontWeight: FontWeight.w600,
                                      fontSize: 1.7 * SizeConfig.textMultiplier,
                                      color: Color(0XFF575757),
                                    ),
                                    Expanded(
                                      child: AppText(
                                        DateUtils.convertDateFromServerFormat(
                                            referredPatient.mAXResponseTime,
                                            "dd MMM,yyyy"),
                                        fontFamily: 'Poppins',
                                        fontWeight: FontWeight.w700,
                                        fontSize:
                                            1.8 * SizeConfig.textMultiplier,
                                        color: Color(0XFF2E303A),
                                      ),
                                    ),
                                  ],
                                ),
                                Row(
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    Container(
                                      margin:
                                          EdgeInsets.only(left: 10, right: 0),
                                      child: Image.asset(
                                        'assets/images/patient/ic_ref_arrow_left.png',
                                        height: 50,
                                        width: 30,
                                      ),
                                    ),
                                 //TODO from backend
                                 //    Container(
                                 //      margin: EdgeInsets.only(
                                 //          left: 0,
                                 //          top: 25,
                                 //          right: 0,
                                 //          bottom: 0),
                                 //      padding: EdgeInsets.only(
                                 //          left: 4.0, right: 4.0),
                                 //      child: referredPatient.doctorImageURL !=
                                 //              null
                                 //          ? ClipRRect(
                                 //              borderRadius:
                                 //                  BorderRadius.circular(20.0),
                                 //              child: Image.network(
                                 //                referredPatient.doctorImageURL,
                                 //                height: 25,
                                 //                width: 30,
                                 //                errorBuilder:
                                 //                    (BuildContext context,
                                 //                        Object exception,
                                 //                        StackTrace stackTrace) {
                                 //                  return Text('No Image');
                                 //                },
                                 //              ))
                                 //          : Container(
                                 //              child: Image.asset(
                                 //                referredPatient.gender == 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: 30,
                                            right: 10,
                                            bottom: 0),
                                        child: Column(
                                          crossAxisAlignment:
                                              CrossAxisAlignment.start,
                                          children: [
                                            AppText(
                                              "Dr ${referredPatient.referringDoctorName}",
                                              fontFamily: 'Poppins',
                                              fontWeight: FontWeight.w800,
                                              fontSize: 1.5 *
                                                  SizeConfig.textMultiplier,
                                              color: Colors.black,
                                            ),
                                            AppText(
                                              referredPatient
                                                  .referringClinicDescription,
                                              fontFamily: 'Poppins',
                                              fontWeight: FontWeight.w700,
                                              fontSize: 1.3 *
                                                  SizeConfig.textMultiplier,
                                              color: Color(0XFF2E303A),
                                            ),
                                          ],
                                        ),
                                      ),
                                    ),
                                  ],
                                ),
                              ],
                            ),
                          ),
                        ],
                      ),
                    ],
                  ),
                ),
              ),
              Expanded(
                child: SingleChildScrollView(
                  child: Container(
                    width: double.infinity,
                    margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
                    padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
                    decoration: BoxDecoration(
                      color: Colors.white,
                      shape: BoxShape.rectangle,
                      borderRadius: BorderRadius.all(Radius.circular(8)),
                      border: Border.fromBorderSide(BorderSide(
                        color: Colors.white,
                        width: 1.0,
                      )),
                    ),
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        AppText(
                          TranslationBase.of(context).remarks,
                          fontFamily: 'Poppins',
                          fontWeight: FontWeight.w700,
                          fontSize: 2.4 * SizeConfig.textMultiplier,
                          color: Color(0XFF2E303A),
                        ),
                        AppText(
                          referredPatient.referringDoctorRemarks,
                          fontFamily: 'Poppins',
                          fontWeight: FontWeight.w600,
                          fontSize: 1.8 * SizeConfig.textMultiplier,
                          color: Color(0XFF2E303A),
                        ),
                        SizedBox(
                          height: 8,
                        ),

                      ],
                    ),
                  ),
                ),
              ),

            ],
          ),
        ),
      ),
    );
  }
}
