import 'package:doctor_app_flutter/core/model/Prescriptions/Prescriptions.dart';
import 'package:doctor_app_flutter/core/viewModel/prescriptions_view_model.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/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_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/dialogs/ShowImageDialog.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class PrescriptionItemsPage extends StatelessWidget {
  final Prescriptions prescriptions;
  final PatiantInformtion patient;
  final String patientType;
  final String arrivalType;
  PrescriptionItemsPage({Key key, this.prescriptions, this.patient, this.patientType, this.arrivalType});

  @override
  Widget build(BuildContext context) {
    return BaseView<PrescriptionsViewModel>(
      onModelReady: (model) =>
          model.getPrescriptionReport(prescriptions: prescriptions,patient: patient),
      builder: (_, model, widget) => AppScaffold(
        isShowAppBar: true,
        backgroundColor: Colors.grey[100],
        baseViewModel: model,
        appBar: PatientProfileHeaderWhitAppointmentAppBar(
          patient: patient,
          patientType: patientType??"0",
          arrivalType: arrivalType??"0",
          clinic: prescriptions.clinicDescription,
          branch: prescriptions.name,
          isPrescriptions: true,
          appointmentDate: DateUtils.getDateTimeFromServerFormat(prescriptions.appointmentDate),
          doctorName: prescriptions.doctorName,
          profileUrl: prescriptions.doctorImageURL,
        ),
        body: SingleChildScrollView(
          child: Container(
            child: Column(
              children: [

                if (!prescriptions.isInOutPatient)
                  ...List.generate(
                      model.prescriptionReportList.length,
                          (index) => Container(
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.circular(12),
                              color: Colors.white,
                            ),
                            margin: EdgeInsets.all(12),
                            child: Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: [
                                  Container(
                                      margin: EdgeInsets.only(left: 18,right: 18),
                                      child: AppText(model.prescriptionReportList[index].itemDescription.isNotEmpty ? model.prescriptionReportList[index].itemDescription : model.prescriptionReportList[index].itemDescriptionN,bold: true,)),
                                  SizedBox(height: 12,),
                                  Row(
                                    children: [
                                      SizedBox(width: 18,),
                                      Container(
                                        decoration: BoxDecoration(
                                            shape: BoxShape.circle,
                                            border: Border.all(width: 0.5,color: Colors.grey)
                                        ),
                                        height: 55,
                                        width: 55,
                                        child: InkWell(
                                          onTap: (){
                                            showDialog(
                                                context: context,
                                                child: ShowImageDialog(
                                                  imageUrl: model.prescriptionReportEnhList[index].imageSRCUrl,
                                                )
                                            );
                                          },
                                          child: Padding(
                                            padding: const EdgeInsets.all(8.0),
                                            child: Image.network(
                                              model.prescriptionReportList[index].imageSRCUrl,
                                              fit: BoxFit.cover,
                                            ),
                                          ),
                                        ),
                                      ),
                                      SizedBox(width: 10,),
                                      Expanded(child: Column(
                                        crossAxisAlignment: CrossAxisAlignment.start,
                                        children: [
                                          Row(
                                            children: [
                                              AppText(TranslationBase.of(context).route,color: Colors.grey,),
                                              Expanded(child: AppText(" "+model.prescriptionReportList[index].routeN)),
                                            ],
                                          ),
                                          Row(
                                            children: [
                                              AppText(TranslationBase.of(context).frequency,color: Colors.grey,),
                                              AppText(" "+model.prescriptionReportList[index].frequencyN ?? ''),
                                            ],
                                          ),
                                          Row(
                                            children: [
                                              AppText(TranslationBase.of(context).dailyDoses,color: Colors.grey,),
                                              AppText(" "+model.prescriptionReportList[index].doseDailyQuantity ?? ''),
                                            ],
                                          ),
                                          Row(
                                            children: [
                                              AppText(TranslationBase.of(context).duration,color: Colors.grey,),
                                              AppText(" "+model.prescriptionReportList[index].days.toString() ?? ''),
                                            ],
                                          ),
                                          SizedBox(height: 12,),
                                          AppText(model.prescriptionReportList[index].remarks ?? ''),
                                        ],
                                      ),)


                                    ],
                                  )
                                ],
                              ),
                            ),
                          ))

                else
                ...List.generate(
                  model.prescriptionReportEnhList.length,
                      (index) => Container(
                        decoration: BoxDecoration(
                          borderRadius: BorderRadius.circular(12),
                          color: Colors.white,
                        ),
                        margin: EdgeInsets.all(12),
                        child: Padding(
                          padding: const EdgeInsets.all(8.0),
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              Container(
                                  margin: EdgeInsets.only(left: 18,right: 18),
                                  child: AppText(model.prescriptionReportEnhList[index].itemDescription,bold: true,),),
                              SizedBox(height: 12,),
                              Row(
                                mainAxisAlignment: MainAxisAlignment.start,
                                crossAxisAlignment: CrossAxisAlignment.center,
                                children: [
                                  SizedBox(width: 18,),
                                  Container(
                                    decoration: BoxDecoration(
                                        shape: BoxShape.circle,
                                        border: Border.all(width: 0.5,color: Colors.grey)
                                    ),
                                    height: 55,
                                    width: 55,
                                    child: InkWell(
                                      onTap: (){
                                        showDialog(
                                          context: context,
                                          child: ShowImageDialog(
                                            imageUrl: model.prescriptionReportEnhList[index].imageSRCUrl,
                                          )
                                        );
                                      },
                                      child: Padding(
                                        padding: const EdgeInsets.all(8.0),
                                        child: Image.network(
                                          model.prescriptionReportEnhList[index].imageSRCUrl,
                                          fit: BoxFit.cover,

                                        ),
                                      ),
                                    ),
                                  ),
                                  SizedBox(width: 10,),
                                  Expanded(child: Column(
                                    crossAxisAlignment: CrossAxisAlignment.start,
                                    children: [
                                      Row(
                                        children: [
                                          AppText(TranslationBase.of(context).route,color: Colors.grey,),
                                          Expanded(child: AppText(" "+model.prescriptionReportEnhList[index].route??'')),
                                        ],
                                      ),
                                      Row(
                                        children: [
                                          AppText(TranslationBase.of(context).frequency,color: Colors.grey,),
                                          AppText(" "+model.prescriptionReportEnhList[index].frequency ?? ''),
                                        ],
                                      ),
                                      Row(
                                        children: [
                                          AppText(TranslationBase.of(context).dailyDoses,color: Colors.grey,),
                                          AppText(" "+model.prescriptionReportEnhList[index].doseDailyQuantity.toString() ?? ''),
                                        ],
                                      ),
                                      Row(
                                        children: [
                                          AppText(TranslationBase.of(context).duration,color: Colors.grey,),
                                          AppText(" "+model.prescriptionReportList[index].days.toString() ?? ''),
                                        ],
                                      ),
                                      SizedBox(height: 12,),
                                      AppText(model.prescriptionReportEnhList[index].remarks?? ''),
                                    ],
                                  ),)


                                ],
                              )
                            ],
                          ),
                        ),
                      ),
                ),



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



