import 'package:eatvio_app/features/feed/models/comment_model.dart'; import 'package:eatvio_app/features/feed/models/diets_pagination_model.dart'; import 'package:eatvio_app/features/feed/models/feed_blog_post_settings_model.dart'; import 'package:eatvio_app/features/feed/models/feed_consultant_model.dart'; import 'package:eatvio_app/features/feed/models/plan_pagination_model.dart'; import 'package:eatvio_app/features/feed/models/recipes_model.dart'; import 'package:eatvio_app/features/feed/services/feed_service.dart'; class FeedRepository { final FeedService feedService; FeedRepository({ required this.feedService, }); Future getFeedBlogPosts({ String? query, int page = 1, }) async { try { return (await feedService.getBlogPostList( page: page, query: query, )); } catch (e) { rethrow; } } Future> getRecipes({ String? query, List? tags, int page = 1, }) async { try { return (await feedService.getRecipes( query: query, tags: tags, page: page, )) .recipesList; } catch (e) { rethrow; } } Future getDiets({ int page = 1, String? query, String? types, int? duration, String? sorting, }) async { try { return (await feedService.getDiets( page: page, query: query, types: types, duration: duration, sorting: sorting, )); } catch (e) { rethrow; } } Future getPlans({ int page = 1, String? query, String? types, int? duration, int? minPrice, int? maxPrice, }) async { try { return (await feedService.getPlans( page: page, query: query, types: types, duration: duration, minPrice: minPrice, maxPrice: maxPrice, )); } catch (e) { rethrow; } } Future getBlogPostComments({ required String id, }) async { try { return (await feedService.getBlogPostComments(id: id)); } catch (e) { rethrow; } } Future sendBlogPostComment({ required String id, required String commentText, int? parentCommentId, }) async { try { await feedService.sendBlogPostComment( id: id, body: commentText, parentCommentId: parentCommentId, ); } catch (e) { rethrow; } } Future getDietsComments({ required String id, }) async { try { return (await feedService.getDietsComments(id: id)); } catch (e) { rethrow; } } Future sendDietsComment({ required String id, required String commentText, int? parentCommentId, }) async { try { await feedService.sendDietsComment( id: id, body: commentText, parentCommentId: parentCommentId, ); } catch (e) { rethrow; } } Future getRecipesComments({ required String id, }) async { try { return (await feedService.getRecipesComments(id: id)); } catch (e) { rethrow; } } Future sendRecipesComment({ required String id, required String commentText, int? parentCommentId, }) async { try { await feedService.sendRecipesComment( id: id, body: commentText, parentCommentId: parentCommentId, ); } catch (e) { rethrow; } } Future getPlansComments({ required String slug, }) async { try { return (await feedService.getPlansComments(slug: slug)); } catch (e) { rethrow; } } Future sendPlansComment({ required String slug, required String commentText, int? parentCommentId, }) async { try { await feedService.sendPlansComment( slug: slug, body: commentText, parentCommentId: parentCommentId, ); } catch (e) { rethrow; } } Future likeBlogPost({ required int id, }) async { try { await feedService.likeBlogPost(id: id); } catch (e) { rethrow; } } Future unlikedBlogPost({ required int id, }) async { try { await feedService.unlikedBlogPost(id: id); } catch (e) { rethrow; } } Future> getConsultants() async { try { return (await feedService.getConsultants()).data; } catch (e) { rethrow; } } }