// Author: fengshengxiong
// Date: 2024/5/7
// Description: 路由页面映射

import 'package:flutter/animation.dart';
import 'package:get/get.dart';
import 'package:tone_snap/modules/sidea/about/about_binding.dart';
import 'package:tone_snap/modules/sidea/about/about_view.dart';
import 'package:tone_snap/modules/sidea/change_voice/change_voice_binding.dart';
import 'package:tone_snap/modules/sidea/change_voice/change_voice_view.dart';
import 'package:tone_snap/modules/sidea/home/home_binding.dart' as home_binding_a;
import 'package:tone_snap/modules/sidea/initial/initial_binding.dart' as initial_binding_a;
import 'package:tone_snap/modules/sidea/initial/initial_view.dart' as initial_view_a;
import 'package:tone_snap/modules/sidea/me/me_binding.dart' as me_binding_a;
import 'package:tone_snap/modules/sidea/play_sound/play_sound_binding.dart';
import 'package:tone_snap/modules/sidea/play_sound/play_sound_view.dart';
import 'package:tone_snap/modules/sidea/record_sound/record_sound_binding.dart';
import 'package:tone_snap/modules/sidea/record_sound/record_sound_view.dart';
import 'package:tone_snap/modules/sidea/settings/settings_binding.dart' as settings_binding_a;
import 'package:tone_snap/modules/sidea/upload_method/upload_mothod_binding.dart';
import 'package:tone_snap/modules/sidea/upload_method/upload_mothod_view.dart';
import 'package:tone_snap/modules/sideb/home/home_binding.dart' as home_binding_b;
import 'package:tone_snap/modules/sideb/initial/initial_binding.dart' as initial_binding_b;
import 'package:tone_snap/modules/sideb/initial/initial_view.dart' as initial_view_b;
import 'package:tone_snap/modules/sideb/me/me_binding.dart' as me_binding_b;
import 'package:tone_snap/modules/sideb/play_music/play_music_binding.dart';
import 'package:tone_snap/modules/sideb/play_music/play_music_view.dart';
import 'package:tone_snap/modules/sideb/search_music/search_music_binding.dart';
import 'package:tone_snap/modules/sidea/splash/splash_binding.dart' as splash_binding_a;
import 'package:tone_snap/modules/sidea/splash/splash_view.dart' as splash_view_a;
import 'package:tone_snap/modules/sideb/splash/splash_binding.dart' as splash_binding_b;
import 'package:tone_snap/modules/sideb/splash/splash_view.dart' as splash_view_b;
import 'package:tone_snap/modules/web_page/web_page_binding.dart';
import 'package:tone_snap/modules/web_page/web_page_view.dart';
import 'package:tone_snap/routes/app_routes.dart';

class AppPages {
  AppPages._();

  static final routes = [
    /// SideA
    GetPage(
      name: AppRoutes.splashA,
      page: () => splash_view_a.SplashView(),
      binding: splash_binding_a.SplashBinding(),
    ),
    GetPage(
      name: AppRoutes.initialA,
      page: () => initial_view_a.InitialView(),
      bindings: [initial_binding_a.InitialBinding(), home_binding_a.HomeBinding(), me_binding_a.MeBinding(), settings_binding_a.SettingsBinding()],
    ),
    GetPage(
      name: AppRoutes.uploadMethod,
      page: () => UploadMethodView(),
      binding: UploadMethodBinding(),
    ),
    GetPage(
      name: AppRoutes.recordSound,
      page: () => RecordSoundView(),
      binding: RecordSoundBinding(),
    ),
    GetPage(
      name: AppRoutes.changeVoice,
      page: () => ChangeVoiceView(),
      binding: ChangeVoiceBinding(),
    ),
    GetPage(
      name: AppRoutes.playSound,
      page: () => PlaySoundView(),
      binding: PlaySoundBinding(),
      transitionDuration: const Duration(milliseconds: 200),
      transition: Transition.downToUp,
      curve: Curves.easeIn,
    ),
    GetPage(
      name: AppRoutes.about,
      page: () => AboutView(),
      binding: AboutBinding(),
    ),
    GetPage(
      name: AppRoutes.privacy,
      page: () => WebPageView(),
      binding: WebPageBinding(),
    ),
    GetPage(
      name: AppRoutes.terms,
      page: () => WebPageView(),
      binding: WebPageBinding(),
    ),

    /// SideB
    GetPage(
      name: AppRoutes.splashB,
      page: () => splash_view_b.SplashView(),
      binding: splash_binding_b.SplashBinding(),
    ),
    GetPage(
      name: AppRoutes.initialB,
      page: () => initial_view_b.InitialView(),
      bindings: [initial_binding_b.InitialBinding(), home_binding_b.HomeBinding(), SearchMusicBinding(), me_binding_b.MeBinding()],
    ),
    GetPage(
      name: AppRoutes.playMusic,
      page: () => PlayMusicView(),
      binding: PlayMusicBinding(),
      transitionDuration: const Duration(milliseconds: 200),
      transition: Transition.downToUp,
      curve: Curves.easeIn,
    ),
  ];
}
