import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/order/ProductReview.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:rating_bar/rating_bar.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';

class productTile extends StatelessWidget {
  final String productName;
  final String productPrice;
  final double productRate;
  final int productReviews;
  final String qyt;
  final String totalPrice;
  final bool isOrderDetails;
  final String productImage;
  final bool showLine;
  final String img;
  final String imgs;
  final int status;
  final PharmacyProduct product;
  final dynamic productID;
  final Function onDelete;
//  final VoidCallback deleteWishlistItems;

  productTile(
      {this.productName,
      this.productPrice,
      this.productRate,
      this.productReviews,
      this.qyt,
      this.totalPrice,
      this.isOrderDetails = false,
      this.productImage,
      this.showLine = true,
      this.img,
      this.imgs,
      this.status,
      this.product,
      this.productID,
      this.onDelete,
    });

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 180,
      width: double.infinity,
      color: Colors.white,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            children: [
              this.imgs != null && this.imgs.length > 0
                  ? Container(
                      margin: EdgeInsets.only(left: 10),
                      child: Image.network(
                        imgs,
//                        productImage.trim(),
                        fit: BoxFit.cover,
                        width: 80,
                        height: 80,
                      ),
                    )
                  : Container(
                      margin: EdgeInsets.only(left: 10),
                      child: Image.network(
                        productImage,
                        width: 80,
                        height: 80,
                      )
//                fit: BoxFit.cover,
                      ),
              Expanded(
                flex: 5,
                child: Column(
                  children: [
                    Container(
                      margin: EdgeInsets.all(5),
                      child: Align(
                        alignment: Alignment.topLeft,
                        child: RichText(
                          text: TextSpan(
                            text: productName,
                            style: TextStyle(
                                color: Colors.black54,
                                fontSize: 15,
                                fontWeight: FontWeight.bold),
                          ),
                        ),
                      ),
                    ),
                    Container(
                      margin: EdgeInsets.all(5),
                      child: Align(
                        alignment: Alignment.topLeft,
                        child: RichText(
                          text: TextSpan(
                            text: 'SAR $productPrice',
                            style: TextStyle(
                                fontWeight: FontWeight.bold,
                                color: Colors.black,
                                fontSize: 13),
                          ),
                        ),
                      ),
                    ),
                    this.isOrderDetails == false
                        ? Container(
                            margin: EdgeInsets.all(5),
                            child: Align(
                              alignment: Alignment.topLeft,
                              child: RatingBar.readOnly(
                                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(),
                  ],
                ),
              ),
              this.isOrderDetails == false
                  ? Expanded(
                      flex: 1,
                      child: Column(
                        children: [
                          IconButton(
                            icon: Icon(FontAwesomeIcons.trashAlt, size: 15),
                            onPressed: () {
                              GifLoaderDialogUtils.showMyDialog(context);
//                              deleteFromWishlistFunction(productID);
                              onDelete(productID);
                              GifLoaderDialogUtils.hideDialog(context);
                            },
                          ),
                          SizedBox(
                            height: 50,
                          ),
                          IconButton(
                            icon: Icon(FontAwesomeIcons.shoppingCart, size: 15),
                            onPressed: () async {
                              GifLoaderDialogUtils.showMyDialog(context);
                              await addToCartFunction(1, productID);
                              GifLoaderDialogUtils.hideDialog(context);
                              Navigator.push(
                                context,
                                FadePage(page: CartOrderPage()),
                              );
                            },
                          ),
                        ],
                      ),
                    )
                  : Container(),
            ],
          ),
          this.isOrderDetails == true
              ? Expanded(
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    children: [
                      Container(
                        margin: EdgeInsets.only(bottom: 5.0),
                        child: RichText(
                          text: TextSpan(
                            text: TranslationBase.of(context).quantity +
                                "" +
                                '$qyt',
                            style: TextStyle(
                                fontWeight: FontWeight.bold,
                                color: Colors.grey,
                                fontSize: 13),
                          ),
                        ),
                      ),
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.center,
                        children: [
                          Row(
                            mainAxisAlignment: MainAxisAlignment.end,
                            children: [
                              Text(
                                TranslationBase.of(context).total,
                                style: TextStyle(
                                  color: Colors.grey,
                                  fontSize: 13.0,
                                  fontWeight: FontWeight.bold,
                                ),
                              ),
                            ],
                          ),
                          Row(
                            mainAxisAlignment: MainAxisAlignment.end,
                            children: [
                              RichText(
                                text: TextSpan(
                                  text: ' $totalPrice SAR',
                                  style: TextStyle(
                                      fontWeight: FontWeight.bold,
                                      color: Colors.black,
                                      fontSize: 15),
                                ),
                              ),
                            ],
                          ),
                        ],
                      ),
                    ],
                  ),
                )
              : Container(),
//          this.isOrderDetails == true && model.order[0].orderStatusId == 30?

          if (status == 30 && this.isOrderDetails == true)
            Expanded(
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  Container(
//                margin: EdgeInsets.all(5.0),
                    child: Align(
                      alignment: Alignment.topLeft,
                      child: RatingBar.readOnly(
                        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(
//                margin: EdgeInsets.all(5),
                    child: Align(
//                  alignment: Alignment.topLeft,
                      child: RichText(
                        text: TextSpan(
                          text: '($productReviews reviews)',
                          style: TextStyle(
                              fontWeight: FontWeight.bold,
                              color: Colors.grey,
                              fontSize: 13),
                        ),
                      ),
                    ),
                  ),
                  InkWell(
                    onTap: () {
                      Navigator.push(
                          context, FadePage(page: ProductReviewPage(product)));
                    },
                    child: Container(
                      padding:
                          EdgeInsets.only(left: 13.0, right: 13.0, top: 5.0),
                      height: 30.0,
                      decoration: BoxDecoration(
                          border: Border.all(
                              color: Colors.orange,
                              style: BorderStyle.solid,
                              width: 1.0),
                          color: Colors.transparent,
                          borderRadius: BorderRadius.circular(5.0)),
                      child: Text(
                        TranslationBase.of(context).writeReview,
                        style: TextStyle(
                          fontSize: 12,
                          color: Colors.orange,
                        ),
                      ),
                    ),
                  ),
                ],
              ),
            ),
          /*Container(

          ),*/
        ],
      ),
    );
  }

//  deleteFromWishlistFunction(itemID) async {
//    ProductDetailViewModel x = new ProductDetailViewModel();
//    await x.deletWishlistData(itemID);
//  }

  addToCartFunction(quantity, itemID) async {
    ProductDetailViewModel x = new ProductDetailViewModel();
    await x.addToCartData(quantity, itemID);
  }
}
