import 'package:flutter/material.dart';
import 'package:rasadyar_core/core.dart';
import 'package:rasadyar_livestock/presentation/routes/app_pages.dart';

import 'logic.dart';

class RequestsPage extends GetView<RequestsLogic> {
  RequestsPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: RAppBar(title: 'لیست درخواست‌ها', hasBack: false, centerTitle: true),
      body: Column(
        children: [
          SizedBox(height: 8),
          _buildSearchAndFilter(),
          _buildFilterWidget(),
          _buildListOfContent(),
          RElevated(
            text: '+ ایجاد درخواست',
            width: Get.width - 36,
            height: 40,
            textStyle: AppFonts.yekan18.copyWith(color: Colors.white),
            onPressed: () {
              //TODO
            },
          ),
          SizedBox(height: 10),
        ],
      ),
    );
  }

  Expanded _buildListOfContent() {
    return Expanded(
      child: ListView.separated(
        shrinkWrap: true,
        itemCount: 10,
        physics: BouncingScrollPhysics(),
        padding: EdgeInsets.symmetric(horizontal: 20, vertical: 50),
        separatorBuilder: (context, index) => SizedBox(height: 6),
        itemBuilder: (context, index) {
          return GestureDetector(
            onTap: () {
              Get.toNamed(LiveStockRoutes.requestTagging);
            },
            child: Container(
              width: Get.width,
              height: 75,
              decoration: BoxDecoration(
                color:
                    index < 3
                        ? AppColor.yellowNormal
                        : index < 7
                        ? AppColor.greenLightActive
                        : AppColor.blueLight,
                borderRadius: BorderRadius.circular(8),
              ),
              child: Stack(
                children: [
                  Row(
                    children: [
                      SizedBox(width: 5),
                      Expanded(
                        child: Container(
                          decoration: BoxDecoration(
                            color: Colors.white,
                            borderRadius: BorderRadius.only(
                              topRight: Radius.circular(8),
                              bottomRight: Radius.circular(8),
                            ),
                            border: Border.all(
                              color:
                                  index < 3
                                      ? AppColor.yellowNormal
                                      : index < 7
                                      ? AppColor.greenLightActive
                                      : AppColor.blueLight,
                              width: 2,
                            ),
                          ),
                          child: Row(
                            children: [
                              SizedBox(width: 10),
                              Text(
                                'محمد احمدی',
                                textAlign: TextAlign.center,
                                style: AppFonts.yekan12.copyWith(
                                  color: AppColor.blueNormal,
                                  fontWeight: FontWeight.w600,
                                ),
                              ),
                              SizedBox(width: 20),
                              Expanded(
                                child: Column(
                                  mainAxisAlignment: MainAxisAlignment.center,

                                  children: [
                                    Text(
                                      'پنج شنبه 14 اردیبهشت',
                                      textAlign: TextAlign.center,
                                      style: AppFonts.yekan10.copyWith(color: AppColor.darkGreyNormal),
                                    ),
                                    Text(
                                      ' همدان - نهاوند - روستای - همدان - نهاوند - روستای ',
                                      textAlign: TextAlign.center,
                                      style: AppFonts.yekan10.copyWith(color: AppColor.darkGreyNormal),
                                      overflow: TextOverflow.ellipsis,
                                      maxLines: 1,
                                    ),
                                  ],
                                ),
                              ),
                              SizedBox(width: 20),
                              GestureDetector(
                                onTap: () {
                                  // controller.onTapMap();
                                },
                                child: SizedBox(
                                  width: 50,
                                  child: Column(
                                    mainAxisAlignment: MainAxisAlignment.center,
                                    children: [
                                      Assets.vec.mapSvg.svg(
                                        width: 20,
                                        height: 20,
                                        colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn),
                                      ),
                                      SizedBox(height: 8),
                                      Text(
                                        'مسیریابی',
                                        textAlign: TextAlign.center,
                                        style: AppFonts.yekan10.copyWith(color: AppColor.blueNormal),
                                      ),
                                    ],
                                  ),
                                ),
                              ),

                              SizedBox(width: 20),
                            ],
                          ),
                        ),
                      ),

                      Container(
                        width: 20,
                        child: Center(
                          child: RotatedBox(
                            quarterTurns: 3,
                            child: Text(
                              index < 3
                                  ? ' بازرسی'
                                  : index < 7
                                  ? 'اطلاعات'
                                  : 'ارجاع به تعاونی',
                              style: AppFonts.yekan8,
                              textAlign: TextAlign.center,
                            ),
                          ),
                        ),
                      ),
                    ],
                  ),
                  Positioned(
                    top: 5,
                    right: 10,

                    child:Container(
                      padding: EdgeInsets.all(4),
                      alignment: AlignmentDirectional.center,
                      decoration: BoxDecoration(
                        shape: BoxShape.circle,
                        color: Colors.black54,),
                      child: Text((index*20).toString(),style: AppFonts.yekan12.copyWith(color: Colors.white),),
                    ),
                    ),
                ],
              ),
            ),
          );
        },
      ),
    );
  }

  Row _buildSearchAndFilter() {
    return Row(
      children: [
        Padding(
          padding: const EdgeInsets.only(right: 10.0),
          child: IconButton(
            onPressed: () {
              controller.isFilterShowed.value = !controller.isFilterShowed.value;
            },

            style: IconButton.styleFrom(
              backgroundColor: AppColor.blueNormal,
              fixedSize: Size(40, 40),
              shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
            ),
            icon: Assets.vec.filterSvg.svg(),
          ),
        ),
        Expanded(child: _searchWidget()),
      ],
    );
  }

  ObxValue<RxBool> _buildFilterWidget() {
    return ObxValue((data) {
      return AnimatedContainer(
        duration: Duration(milliseconds: 300),
        padding: EdgeInsets.only(top: 5),
        curve: Curves.easeInOut,
        height: data.value ? 45 : 0,
        child: SingleChildScrollView(
          scrollDirection: Axis.horizontal,
          padding: EdgeInsets.symmetric(horizontal: 12),
          child: ObxValue((data) {
            return Row(
              spacing: 12,
              children: [
                CustomChip(
                  title: 'انتخاب فیلتر',
                  index: 0,
                  isSelected: true,
                  selectedColor: AppColor.blueNormal,
                  onTap: (index) {},
                ),

                RFilterChips(
                  title: 'درخواست‌های من',
                  index: 1,
                  isSelected: data.contains(1),
                  selectedColor: AppColor.yellowNormal,
                  onTap: (index) {
                    if (data.contains(1)) {
                      data.remove(1);
                    } else {
                      data.add(1);
                    }
                  },
                ),

                RFilterChips(
                  title: 'در انتظار ثبت ',
                  index: 2,
                  selectedColor: AppColor.greenLightActive,
                  isSelected: data.contains(2),
                  onTap: (index) {
                    if (data.contains(2)) {
                      data.remove(2);
                    } else {
                      data.add(2);
                    }
                  },
                ),

                RFilterChips(
                  title: 'ارجاع به تعاونی',
                  index: 3,
                  selectedColor: AppColor.blueLightHover,
                  isSelected: data.contains(3),
                  onTap: (index) {
                    if (data.contains(3)) {
                      data.remove(3);
                    } else {
                      data.add(3);
                    }
                  },
                ),
              ],
            );
          }, controller.filterSelected),
        ),
      );
    }, controller.isFilterShowed);
  }

  Widget _searchWidget() {
    return Padding(
      padding: const EdgeInsets.only(right: 8.0, left: 20.0),
      child: RTextField(
        suffixIcon: Padding(
          padding: const EdgeInsets.all(12.0),
          child: Assets.vec.searchSvg.svg(
            width: 10,
            height: 10,
            colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn),
          ),
        ),
        hintText: 'جستجو',
        onChanged: (value) {
          //controller.search(value);
        },
        controller: TextEditingController(),
      ),
    );
  }
}
