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

import 'package:flutter/animation.dart';
import 'package:get/get.dart';
import 'package:tone_snap/modules/launch/launch_binding.dart';
import 'package:tone_snap/modules/launch/launch_view.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/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/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/upload_method/upload_mothod_binding.dart';
import 'package:tone_snap/modules/sidea/upload_method/upload_mothod_view.dart';
import 'package:tone_snap/modules/sideb/album_song_list/album_song_list_binding.dart';
import 'package:tone_snap/modules/sideb/album_song_list/album_song_list_view.dart';
import 'package:tone_snap/modules/sideb/artists/artists_binding.dart';
import 'package:tone_snap/modules/sideb/artists/artists_view.dart';
import 'package:tone_snap/modules/sideb/custom_playlist/custom_playlist_binding.dart';
import 'package:tone_snap/modules/sideb/custom_playlist/custom_playlist_view.dart';
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/love_songs/love_songs_binding.dart';
import 'package:tone_snap/modules/sideb/love_songs/love_songs_view.dart';
import 'package:tone_snap/modules/sideb/offline/offline_binding.dart';
import 'package:tone_snap/modules/sideb/offline/offline_view.dart';
import 'package:tone_snap/modules/sideb/play_page/play_page_binding.dart';
import 'package:tone_snap/modules/sideb/play_page/play_page_view.dart';
import 'package:tone_snap/modules/sideb/search_result/search_result_binding.dart';
import 'package:tone_snap/modules/sideb/search_result/search_result_view.dart';
import 'package:tone_snap/modules/sideb/settings/settings_binding.dart';
import 'package:tone_snap/modules/sideb/settings/settings_view.dart';
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 = [
    GetPage(
      name: AppRoutes.launch,
      page: () => LaunchView(),
      binding: LaunchBinding(),
    ),

    /// SideA
    GetPage(
      name: AppRoutes.initialA,
      page: () => initial_view_a.InitialView(),
      binding: initial_binding_a.InitialBinding(),
    ),
    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.initialB,
      page: () => initial_view_b.InitialView(),
      binding: initial_binding_b.InitialBinding(),
    ),
    GetPage(
      name: AppRoutes.playPage,
      page: () => PlayPageView(),
      binding: PlayPageBinding(),
      // transitionDuration: const Duration(milliseconds: 200),
      transition: Transition.downToUp,
      curve: Curves.easeIn,
    ),
    GetPage(
      name: AppRoutes.albumSongList,
      page: () => AlbumSongListView(),
      binding: AlbumSongListBinding(),
    ),
    GetPage(
      name: AppRoutes.loveSongs,
      page: () => LoveSongsView(),
      binding: LoveSongsBinding(),
    ),
    GetPage(
      name: AppRoutes.artists,
      page: () => ArtistsView(),
      binding: ArtistsBinding(),
    ),
    GetPage(
      name: AppRoutes.offline,
      page: () => OfflineView(),
      binding: OfflineBinding(),
    ),
    GetPage(
      name: AppRoutes.customPlaylist,
      page: () => CustomPlaylistView(),
      binding: CustomPlaylistBinding(),
    ),
    GetPage(
      name: AppRoutes.searchResult,
      page: () => SearchResultView(),
      binding: SearchResultBinding(),
    ),
    GetPage(
      name: AppRoutes.setting,
      page: () => SettingsView(),
      binding: SettingsBinding(),
    ),
  ];
}
