import 'package:dio/dio.dart'; import 'package:eatvio_app/features/chat/models/chat_messages_model.dart'; import 'package:eatvio_app/features/chat/models/chat_room_model.dart'; import 'package:eatvio_app/features/chat/models/chat_room_pagination_model.dart'; import 'package:eatvio_app/features/chat/models/payment_model.dart'; import 'package:eatvio_app/features/chat/models/plan_complain_model.dart'; import 'package:eatvio_app/features/plans/models/chosen_plan_model.dart'; import 'package:retrofit/retrofit.dart'; part 'chat_service.g.dart'; @RestApi() abstract class ChatService { factory ChatService(Dio dio, {String baseUrl}) = _ChatService; @GET('/api/chat/index') Future getChatRooms({ @Query('page') required int page, @Query('find') String? query, }); @GET('/api/chat/show/{id}') Future> getChatRoom({ @Path() required String id, }); @POST('/api/chat/{id}/message/send') @MultiPart() Future sendMessage({ @Path() required String id, @Part() String? data, @Part(name: 'media_data[]', contentType: 'multipart/form-data') List? mediaData, }); @GET('/api/chat/show/{id}/messages?page={page}') Future getChatMessages({ @Path() required String id, @Path() required int page, }); @GET('/api/chat/get_by_user/{user}') Future getChatRoomIdByUserSlug({ @Path() required String user, }); @POST('/api/chat/{id}/messages/markAsRead') Future markMessagesAsRead({ @Path() required String id, @Body() required Map> body, }); @POST('/api/chosen_plans/{id}/cancel') Future cancelChosenPlan({ @Path() required int id, }); @POST('/api/chosen_plans/{id}/negotiate_contract_start') Future choseStartPlanDate({ @Path() required int id, @Body() required Map date, }); @POST('/api/chosen_plans/{id}/start_payment_process') Future getPaymentLink({ @Path() required int id, }); @GET('/api/chosen_plans/show/{id}') Future getChosenPlan({ @Path() required int id, }); @POST('/api/chosen_plans/{id}/confirm_finish') Future finishChosenPlan({ @Path() required int id, }); @POST('/api/chosen_plans/{id}/complain') Future complainAboutConsultation({ @Path() required int id, @Body() required PlanComplainModel body, }); }