import 'package:get/get.dart';
import 'package:kaer_with_panels/app/modules/hi_help/bindings/hi_help_binding.dart';
import 'package:kaer_with_panels/app/modules/hi_help/views/hi_help_view.dart';
import 'package:kaer_with_panels/app/modules/hi_menu/bindings/hi_menu_binding.dart';
import 'package:kaer_with_panels/app/modules/hi_menu/views/hi_menu_view.dart';
import 'package:kaer_with_panels/app/modules/hi_node_list/bindings/hi_node_list_binding.dart';
import 'package:kaer_with_panels/app/modules/hi_node_list/views/hi_page_node_view.dart';
import 'package:kaer_with_panels/app/modules/hi_user_info/bindings/hi_user_info_binding.dart';
import 'package:kaer_with_panels/app/modules/hi_user_info/views/hi_user_info_view.dart';
import 'package:kaer_with_panels/app/modules/hi_anti_lost/bindings/hi_anti_lost_binding.dart';
import 'package:kaer_with_panels/app/modules/hi_anti_lost/views/hi_anti_lost_view.dart';

import '../modules/kr_chatwoot/bindings/kr_chatwoot_binding.dart';
import '../modules/kr_chatwoot/views/kr_chatwoot_view.dart';
import '../modules/kr_delete_account/bindings/kr_delete_account_binding.dart';
import '../modules/kr_delete_account/views/kr_delete_account_view.dart';
import '../modules/kr_home/bindings/kr_home_binding.dart';
import '../modules/kr_home/views/kr_home_view.dart';
import '../modules/kr_invite/bindings/kr_invite_binding.dart';
import '../modules/kr_invite/views/kr_invite_view.dart';
import '../modules/kr_login/bindings/kr_login_binding.dart';
import '../modules/kr_login/views/kr_login_view.dart';
import '../modules/kr_message/bindings/kr_message_binding.dart';
import '../modules/kr_message/views/kr_message_view.dart';
import '../modules/kr_purchase_membership/bindings/kr_purchase_membership_binding.dart';
import '../modules/kr_purchase_membership/views/kr_purchase_membership_view.dart';
import '../modules/kr_order_status/bindings/kr_order_status_binding.dart';
import '../modules/kr_order_status/views/kr_order_status_view.dart';
import '../modules/kr_splash/bindings/kr_splash_binding.dart';
import '../modules/kr_splash/views/kr_splash_view.dart';
import 'package:kaer_with_panels/app/routes/transitions/slide_transparent_transition.dart';
import 'package:kaer_with_panels/app/widgets/swipe/swipe_wrapper.dart';

part 'app_routes.dart';

class AppPages {
  AppPages._();

  static const INITIAL = Routes.KR_SPLASH;

  static final routes = [
    GetPage(
      name: '/',
      page: () => SwipeWrapper.detect(() => const KRSplashView()),
      binding: KRSplashBinding(),
      popGesture: false,
      transition: Transition.fade,
      transitionDuration: const Duration(milliseconds: 500),
    ),
    GetPage(
      name: Routes.KR_SPLASH,
      page: () => SwipeWrapper.detect(() => const KRSplashView()),
      binding: KRSplashBinding(),
      popGesture: false,
      transition: Transition.fade,
      transitionDuration: const Duration(milliseconds: 500),
    ),
    GetPage(
      name: _Paths.KR_HOME,
      page: () => SwipeWrapper.detect(() => KRHomeView()),
      binding: KRHomeBinding(),
      popGesture: false,
      arguments: {'showSubscriptionButton': true}, // 显示购买按钮
      customTransition: SlideOutOnlyTransition(
        direction: SlideDirection.leftToRight,
        duration: const Duration(milliseconds: 350),
      ),
    ),
    GetPage(
      name: _Paths.HI_MENU,
      page: () => SwipeWrapper.detect(() => const HIMenuView()),
      binding: HIMenuBinding(),
      popGesture: false,
      arguments: {'showSubscriptionButton': true}, // 显示购买按钮
      customTransition: ContextAwareSlideTransition(
        targetRoute: _Paths.HI_MENU,
        duration: const Duration(milliseconds: 350),
      ),
    ),
    GetPage(
      name: _Paths.MR_LOGIN,
      page: () => SwipeWrapper.detect(() => const KRLoginView()),
      binding: MrLoginBinding(),
      popGesture: false,
      arguments: {'showSubscriptionButton': true}, // 显示购买按钮
    ),
    GetPage(
      name: _Paths.KR_INVITE,
      page: () => SwipeWrapper.detect(() => const KRInviteView()),
      binding: KRInviteBinding(),
      popGesture: false,
    ),
    GetPage(
      name: _Paths.KR_PURCHASE_MEMBERSHIP,
      page: () => SwipeWrapper.detect(() => const KRPurchaseMembershipView()),
      binding: KRPurchaseMembershipBinding(),
      popGesture: false,
      arguments: {'showSubscriptionButton': true}, // 显示购买按钮
    ),
    GetPage(
      name: _Paths.KR_MESSAGE,
      page: () => SwipeWrapper.detect(() => const KRMessageView()),
      binding: KrMessageBinding(),
      popGesture: false,
    ),
    GetPage(
      name: _Paths.KR_DELETE_ACCOUNT,
      page: () => SwipeWrapper.detect(() => const KRDeleteAccountView()),
      binding: KrDeleteAccountBinding(),
      popGesture: false,
    ),
    GetPage(
      name: Routes.KR_ORDER_STATUS,
      page: () => SwipeWrapper.detect(() => const KROrderStatusView()),
      binding: KROrderStatusBinding(),
      popGesture: false,
    ),
    GetPage(
      name: _Paths.HI_NODE_LIST,
      page: () => SwipeWrapper.detect(() => const HINodePageView()),
      binding: HiNodeListBinding(),
      popGesture: false,
    ),
    GetPage(
      name: _Paths.HI_HELP,
      page: () => SwipeWrapper.detect(() => const HIHelpView()),
      binding: HIHelpBinding(),
      popGesture: false,
    ),
    GetPage(
      name: _Paths.HI_USER_INFO,
      page: () => SwipeWrapper.detect(() => const HIUserInfoView()),
      binding: HIUserInfoBinding(),
      popGesture: false,
      arguments: {'showSubscriptionButton': true}, // 显示购买按钮
    ),
    GetPage(
      name: _Paths.HI_ANTI_LOST,
      page: () => SwipeWrapper.detect(() => const HIAntiLostView()),
      binding: HIAntiLostBinding(),
      popGesture: false,
    ),
    GetPage(
      name: _Paths.KR_CHATWOOT,
      page: () => SwipeWrapper.detect(() => const KRChatwootView()),
      binding: KRChatwootBinding(),
      popGesture: false,
    ),
  ];
}
