import 'package:rasadyar_core/core.dart' hide BaseLogic;
import 'package:rasadyar_livestock/presentation/page/auth/logic.dart';
import 'package:rasadyar_livestock/presentation/page/auth/view.dart';
import 'package:rasadyar_livestock/presentation/page/map/logic.dart';
import 'package:rasadyar_livestock/presentation/page/map/widget/map_widget/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';
import 'package:rasadyar_livestock/presentation/widgets/base_page/logic.dart';
import 'package:rasadyar_livestock/presentation/widgets/captcha/logic.dart';

import '../../injection/live_stock_di.dart';

part 'app_routes.dart';

sealed class LiveStockPages {
  LiveStockPages._();

  static final pages = [
    GetPage(
      name: LiveStockRoutes.auth,
      page: () => AuthPage(),
      binding: BindingsBuilder(() {
        Get.lazyPut(() => AuthLogic());
        Get.lazyPut(() => CaptchaWidgetLogic());
      }),
    ),
    GetPage(
      name: LiveStockRoutes.init,
      page: () => RootPage(),
      middlewares: [AuthMiddleware()],
      binding: BindingsBuilder(() {
        Get.put(RootLogic());
        Get.lazyPut(() => RequestsLogic());
        Get.lazyPut(() => MapLogic());
        Get.lazyPut(() => ProfileLogic());
        Get.lazyPut(() => MapWidgetLogic());
        Get.lazyPut(() => BaseLogic());
      }),
      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());
      }),
    ),
  ];
}
