import 'package:rasadyar_auth/auth.dart';
import 'package:rasadyar_core/core.dart';
import 'package:rasadyar_core/presentation/widget/map/logic.dart';
import 'package:rasadyar_livestock/presentation/page/map/logic.dart';
import 'package:rasadyar_livestock/presentation/page/profile/logic.dart';
import 'package:rasadyar_livestock/presentation/page/request_tagging/logic.dart';
import 'package:rasadyar_livestock/presentation/page/request_tagging/view.dart';
import 'package:rasadyar_livestock/presentation/page/requests/logic.dart';
import 'package:rasadyar_livestock/presentation/page/root/logic.dart';
import 'package:rasadyar_livestock/presentation/page/root/view.dart';
import 'package:rasadyar_livestock/presentation/page/tagging/logic.dart';
import 'package:rasadyar_livestock/presentation/page/tagging/view.dart';

part 'app_routes.dart';

sealed class LiveStockPages {
  LiveStockPages._();

  static final pages = [
    GetPage(
      name: LiveStockRoutes.init,
      page: () => RootPage(),
      middlewares: [AuthMiddleware()],
      binding: BindingsBuilder(() {
        Get.put(RootLogic());
        Get.lazyPut(() => RequestsLogic());
        Get.lazyPut(() => MapLogic());
        Get.lazyPut(() => ProfileLogic());
        Get.lazyPut(() => ProfileLogic());
        Get.lazyPut(() => MapWidgetLogic());
        Get.lazyPut(() => DraggableBottomSheetController());
      }),
      children: [
        /*GetPage(
          name: LiveStockRoutes.requestTagging,
          page: () => RequestTaggingPage(),
          middlewares: [AuthMiddleware()],
          binding: BindingsBuilder(() {
            Get.lazyPut(() => RequestTaggingLogic());
          }),
        ),*/
      ],
    ),

    GetPage(
      name: LiveStockRoutes.requestTagging,
      page: () => RequestTaggingPage(),
      middlewares: [AuthMiddleware()],
      binding: BindingsBuilder(() {
        Get.lazyPut(() => RequestTaggingLogic());
      }),
    ),
    GetPage(
      name: LiveStockRoutes.tagging,
      page: () => TaggingPage(),
      middlewares: [AuthMiddleware()],
      binding: BindingsBuilder(() {
        Get.lazyPut(() => TaggingLogic());
      }),
    ),
  ];
}
