import 'dart:io'; import 'package:dio/dio.dart'; import 'package:eatvio_app/features/diary/models/diary_day_model.dart'; import 'package:eatvio_app/features/diary/models/nutrition_model.dart'; import 'package:retrofit/retrofit.dart'; part 'diary_service.g.dart'; @RestApi() abstract class DiaryService { factory DiaryService(Dio dio, {String baseUrl}) = _DiaryService; @GET('/api/diary/index/{date}') Future> getDiaryIndexByDate({ @Path('date') required String date, // yyyy-mm-dd }); @GET('/api/diary/{diary_id}/show') Future getDiaryDay({ @Path('diary_id') required int index, }); @GET('/api/diary/{diary_id}/dailyNutritionData') Future getNutrition({ @Path('diary_id') required int index, }); @POST('/api/diary/{diary_id}/meal/{meal_id}/photo/upload') @MultiPart() Future uploadPhotoOfMeal({ @Path('diary_id') required int diaryId, @Path('meal_id') required int mealId, @Part(name: 'photo') required File photo, }); @DELETE('/api/diary/{diary_id}/meal/{meal_id}/photo/delete') Future deletePhotoOfMeal({ @Path('diary_id') required int diaryId, @Path('meal_id') required int mealId, @Query('id') required int id, @Query('path') required String path, }); @POST('/api/diary/{diary_id}/meal/{meal_id}/portions/create') Future addProductToMeal({ @Path('diary_id') required int diaryId, @Path('meal_id') required int mealId, @Part(name: 'product_name') required String productName, @Part(name: 'portion') required String portion, @Part(name: 'quantity') required int quantity, }); @PUT('/api/diary/{diary_id}/meal/{meal_id}/portions/{portion_id}/update') Future updateProductInMeal({ @Path('diary_id') required int diaryId, @Path('meal_id') required int mealId, @Path('portion_id') required int portionId, @Body() required ProductInMeal productInMeal, }); @DELETE('/api/diary/{diary_id}/meal/{meal_id}/portions/{portion_id}/delete') Future deleteProductFromMeal({ @Path('diary_id') required int diaryId, @Path('meal_id') required int mealId, @Path('portion_id') required int portionId, }); @POST('/api/diary/{diary_id}/finishDay') Future finishDiaryDay({ @Path('diary_id') required int diaryId, // @Body() required FinishDiaryDayModel finishDiaryDayModel, }); }