import 'package:diplomaticquarterapp/core/enum/filter_type.dart';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/radiology_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/radiology/radiology_details_page.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

class RadiologyHomePage extends StatelessWidget {
  List<ImagesInfo> imagesInfo = List();
  @override
  Widget build(BuildContext context) {
    ProjectViewModel projectViewModel = Provider.of(context);
    imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/en/0.png',imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/ar/0.png'));
    imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/en/1.png',imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/ar/1.png'));
    return BaseView<RadiologyViewModel>(
      onModelReady: (model) => model.getPatientRadOrders(),
      builder: (_, model, widget) => AppScaffold(
        isShowAppBar: true,
        appBarTitle: TranslationBase.of(context).radiology,
        baseViewModel: model,
        description: TranslationBase.of(context).infoRadiology,
        imagesInfo: imagesInfo,
        body: FractionallySizedBox(
          widthFactor: 1.0,
          child: ListView(
            physics: BouncingScrollPhysics(),
            children: <Widget>[
              Row(
                children: <Widget>[
                  Expanded(
                    flex: 1,
                    child: InkWell(
                      onTap: () =>
                          model.setFilterType(FilterType.Clinic),
                      child: ListTile(
                        title:  Text(TranslationBase.of(context).clinic),
                        leading: Radio(
                          value: FilterType.Clinic,
                          groupValue: model.filterType,
                          onChanged: (FilterType value) {
                            model.setFilterType(value);
                          },
                        ),
                      ),
                    ),
                  ),
                  Expanded(
                    flex: 1,
                    child: InkWell(
                      onTap: () => model
                          .setFilterType(FilterType.Hospital),
                      child: ListTile(
                        title: Text(TranslationBase.of(context).hospital),
                        leading: Radio(
                          value: FilterType.Hospital,
                          groupValue: model.filterType,
                          onChanged: (FilterType value) {
                            model.setFilterType(value);
                          },
                        ),
                      ),
                    ),
                  )
                ],
              ),
              ...List.generate(
                model.finalRadiologyList.length,
                    (index) => AppExpandableNotifier(
                    title: model
                        .finalRadiologyList[index].filterName,
                    bodyWidget: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: model
                          .finalRadiologyList[index].finalRadiologyList
                          .map((radiology) {
                        return InkWell(
                          onTap: () => Navigator.push(
                            context,
                            FadePage(
                              page: RadiologyDetailsPage(finalRadiology: radiology,),
                            ),
                          ),
                          child: DoctorCard(
                            isInOutPatient: radiology.isInOutPatient,
                            isLiveCareAppointment: radiology.isLiveCareAppointment,
                            name: radiology.doctorName,
                            profileUrl: radiology.doctorImageURL,
                            billNo: '${radiology.invoiceNo}',
                            subName: '${radiology.projectName}',
                            date: projectViewModel.isArabic? DateUtil.getMonthDayYearDateFormattedAr(radiology.orderDate):DateUtil.getMonthDayYearDateFormatted(radiology.orderDate),
                          ),
                        );
                      }).toList(),
                    )),
              )
            ],
          ),
        ),
      ),
    );
  }
}
