import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/sick_leave_patient_model.dart';
import 'package:doctor_app_flutter/core/viewModel/sick_leave_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/sickleave/get_all_sickleave_response.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/sick-leave/sick_leave.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.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:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';

class AddSickLeavScreen extends StatelessWidget {
  PatiantInformtion patient;
  @override
  Widget build(BuildContext context) {
    final routeArgs = ModalRoute.of(context).settings.arguments as Map;
    patient = routeArgs['patient'];
    return BaseView<SickLeaveViewModel>(
        onModelReady: (model) =>
            model.getSickLeavePatient(patient.patientMRN ?? patient.patientId),
        builder: (_, model, w) => AppScaffold(
            baseViewModel: model,
            isShowAppBar: true,
            backgroundColor: Colors.grey[100],
            appBar: PatientProfileHeaderNewDesignAppBar(
              patient,
              routeArgs['patientType'] ?? "0",
              routeArgs['arrivalType'] ?? "0",
            ),
            body: SingleChildScrollView(
                child: Column(children: [
              // PatientProfileHeaderNewDesign(
              //     patient, routeArgs['patientType'], routeArgs['arrivalType']),
              patient.patientStatusType == 43
                  ? Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Padding(
                            padding: EdgeInsets.all(10),
                            child: Column(
                              crossAxisAlignment: CrossAxisAlignment.start,
                              children: [
                                AppText(
                                  TranslationBase.of(context).patient,
                                  fontWeight: FontWeight.bold,
                                ),
                                AppText(
                                  TranslationBase.of(context).sickLeave,
                                  fontSize: 24,
                                  fontWeight: FontWeight.bold,
                                ),
                              ],
                            )),
                        Container(
                            width: SizeConfig.screenWidth,
                            margin: EdgeInsets.only(
                                left: 20, right: 20, top: 10, bottom: 10),
                            padding: EdgeInsets.all(20),
                            decoration: BoxDecoration(
                                borderRadius: BorderRadius.circular(10),
                                color: HexColor('#EAEAEA')),
                            child: Column(
                              mainAxisAlignment: MainAxisAlignment.start,
                              children: [
                                Container(
                                    child: Container(
                                  decoration: BoxDecoration(
                                      color: Colors.grey,
                                      borderRadius: BorderRadius.circular(10)),
                                  padding: EdgeInsets.all(3),
                                  child: IconButton(
                                      icon: Icon(
                                        Icons.add,
                                        size: 35,
                                        color: Colors.white,
                                      ),
                                      onPressed: () {
                                        openSickLeave(
                                          context,
                                          false,
                                        );
                                      }),
                                )),
                                Padding(
                                  child: AppText(
                                      TranslationBase.of(context)
                                          .noSickLeaveApplied,
                                      fontWeight: FontWeight.bold,
                                      fontFamily: 'Poppins',
                                      fontSize: 16,
                                      textAlign: TextAlign.center,
                                      color: HexColor('#7E7E7E')),
                                  padding: EdgeInsets.all(10),
                                ),
                              ],
                            )),
                      ],
                    )
                  : SizedBox(),
              model.getAllSIckLeavePatient.length > 0
                  ? Column(
                      children: model.getAllSIckLeavePatient
                          .map<Widget>((SickLeavePatientModel item) {
                        return RoundedContainer(
                            margin: EdgeInsets.all(10),
                            child: Column(
                              children: [
                                Container(
                                    // decoration: BoxDecoration(
                                    //     border: Border(
                                    //         left: BorderSide(
                                    //   // color: item.status == 1
                                    //   //     ? Colors.yellow[800]
                                    //   //     : item.status == 2
                                    //   //         ? Colors.green
                                    //   //         : Colors.black,
                                    //   color: Colors.red,
                                    //   width: 5.0,
                                    // ))),
                                    padding: EdgeInsets.all(10),
                                    child: Row(
                                      mainAxisAlignment:
                                          MainAxisAlignment.start,
                                      children: <Widget>[
                                        Expanded(
                                          flex: 4,
                                          child: Wrap(
                                            // mainAxisAlignment:
                                            //     MainAxisAlignment.start,
                                            children: <Widget>[
                                              Column(
                                                crossAxisAlignment:
                                                    CrossAxisAlignment.start,
                                                children: <Widget>[
                                                  Container(
                                                    padding: EdgeInsets.all(3),
                                                    child: AppText(
                                                      item.doctorName,
                                                      // item.status == 1
                                                      //     ? TranslationBase.of(
                                                      //             context)
                                                      //         .hold
                                                      //     : item.status == 2
                                                      //         ? TranslationBase
                                                      //                 .of(
                                                      //                     context)
                                                      //             .active
                                                      //         : TranslationBase
                                                      //                 .of(context)
                                                      //             .all,
                                                      fontWeight:
                                                          FontWeight.bold,
                                                      // color: item.status == 1
                                                      //     ? Colors.yellow[800]
                                                      //     : item.status == 2
                                                      //         ? Colors.green
                                                      //         : Colors.black,
                                                      color: Colors.red,
                                                    ),
                                                  ),
                                                  Row(
                                                    children: [
                                                      AppText(TranslationBase
                                                                  .of(context)
                                                              .daysSickleave +
                                                          ": "),
                                                      AppText(
                                                        item.sickLeaveDays
                                                            .toString(),
                                                        fontWeight:
                                                            FontWeight.bold,
                                                      ),
                                                    ],
                                                  ),
                                                  Row(
                                                    children: [
                                                      AppText(
                                                        TranslationBase.of(
                                                                    context)
                                                                .startDate +
                                                            ' ',
                                                      ),
                                                      Flexible(
                                                        child: AppText(
                                                          DateUtils.getDayMonthYearDateFormatted(DateUtils
                                                              .convertStringToDate(
                                                              item.startDate)),
                                                          fontWeight:
                                                              FontWeight.bold,
                                                        ),
                                                      )
                                                    ],
                                                  ),
                                                  Row(
                                                    children: [
                                                      AppText(
                                                        TranslationBase.of(
                                                                    context)
                                                                .endDate +
                                                            ' ',
                                                      ),
                                                      Flexible(
                                                        child: AppText(
                                                          DateUtils.getDayMonthYearDateFormatted(DateUtils
                                                              .convertStringToDate(
                                                            item.endDate,
                                                          )),
                                                          fontWeight:
                                                              FontWeight.bold,
                                                        ),
                                                      )
                                                    ],
                                                  ),
                                                  Row(children: [
                                                    AppText(TranslationBase.of(
                                                                context)
                                                            .branch +
                                                        ": "),
                                                    AppText(
                                                      item.projectName ?? "",
                                                    ),
                                                  ]),
                                                  Row(children: [
                                                    AppText(TranslationBase.of(
                                                                context)
                                                            .clinic +
                                                        ": "),
                                                    AppText(
                                                      item.clinicName ?? "",
                                                    ),
                                                  ]),
                                                ],
                                              ),
                                              SizedBox(
                                                width: 20,
                                              ),
                                            ],
                                          ),
                                        ),
                                      ],
                                    )),
                              ],
                            ));
                      }).toList(),
                    )
                  : patient.patientStatusType != 43
                      ? Center(
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.center,
                            children: [
                              SizedBox(
                                height: 100,
                              ),
                              Image.asset('assets/images/no-data.png'),
                              Padding(
                                padding: const EdgeInsets.all(8.0),
                                child: AppText(
                                    TranslationBase.of(context).noSickLeave),
                              )
                            ],
                          ),
                        )
                      : SizedBox()
            ]))));
  }

  openSickLeave(BuildContext context, isExtend,
      {GetAllSickLeaveResponse extendedData}) {
    // showModalBottomSheet(
    //     context: context,
    //     builder: (context) {
    //       return new Container(
    //           child:
    Navigator.push(
        context,
        FadePage(
            page: SickLeaveScreen(
                appointmentNo: isExtend == true
                    ? extendedData.appointmentNo
                    : patient.appointmentNo, //extendedData.appointmentNo,
                patientMRN: isExtend == true
                    ? extendedData.patientMRN
                    : patient.patientMRN,
                isExtended: isExtend,
                extendedData: extendedData,
                patient: patient)));
  }
}
