content: // Project imports:
  import '../../core/boorus/defaults/widgets.dart';
  import '../../core/boorus/engine/engine.dart';
  import '../../core/configs/config/types.dart';
  import '../../core/configs/create/widgets.dart';
  import '../../core/configs/manage/widgets.dart';
  import '../../core/posts/details/widgets.dart';
  import '../../core/posts/details_parts/types.dart';
  import '../../core/posts/details_parts/widgets.dart';
  import 'configs/widgets.dart';
  import 'favorites/widgets.dart';
  import 'home/widgets.dart';
  import 'posts/types.dart';
  import 'posts/widgets.dart';
  import 'users/widgets.dart';
  
  class AnimePicturesBuilder extends BaseBooruBuilder {
    AnimePicturesBuilder();
  
    @override
    CreateConfigPageBuilder get createConfigPageBuilder =>
        (
          context,
          id, {
          backgroundColor,
        }) => CreateBooruConfigScope(
          id: id,
          config: BooruConfig.defaultConfig(
            booruType: id.booruType,
            url: id.url,
            customDownloadFileNameFormat: null,
          ),
          child: CreateAnimePicturesConfigPage(
            backgroundColor: backgroundColor,
          ),
        );
  
    @override
    UpdateConfigPageBuilder get updateConfigPageBuilder =>
        (
          context,
          id, {
          backgroundColor,
          initialTab,
        }) => UpdateBooruConfigScope(
          id: id,
          child: CreateAnimePicturesConfigPage(
            backgroundColor: backgroundColor,
            initialTab: initialTab,
          ),
        );
  
    @override
    PostDetailsPageBuilder get postDetailsPageBuilder => (context, payload) {
      final posts = payload.posts.map((e) => e as AnimePicturesPost).toList();
  
      return PostDetailsScope(
        initialIndex: payload.initialIndex,
        initialThumbnailUrl: payload.initialThumbnailUrl,
        posts: posts,
        scrollController: payload.scrollController,
        dislclaimer: payload.dislclaimer,
        child: const DefaultPostDetailsPage<AnimePicturesPost>(),
      );
    };
  
    @override
    HomePageBuilder get homePageBuilder =>
        (context) => const AnimePicturesHomePage();
  
    @override
    FavoritesPageBuilder? get favoritesPageBuilder =>
        (context) => const AnimePicturesCurrentUserIdScope(
          child: AnimePicturesFavoritesPage(),
        );
  
    @override
    final postDetailsUIBuilder = PostDetailsUIBuilder(
      preview: {
        DetailsPart.toolbar: (context) =>
            const DefaultInheritedPostActionToolbar<AnimePicturesPost>(),
      },
      full: {
        DetailsPart.toolbar: (context) =>
            const DefaultInheritedPostActionToolbar<AnimePicturesPost>(),
        DetailsPart.tags: (context) =>
            const DefaultInheritedTagsTile<AnimePicturesPost>(),
        DetailsPart.fileDetails: (context) =>
            const DefaultInheritedFileDetailsSection<AnimePicturesPost>(),
        DetailsPart.relatedPosts: (context) =>
            const AnimePicturesRelatedPostsSection(),
      },
    );
  }
  