import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';

class PatientCard extends StatelessWidget {
  final PatiantInformtion patientInfo;
  final Function onTap;
  final String patientType;
  const PatientCard({Key key, this.patientInfo, this.onTap, this.patientType})
      : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Container(
        width: SizeConfig.screenWidth * 0.95,
        padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
        decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(10), color: Colors.white),
        margin: EdgeInsets.all(5),
        child: InkWell(
          child: Column(
            children: [
              SERVICES_PATIANT2[int.parse(patientType)] == "patientArrivalList"
                  ? Container(height: 5, color: Colors.green[800])
                  : Container(),
              SizedBox(
                height: 10,
              ),
              SERVICES_PATIANT2[int.parse(patientType)] == "patientArrivalList"
                  ? Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        AppText(
                          TranslationBase.of(context).arrivedP,
                          color: Colors.green[800],
                          fontWeight: FontWeight.bold,
                        ),
                        AppText(patientInfo.arrivedOn)
                      ],
                    )
                  : SizedBox(),
              Padding(
                  padding: EdgeInsets.only(left: 12.0),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      Row(children: [
                        AppText(
                          patientInfo.firstName + " " + patientInfo.lastName,
                          fontSize: SizeConfig.textMultiplier * 2.5,
                          fontWeight: FontWeight.bold,
                          backGroundcolor: Colors.white,
                        ),
                        patientInfo.gender == 1
                            ? Icon(
                                DoctorApp.male_2,
                                color: Colors.blue,
                              )
                            : Icon(
                                DoctorApp.female_1,
                                color: Colors.pink,
                              ),
                      ]),
                      AppText(
                        patientInfo.nationalityName ?? patientInfo.nationality,
                        fontWeight: FontWeight.bold,
                      )
                    ],
                  )),
              Row(children: <Widget>[
                Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: <Widget>[
                    Padding(
                      padding: EdgeInsets.only(left: 12.0),
                      child: Container(
                        decoration: BoxDecoration(
                          boxShadow: [
                            BoxShadow(
                                color: Color.fromRGBO(0, 0, 0, 0.08),
                                offset: Offset(0.0, 5.0),
                                blurRadius: 16.0)
                          ],
                          borderRadius: BorderRadius.all(Radius.circular(35.0)),
                          color: Color(0xffCCCCCC),
                        ),
                        width: 70,
                        height: 70,
                        child: Icon(
                          patientInfo.gender == 1
                              ? DoctorApp.male
                              : DoctorApp.female_icon,
                          size: 70,
                          color: Colors.white,
                        ),
                      ),
                    ),
                  ],
                ),
                SizedBox(
                  width: 10,
                ),
                Expanded(
                    child: Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                      Container(
                        child: RichText(
                          text: new TextSpan(
                            style: new TextStyle(
                                fontSize: 2.0 * SizeConfig.textMultiplier,
                                color: Colors.black),
                            children: <TextSpan>[
                              new TextSpan(
                                  text: TranslationBase.of(context).fileNo,
                                  style: TextStyle(
                                      fontSize:
                                          2.2 * SizeConfig.textMultiplier)),
                              new TextSpan(
                                  text: patientInfo.patientId.toString(),
                                  style: TextStyle(
                                    fontWeight: FontWeight.w700,
                                  )),
                            ],
                          ),
                        ),
                      ),
                      Container(
                        child: RichText(
                          text: new TextSpan(
                            style: new TextStyle(
                                fontSize: 2.0 * SizeConfig.textMultiplier,
                                color: Colors.black),
                            children: <TextSpan>[
                              new TextSpan(
                                text: TranslationBase.of(context).age + " : ",
                              ),
                              new TextSpan(
                                  text:
                                      "${DateUtils.getAgeByBirthday(patientInfo.dateofBirth, context)}",
                                  style: TextStyle(
                                    fontWeight: FontWeight.w700,
                                  )),
                            ],
                          ),
                        ),
                      ),
                      if (SERVICES_PATIANT2[int.parse(patientType)] ==
                          "List_MyOutPatient")
                        Container(
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.start,
                            children: <Widget>[
                              AppText(
                                TranslationBase.of(context).appointmentDate +
                                    " : ",
                                fontSize: 14,
                              ),
                              Container(
                                height: 15,
                                width: 60,
                                decoration: BoxDecoration(
                                  borderRadius: BorderRadius.circular(25),
                                  color: HexColor("#20A169"),
                                ),
                                child: AppText(
                                  patientInfo.startTime,
                                  color: Colors.white,
                                  fontSize: 1.5 * SizeConfig.textMultiplier,
                                  textAlign: TextAlign.center,
                                  fontWeight: FontWeight.bold,
                                ),
                              ),
                              SizedBox(
                                width: 3.5,
                              ),
                              Container(
                                child: AppText(
                                  convertDateFormat2(
                                      patientInfo.appointmentDate.toString()),
                                  fontSize: 1.5 * SizeConfig.textMultiplier,
                                  fontWeight: FontWeight.bold,
                                ),
                              ),
                              SizedBox(
                                height: 0.5,
                              )
                            ],
                          ),
                          margin: EdgeInsets.only(
                            top: 8,
                          ),
                        )
                    ]))
              ]),
            ],
          ),
          onTap: onTap,
        ));

    //  ]),
    // TableRow(children: [
    //   SizedBox(
    //     height: 5,
    //   ),
    //   SizedBox(
    //     height: 5,
    //   )
    // ]),
    // TableRow(children: [
    //   Container(
    //     child: RichText(
    //       text: new TextSpan(
    //         style: new TextStyle(
    //             fontSize: 2.0 * SizeConfig.textMultiplier,
    //             color: Colors.black),
    //         children: <TextSpan>[
    //   new TextSpan(
    //       text: TranslationBase.of(context)
    //               .nationality +
    //           " : ",
    //       style: TextStyle(
    //           fontWeight: FontWeight.w700,
    //           fontSize: 2.2 *
    //               SizeConfig.textMultiplier)),
    //         // ,
    //       ],
    //     ),
    //   ),
    // ),
    //   Container(
    //     child: RichText(
    //       text: new TextSpan(
    //         style: new TextStyle(
    //             fontSize: 2.0 * SizeConfig.textMultiplier,
    //             color: Colors.black),
    //         children: <TextSpan>[
    //           new TextSpan(
    //               text:
    //                   TranslationBase.of(context).gender +
    //                       " : ",
    //               style: TextStyle(
    //                 fontWeight: FontWeight.w700,
    //               )),
    //           new TextSpan(
    //               text:
    //                   patientInfo.gender.toString() == '1'
    //                       ? 'Male'
    //                       : 'Female'),
    //         ],
    //       ),
    //     ),
    //   ),
    // ]),
    // ],
    //),

    //   ),

    // Divider(color: Colors.grey)
    //],
    //),
    //],
    //),
    // onTap: onTap,
    // ),
    //);
  }

  convertDateFormat2(String str) {
    String timeConvert;
    const start = "/Date(";
    const end = "+0300)";

    final startIndex = str.indexOf(start);
    final endIndex = str.indexOf(end, startIndex + start.length);

    var date = new DateTime.fromMillisecondsSinceEpoch(
        int.parse(str.substring(startIndex + start.length, endIndex)));
    String newDate = date.year.toString() +
        "/" +
        date.month.toString().padLeft(2, '0') +
        "/" +
        date.day.toString().padLeft(2, '0');

    return newDate.toString();
  }

  myBoxDecoration() {
    return BoxDecoration(
        border: Border(
          top: BorderSide(
            color: Colors.green,
            width: 5,
          ),
        ),
        borderRadius: BorderRadius.circular(10));
  }
}
