import 'package:doctor_app_flutter/core/model/Prescriptions/get_medication_for_inpatient_model.dart';
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_in_patient.dart';
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_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-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:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

class PrescriptionItemsInPatientPage extends StatelessWidget {
  final GetMedicationForInPatientModel prescriptions;
  final PatiantInformtion patient;
  final String patientType;
  final String arrivalType;
  final DateTime startOn;
  final DateTime stopOn;
  final int prescriptionIndex;

  PrescriptionItemsInPatientPage(
      {Key key,
      this.prescriptions,
      this.patient,
      this.patientType,
      this.arrivalType,
      this.stopOn,
      this.startOn,
      this.prescriptionIndex});

  @override
  Widget build(BuildContext context) {
    ProjectViewModel projectViewModel = Provider.of(context);
    return BaseView<PrescriptionViewModel>(
      onModelReady: (model) async {
        if (model.medicationForInPatient.length == 0) {
          await model.getMedicationForInPatient(patient);
        }
      },
      builder: (_, model, widget) => AppScaffold(
        isShowAppBar: true,
        backgroundColor: Colors.grey[100],
        baseViewModel: model,
        appBar: PatientProfileAppBar(patient),
        body: SingleChildScrollView(
          child: Container(
            child: Column(
              children: [
                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(
                            prescriptions.pHRItemDescription,
                            bold: true,
                          ),
                        ),
                        SizedBox(
                          height: 12,
                        ),
                        Row(
                          mainAxisAlignment: MainAxisAlignment.start,
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: [
                            SizedBox(
                              width: 18,
                            ),
                            SizedBox(
                              width: 10,
                            ),
                            Expanded(
                              child: Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: [
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).direction,
                                        color: Colors.grey,
                                      ),
                                      Expanded(
                                          child: AppText(" " + prescriptions.directionDescription.toString() ?? '')),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).route,
                                        color: Colors.grey,
                                      ),
                                      AppText(" " + prescriptions.routeDescription.toString() ?? ''),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).refill,
                                        color: Colors.grey,
                                      ),
                                      Expanded(child: AppText(" " + prescriptions.refillDescription.toString() ?? '')),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).startDate,
                                        color: Colors.grey,
                                      ),
                                      Expanded(
                                        child: AppText(
                                          '${AppDateUtils.getDayMonthYearDateFormatted(startOn, isArabic: projectViewModel.isArabic)}',
                                          color: Colors.black,
                                          fontWeight: FontWeight.w600,
                                          fontSize: 14,
                                        ),
                                      ),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).stopDate,
                                        color: Colors.grey,
                                      ),
                                      Expanded(
                                        child: AppText(
                                          '${AppDateUtils.getDayMonthYearDateFormatted(stopOn, isArabic: projectViewModel.isArabic)}',
                                          color: Colors.black,
                                          fontWeight: FontWeight.w600,
                                          fontSize: 14,
                                        ),
                                      ),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        'UOM',
                                        color: Colors.grey,
                                      ),
                                      AppText(" " + prescriptions.uomDescription.toString() ?? ''),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).dailyDoses,
                                        color: Colors.grey,
                                      ),
                                      AppText(" " + prescriptions.dose.toString() ?? ''),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).status,
                                        color: Colors.grey,
                                      ),
                                      AppText(" " + prescriptions.statusDescription.toString() ?? ''),
                                    ],
                                  ),
                                  Row(
                                    children: [
                                      AppText(
                                        TranslationBase.of(context).processed,
                                        color: Colors.grey,
                                      ),
                                      AppText(" " + prescriptions.doctorName.toString() ?? ''),
                                    ],
                                  ),
                                  // Row(
                                  //   children: [
                                  //     AppText(
                                  //       TranslationBase.of(context).num,
                                  //       color: Colors.grey,
                                  //     ),
                                  //     AppText(" " + prescriptions.dose.toString() ?? ''),
                                  //   ],
                                  // ),
                                  SizedBox(
                                    height: 12,
                                  ),
                                  AppText(prescriptions.comments ?? ''),
                                ],
                              ),
                            )
                          ],
                        )
                      ],
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
