import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PrescriptionViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/ViewAllHomeWidget.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart';

class PrescriptionsWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BaseView<PrescriptionViewModel>(
      onModelReady: (model) async {
        if (Provider.of<ProjectViewModel>(context, listen: false).isLogin) {
          model.getPrescription();
        }
      },
      allowAny: true,
      builder: (_, model, wi) => model.prescriptionsList.length > 0
          ? NetworkBaseView(
              isLocalLoader: true,
              baseViewModel: model,
              child: Container(
                height: model.prescriptionsList.length > 0
                    ? MediaQuery.of(context).size.height * 0.28
                    : 0,
                child: Column(
                  children: [
                    ViewAllHomeWidget(
                        TranslationBase.of(context).myPrescription,
                        HomePrescriptionsPage()),
                    Container(
                      padding: EdgeInsets.symmetric(
                          horizontal: 18.0, vertical: 14.0),
                      margin: EdgeInsets.only(left: 10),
                      child: ListView.builder(
                          scrollDirection: Axis.horizontal,
                          shrinkWrap: true,
                          physics: ScrollPhysics(),
                          //                            physics: NeverScrollableScrollPhysics(),
                          itemCount: model.prescriptionsList.length,
                          itemBuilder: (context, index) {
                            return Container(
                              height: MediaQuery.of(context).size.height * 0.3,
                              padding: EdgeInsets.only(
                                  bottom: 5.0, left: 5.0, right: 8.0),
                              margin: EdgeInsets.only(right: 10.0),
                              decoration: BoxDecoration(
                                  border: Border.all(
                                    color: Colors.grey,
                                    style: BorderStyle.solid,
                                    width: 1.0,
                                  ),
                                  color: Colors.white,
                                  borderRadius: BorderRadius.circular(10.0)),
                              child: Column(
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: <Widget>[
                                    Row(
                                      children: <Widget>[
                                        Column(children: [
                                          Container(
                                            padding: EdgeInsets.only(
                                              top: 10.0,
                                              left: 10.0,
                                              right: 10.0,
                                              bottom: 15.0,
                                            ),
                                            child: CircleAvatar(
                                              radius: 30,
                                              backgroundColor:
                                                  Colors.transparent,
                                              child: Image.network(
                                                model.prescriptionsList[index]
                                                    .doctorImageURL,
                                                width: 60,
                                                height: 60,
                                              ),
                                            ),
                                          ),
                                        ]),
                                        Column(
                                          children: [
                                            Container(
                                                margin:
                                                    EdgeInsets.only(left: 1),
                                                padding: EdgeInsets.only(
                                                    left: 15.0, right: 15.0),
                                                decoration: BoxDecoration(
                                                    border: Border.all(
                                                      color: Colors.green,
                                                      style: BorderStyle.solid,
                                                      width: 4.0,
                                                    ),
                                                    color: Colors.green,
                                                    borderRadius:
                                                        BorderRadius.circular(
                                                            30.0)),
                                                child: Text(
                                                  model.languageID == "ar"
                                                      ? model
                                                          .prescriptionsList[
                                                              index]
                                                          .isInOutPatientDescriptionN
                                                          .toString()
                                                      : model
                                                          .prescriptionsList[
                                                              index]
                                                          .isInOutPatientDescription
                                                          .toString(),
                                                  style: TextStyle(
                                                    color: Colors.white,
                                                    fontSize: 15.0,
                                                  ),
                                                )),
                                            Row(children: <Widget>[
                                              Image.asset(
                                                'assets/images/Icon-awesome-calendar.png',
                                                width: 30,
                                                height: 30,
                                              ),
                                              Text(
                                                DateUtil.convertStringToDate(
                                                        model
                                                            .prescriptionsList[
                                                                index]
                                                            .appointmentDate
                                                            .toString())
                                                    .toString()
                                                    .substring(0, 10),
                                                style: TextStyle(
                                                  color: Colors.black,
                                                  fontSize: 15.0,
                                                ),
                                              )
                                            ]),
                                          ],
                                        ),
                                      ],
                                    ),
                                    Row(
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      children: <Widget>[
                                        Container(
                                          margin: EdgeInsets.only(left: 5),
                                          child: Row(children: <Widget>[
                                            Text(
                                              model.prescriptionsList[index]
                                                  .doctorTitle
                                                  .toString(),
                                              style: TextStyle(
                                                color: Colors.black,
                                                fontSize: 15.0,
                                                fontWeight: FontWeight.bold,
                                              ),
                                            ),
                                            Text(
                                              model.prescriptionsList[index]
                                                  .doctorName
                                                  .toString(),
                                              style: TextStyle(
                                                color: Colors.black,
                                                fontSize: 15.0,
                                                fontWeight: FontWeight.bold,
                                              ),
                                            ),
                                          ]),
                                        ),
                                      ],
                                    ),
                                    Row(
                                      crossAxisAlignment:
                                          CrossAxisAlignment.start,
                                      children: <Widget>[
                                        Container(
                                          margin: EdgeInsets.only(left: 5),
                                          child: Text(
                                            model.prescriptionsList[index]
                                                .clinicDescription
                                                .toString(),
                                            style: TextStyle(
                                              color: Colors.green,
                                              fontSize: 15.0,
//                                             fontWeight: FontWeight.bold,
                                            ),
                                          ),
                                        ),
                                      ],
                                    ),
                                    Row(
                                        crossAxisAlignment:
                                            CrossAxisAlignment.start,
                                        children: <Widget>[
                                          Container(
                                            margin: EdgeInsets.only(left: 5),
                                            child: Align(
                                              alignment: Alignment.topLeft,
                                              child: RatingBar.readOnly(
                                                initialRating: model
                                                    .prescriptionsList[index]
                                                    .actualDoctorRate
                                                    .toDouble(),
//                                               initialRating: productRate,
                                                size: 15.0,
                                                filledColor: Colors.yellow[700],
                                                emptyColor: Colors.grey[500],
                                                isHalfAllowed: true,
                                                halfFilledIcon: Icons.star_half,
                                                filledIcon: Icons.star,
                                                emptyIcon: Icons.star,
                                              ),
                                            ),
                                          )
                                        ]),
                                  ]),
                            );
                          }),
                    ),
                  ],
                ),
              ),
            )
          : Container(),
    );
  }
}
