import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/patients/profile/profile_screen/PatientProfileCardModel.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/PatientProfileButton.dart';
import 'package:flutter/material.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';

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

class ProfileGridForSearch extends StatelessWidget {
  final PatiantInformtion patient;
  final String patientType;
  final String arrivalType;
  final double height;
  final bool isInpatient;
  String from;
  String to;

   ProfileGridForSearch(
      {Key key,
      this.patient,
      this.patientType,
      this.arrivalType,
      this.height,
      this.isInpatient, this.from,this.to})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    final List<PatientProfileCardModel> cardsList = [
      PatientProfileCardModel(
          TranslationBase.of(context).vital,
          TranslationBase.of(context).signs,
          VITAL_SIGN_DETAILS,
          'patient/vital_signs.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).lab,
          TranslationBase.of(context).result,
          LAB_RESULT,
          'patient/lab_results.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).radiology,
          TranslationBase.of(context).service,
          RADIOLOGY_PATIENT,
          'patient/health_summary.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).orders,
          TranslationBase.of(context).prescription,
          ORDER_PRESCRIPTION_NEW,
          'patient/order_prescription.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).health,
          TranslationBase.of(context).summary,
          HEALTH_SUMMARY,
          'patient/health_summary.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).patient,
          "ECG",
          PATIENT_ECG,
          'patient/patient_sick_leave.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).orders,
          TranslationBase.of(context).procedures,
          ORDER_PROCEDURE,
          'patient/Order_Procedures.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).insurance,
          TranslationBase.of(context).service,
          PATIENT_INSURANCE_APPROVALS_NEW,
          'patient/vital_signs.png',
          isInPatient: isInpatient),
      PatientProfileCardModel(
          TranslationBase.of(context).patientSick,
          TranslationBase.of(context).leave,
          ADD_SICKLEAVE,
          'patient/patient_sick_leave.png',
          isInPatient: isInpatient),
      if (patient.appointmentNo != null && patient.appointmentNo != 0)
        PatientProfileCardModel(
            TranslationBase.of(context).patient,
            TranslationBase.of(context).ucaf,
            PATIENT_UCAF_REQUEST,
            'patient/ucaf.png',
            isInPatient: isInpatient,
            isDisable: patient.patientStatusType != 43 ? true : false),
      if (patient.appointmentNo != null && patient.appointmentNo != 0)
        PatientProfileCardModel(
            TranslationBase.of(context).referral,
            TranslationBase.of(context).patient,
            REFER_PATIENT_TO_DOCTOR,
            'patient/refer_patient.png',
            isInPatient: isInpatient,
            isDisable: patient.patientStatusType != 43 ? true : false),
      if (patient.appointmentNo != null && patient.appointmentNo != 0)
        PatientProfileCardModel(
            TranslationBase.of(context).admission,
            TranslationBase.of(context).request,
            PATIENT_ADMISSION_REQUEST,
            'patient/admission_req.png',
            isInPatient: isInpatient,
            isDisable: patient.patientStatusType != 43 ? true : false),
    ];

    return Column(
      children: [
        Padding(
          padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 15),
          child: StaggeredGridView.countBuilder(
            shrinkWrap: true,
            physics: NeverScrollableScrollPhysics(),
            crossAxisSpacing: 10,
            mainAxisSpacing: 10,
            crossAxisCount: 3,
            itemCount: cardsList.length,
            staggeredTileBuilder: (int index) => StaggeredTile.fit(1),
            itemBuilder: (BuildContext context, int index) => PatientProfileButton(
              patient: patient,
              patientType: patientType,
              arrivalType: arrivalType,
              from: from,
              to: to,
              nameLine1: cardsList[index].nameLine1,
              nameLine2: cardsList[index].nameLine2,
              route: cardsList[index].route,
              icon: cardsList[index].icon,
              isInPatient: cardsList[index].isInPatient,
              isDischargedPatient: cardsList[index].isDischargedPatient,
              isDisable: cardsList[index].isDisable,
              onTap: cardsList[index].onTap,
              isLoading: cardsList[index].isLoading,
            ),
          ),
        ),
      ],
    );
  }
}
