import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/patient/prescription/prescription_res_model.dart';
import 'package:doctor_app_flutter/screens/patients/out_patient_prescription_details_screen.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/medication.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';

import 'large_avatar.dart';

class PrescriptionOutPatientWidget extends StatelessWidget {
  final List<PrescriptionResModel> patientPrescriptionsList;

  PrescriptionOutPatientWidget({Key? key, required this.patientPrescriptionsList});

  @override
  Widget build(BuildContext context) {
    return Container(
      child: patientPrescriptionsList.length == 0
          ? Center(
              child: SingleChildScrollView(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Container(
                    padding: EdgeInsets.all(40),
                    decoration: BoxDecoration(
                        border:
                            Border.all(color: HexColor('#B8382C'), width: 4),
                        borderRadius: BorderRadius.all(Radius.circular(100))),
                    child: IconButton(
                        icon: Icon(
                          Icons.add,
                          size: 35,
                        ),
                        onPressed: () {
                          openAddPrescription(context);
                        }),
                  ),
                  Padding(
                    child: AppText(
                      TranslationBase.of(context).noPrescription,
                      fontWeight: FontWeight.bold,
                    ),
                    padding: EdgeInsets.all(10),
                  ),
                  AppText(
                    TranslationBase.of(context).applyNow,
                    fontWeight: FontWeight.bold,
                    color: HexColor('#B8382C'),
                  )
                ],
              ),
            ))
          : Container(
              margin: EdgeInsets.fromLTRB(SizeConfig.realScreenWidth! * 0.05, 0,
                  SizeConfig.realScreenWidth! * 0.05, 0),
              child: ListView.builder(
                itemCount: patientPrescriptionsList.length,
                itemBuilder: (BuildContext context, int index) {
                  return InkWell(
                      onTap: () {
                        Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) =>
                                  OutPatientPrescriptionDetailsScreen(
                                    prescriptionResModel:
                                        patientPrescriptionsList[index],
                                  ),
                              settings: RouteSettings(
                                  name: 'OutPatientPrescriptionDetailsScreen')),
                        );
                      },
                      child: CardWithBgWidgetNew(
                        widget: Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                            Row(
                              children: <Widget>[
                                LargeAvatar(
                                  url: patientPrescriptionsList[index]
                                      .doctorImageURL,
                                  name: patientPrescriptionsList[index]
                                      .doctorName!,
                                  radius: 10,
                                  width: 70,
                                ),
                                Expanded(
                                  child: Container(
                                    margin:
                                        EdgeInsets.only(left: 15, right: 15),
                                    child: Column(
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      children: <Widget>[
                                        AppText(
                                          '${patientPrescriptionsList[index].name}',
                                          fontSize:
                                              2.5 * SizeConfig.textMultiplier!,
                                        ),
                                        SizedBox(
                                          height: 8,
                                        ),
                                        AppText(
                                            '${patientPrescriptionsList[index].clinicDescription}',
                                            fontSize:
                                                2.5 * SizeConfig.textMultiplier!,
                                            color:
                                                Theme.of(context).primaryColor),
                                        SizedBox(
                                          height: 8,
                                        ),
                                      ],
                                    ),
                                  ),
                                )
                              ],
                            ),
                          ],
                        ),
                      ));
                },
              ),
            ),
    );
  }

  openAddPrescription(BuildContext context) {
    showModalBottomSheet(
        context: context,
        builder: (context) {
          return MedicationDetails();
        });
  }
}
