import 'package:eatvio_app/features/feed/models/feed_blog_post_model.dart'; import 'package:eatvio_app/features/feed/models/post_feed_mapper.dart'; import 'package:eatvio_app/features/feed/models/post_feed_pagination_model.dart'; import 'fixture_reader.dart'; class FeedFixtures { FeedFixtures._(); static Map postFeedResponseJson() { return FixtureReader.readAsMap('feed/post_feed_response.json'); } static Map postFeedNextPageResponseJson() { return FixtureReader.readAsMap('feed/post_feed_next_page_response.json'); } static Map postFeedEmptyResponseJson() { return FixtureReader.readAsMap('feed/post_feed_empty_response.json'); } static Map feedBlogPostResponseJson() { return FixtureReader.readAsMap('feed/feed_blog_post_response.json'); } static Map feedBlogPostGalleryResponseJson() { return FixtureReader.readAsMap('feed/feed_blog_post_gallery_response.json'); } static Map feedBlogPostVideoOnlyResponseJson() { return FixtureReader.readAsMap('feed/feed_blog_post_video_only_response.json'); } static Map feedBlogPostGalleryAndVideoResponseJson() { return FixtureReader.readAsMap('feed/feed_blog_post_gallery_and_video_response.json'); } static PostFeedPaginationModel postFeedPaginationModel() { return PostFeedPaginationModel.fromJson(postFeedResponseJson()); } static PostFeedPaginationModel postFeedNextPagePaginationModel() { return PostFeedPaginationModel.fromJson(postFeedNextPageResponseJson()); } static PostFeedPaginationModel postFeedEmptyPaginationModel() { return PostFeedPaginationModel.fromJson(postFeedEmptyResponseJson()); } static PostFeedItemModel postFeedItem({int index = 0}) { return postFeedPaginationModel().data[index]; } static List mappedFeedPosts({int? currentUserId}) { return postFeedPaginationModel().data .map((item) => PostFeedMapper.fromPostFeedItem(item, currentUserId: currentUserId)) .toList(); } static FeedBlogPostModel feedBlogPostModel() { return FeedBlogPostModel.fromJson(feedBlogPostResponseJson()); } static FeedBlogPostModel feedBlogPostWithGallery() { return FeedBlogPostModel.fromJson(feedBlogPostGalleryResponseJson()); } static FeedBlogPostModel feedBlogPostVideoOnly() { return FeedBlogPostModel.fromJson(feedBlogPostVideoOnlyResponseJson()); } static FeedBlogPostModel feedBlogPostGalleryAndVideo() { return FeedBlogPostModel.fromJson(feedBlogPostGalleryAndVideoResponseJson()); } static List blogPostsByAuthor() { return FixtureReader.readAsList('profile/blog_posts_by_author_response.json') .map((item) => FeedBlogPostModel.fromJson(item as Map)) .toList(); } }