import 'package:cheminova/controller/get_order_placed_controller.dart';
import 'package:cheminova/models/product_model.dart';
import 'package:cheminova/utils/show_snackbar.dart';
import 'package:cheminova/widgets/my_drawer.dart';
import 'package:cheminova/widgets/product_card.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart';
import 'package:google_fonts/google_fonts.dart';

import '../../controller/cart_controller.dart';
import '../../controller/place_order_controller.dart';
import '../../models/oder_place_model.dart';
import '../../models/product_model1.dart';

class OrderConfermationScreen extends StatefulWidget {
  Product? productModel;
  PlacedOrderModel? placedOrder;
   OrderConfermationScreen({super.key,this.productModel,this.placedOrder});

  @override
  State<OrderConfermationScreen> createState() =>
      _OrderConfermationScreenState();
}

class _OrderConfermationScreenState extends State<OrderConfermationScreen> {
  final CartController _cartController = Get.put(CartController());
  final OrderPlacedController _placedController = Get.put(OrderPlacedController());
  final GetPlacedOrderController _getPlacedOrderController = Get.put(GetPlacedOrderController());
  // final List<ProductModel> _checkoutList = [
  //   ProductModel(
  //     id: "1",
  //     image: 'assets/images/product.png',
  //     name: "Product 1",
  //     category: ProductCategory.food,
  //     description: 'Product 1 description',
  //     price: 100.00,
  //   ),
  // ];

  void _getOrder(){
  final details =  _getPlacedOrderController.getOrder(_cartController.cartList[0].id);
  showSnackbar("Get Placed Order Sucessfully");
  print("dffgfg,$details");
  }
  @override
  Widget build(BuildContext context) {
    final orderItems = _placedController.placedOrder1;
    return Scaffold(
      extendBodyBehindAppBar: true,
      appBar: AppBar(
        backgroundColor: Colors.transparent,
        elevation: 0,
        leading: Builder(
          builder: (context) {
            return GestureDetector(
              onTap: () => Scaffold.of(context).openDrawer(),
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: SvgPicture.asset(
                  'assets/svg/menu.svg',
                ),
              ),
            );
          },
        ),
        actions: [
          GestureDetector(
            onTap: () => Get.back(),
            child: Padding(
              padding: const EdgeInsets.all(8.0),
              child: SvgPicture.asset(
                'assets/svg/back_arrow.svg',
              ),
            ),
          ),
        ],
        title: const Text(
          "Order Confirmation",
        ),
      ),
      drawer: const MyDrawer(),
      body: Stack(
        fit: StackFit.expand,
        children: [
          Image.asset(
            'assets/images/image_1.png',
            fit: BoxFit.cover,
          ),
          SafeArea(
            child: Column(
              children: [
                SizedBox(
                  height: Get.height * 0.02,
                ),
                Card(
                  margin: const EdgeInsets.symmetric(horizontal: 18),
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(19),
                    side: const BorderSide(color: Color(0xFFFDFDFD)),
                  ),
                  color: const Color(0xFFB4D1E5).withOpacity(0.9),
                  child: Padding(
                    padding: EdgeInsets.all(Get.width * 0.04),
                    child: Column(
                      mainAxisSize: MainAxisSize.min,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Card(
                          child: SizedBox(
                            width: Get.width,
                            height: Get.height * 0.05,
                            child: Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Text(
                                "Order Number:1234",
                                style: GoogleFonts.roboto(
                                  fontSize: Get.width * 0.04,
                                  fontWeight: FontWeight.w400,
                                ),
                              ),
                            ),
                          ),
                        ),
                        Padding(
                          padding: EdgeInsets.all(Get.width * 0.02),
                          child: Text(
                            'Order Summary',
                            style: GoogleFonts.roboto(
                              fontSize: Get.width * 0.04,
                              fontWeight: FontWeight.w500,
                              color: Colors.black,
                            ),
                          ),
                        ),
                        Card(
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              SizedBox(
                                height: Get.height * 0.22,
                                child: Padding(
                                  padding: EdgeInsets.all(Get.width * 0.02),
                                  child: ListView.builder(
                                    padding: EdgeInsets.zero,
                                    itemCount: _cartController.cartList.length,
                                    itemBuilder: (context, index) =>
                                        ProductCard(
                                      productModel:_cartController.cartList[index],
                                      isCheckout: true,
                                    ),
                                  ),
                                ),
                              ),
                              Padding(
                                padding: EdgeInsets.all(Get.width * 0.02),
                                child: Column(
                                  mainAxisAlignment: MainAxisAlignment.end,
                                  children: [
                                    Text(
                                        'Subtotal: \₹${_cartController.subtotal.value.toStringAsFixed(2)}'),
                                    Text(
                                        'GST: \₹${_cartController.gstTotal.value.toStringAsFixed(2)}'),
                                    Text(
                                        'Grand Total: \₹${_cartController.grandTotal.value.toStringAsFixed(2)}'),
                                  ],
                                ),
                              ),
                            ],
                          ),
                        ),
                        Padding(
                          padding: EdgeInsets.all(Get.width * 0.02),
                          child: Text(
                            'Shipping Information',
                            style: GoogleFonts.roboto(
                              fontSize: Get.width * 0.04,
                              fontWeight: FontWeight.w500,
                              color: Colors.black,
                            ),
                          ),
                        ),
                        Card(
                          child: SizedBox(
                            width: Get.width,
                            height: Get.height * 0.1,
                            child: Column(
                              crossAxisAlignment: CrossAxisAlignment.start,
                              children: [
                                Padding(
                                  padding: const EdgeInsets.all(8.0),
                                  child: Text(
                                    "Address :${widget.placedOrder!.shipTo}",
                                    style: GoogleFonts.roboto(
                                      fontSize: Get.width * 0.04,
                                      fontWeight: FontWeight.w400,
                                    ),
                                  ),
                                ),
                                // Padding(
                                //   padding: const EdgeInsets.all(8.0),
                                //   child: Text(
                                //     "Contact: +91 9123456789",
                                //     style: GoogleFonts.roboto(
                                //       fontSize: Get.width * 0.04,
                                //       fontWeight: FontWeight.w400,
                                //     ),
                                //   ),
                                // ),
                              ],
                            ),
                          ),
                        ),
                        Card(
                          child: SizedBox(
                            width: Get.width,
                            height: Get.height * 0.05,
                            child: Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Text(
                                "Estimated Delivery Date: 20 Sep 2024",
                                style: GoogleFonts.roboto(
                                  fontSize: Get.width * 0.04,
                                  fontWeight: FontWeight.w400,
                                ),
                              ),
                            ),
                          ),
                        ),

                      ],
                    ),
                  ),
                ),
                // Row(
                //   mainAxisAlignment: MainAxisAlignment.center,
                //   children: [
                //     ElevatedButton(
                //       onPressed:_getOrder,
                //       style: ElevatedButton.styleFrom(
                //         foregroundColor: Colors.white,
                //         backgroundColor: const Color(0xFF00784C),
                //         padding: EdgeInsets.symmetric(
                //             horizontal: Get.width * 0.20,
                //             vertical: Get.height * 0.02),
                //         shape: RoundedRectangleBorder(
                //           borderRadius: BorderRadius.circular(10),
                //         ),
                //       ),
                //       child: const Text("Confirm Order"),
                //     ),
                //   ],
                // ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
