import 'package:diplomaticquarterapp/core/model/my_trakers/blood_pressur/BloodPressureResult.dart';
import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart';
import 'package:diplomaticquarterapp/core/model/my_trakers/chartData/WeekChartDate.dart';
import 'package:diplomaticquarterapp/core/model/my_trakers/chartData/YearMonthlyChartDate.dart';
import 'package:diplomaticquarterapp/core/model/my_trakers/weight/WeightMeasurementResult.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthLineChartCurved.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';

class WeightMonthlyPage extends StatelessWidget {
  final WeightPressureViewModel model;

  const WeightMonthlyPage({
    Key key,
    this.model,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    ProjectViewModel projectViewModel = Provider.of(context);
    return AppScaffold(
      isShowDecPage: false,
      body: ListView(
              children: [
                Container(
                    width: double.maxFinite,
                    color: Colors.white,
                    child: MonthLineChartCurved(
                      horizontalInterval: 1.0,
                      title: TranslationBase.of(context).weight,
                      timeSeries: model.weighMonthTimeSeriesData.isEmpty?[TimeSeriesSales3(0, 0.0)]:model.weighMonthTimeSeriesData,
                      indexes: model.weighMonthTimeSeriesData.length ~/ 5.5,
                    )),
                SizedBox(
                  height: 12,
                ),
                Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: Texts(TranslationBase.of(context).details),
                ),
                Container(
                  padding: EdgeInsets.all(10),
                  color: Colors.transparent,
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                      model.weighMonthTimeSeriesData.isEmpty? Container(
                        child: Center(
                          child: Texts(TranslationBase.of(context).noDataAvailable),
                        ),
                      ):Table(
                        border: TableBorder.symmetric(
                          inside: BorderSide(width: 2.0, color: Colors.grey[300]),
                        ),
                        children: fullData(context, projectViewModel, model),
                      ),
                    ],
                  ),
                )
              ],
            ),
    );
  }

  List<TableRow> fullData(BuildContext context, ProjectViewModel projectViewModel, WeightPressureViewModel model) {
    List<TableRow> tableRow = [];
    tableRow.add(
      TableRow(
        children: [
          Container(
            decoration: BoxDecoration(
              color: Theme.of(context).primaryColor,
              borderRadius: BorderRadius.only(
                topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0),
                topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0),
              ),
            ),
            child: Center(
              child: Texts(
                TranslationBase.of(context).date,
                color: Colors.white,
                fontSize: 15,
              ),
            ),
            height: 40,
          ),
          Container(
              decoration: BoxDecoration(
                color: Theme.of(context).primaryColor,
              ),
              child: Center(
                child: Texts(
                  TranslationBase.of(context).time,
                  color: Colors.white,
                  fontSize: 15,
                ),
              ),
              height: 40),
          Container(
              decoration: BoxDecoration(
                color: Theme.of(context).primaryColor,
                borderRadius: BorderRadius.only(
                  topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0),
                  topRight: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0),
                ),
              ),
              child: Center(
                child: Texts(
                  TranslationBase.of(context).value,
                  color: Colors.white,
                  fontSize: 15,
                ),
              ),
              height: 40),
        ],
      ),
    );
    model.monthWeightMeasurementResult.forEach(
      (diabtec) {
        tableRow.add(
          TableRow(
            children: [
              Container(
                child: Container(
                  height: 70,
                  padding: EdgeInsets.all(10),
                  color: Colors.white,
                  child: Center(
                    child: Texts(
                      '${projectViewModel.isArabic ? DateUtil.getMonthDayYearDateFormattedAr(diabtec.weightDate) : DateUtil.getMonthDayYearDateFormatted(diabtec.weightDate)} ',
                      textAlign: TextAlign.center,
                      fontSize: 12,
                    ),
                  ),
                ),
              ),
              Container(
                height: 70,
                padding: EdgeInsets.all(10),
                color: Colors.white,
                child: Center(
                  child: Texts(
                    '${diabtec.weightDate.hour}:${diabtec.weightDate.minute}',
                    textAlign: TextAlign.center,
                    fontSize: 12,
                  ),
                ),
              ),
              Container(
                child: Container(
                  height: 70,
                  padding: EdgeInsets.all(10),
                  color: Colors.white,
                  child: Center(
                    child: Texts(
                      '${diabtec.weightMeasured}',
                      textAlign: TextAlign.center,
                      fontSize: 12,
                    ),
                  ),
                ),
              ),
            ],
          ),
        );
      },
    );
    return tableRow;
  }
}
