import 'package:dating_touchme_app/model/discover/audience_list_data.dart'; import 'package:dating_touchme_app/model/discover/rtc_channel_model.dart'; import 'package:dating_touchme_app/model/live/gift_product_model.dart'; import 'package:dating_touchme_app/model/rtc/chat_audio_product_model.dart'; import 'package:dating_touchme_app/model/rtc/consume_rtc_channel_response.dart'; import 'package:dating_touchme_app/model/rtc/link_mic_card_model.dart'; import 'package:dating_touchme_app/model/rtc/rtc_channel_data.dart'; import 'package:dating_touchme_app/model/rtc/rtc_channel_detail.dart'; import 'package:dating_touchme_app/network/api_urls.dart'; import 'package:dating_touchme_app/network/response_model.dart'; import 'package:dio/dio.dart'; import 'package:retrofit/retrofit.dart'; part 'rtc_api.g.dart'; /// RTC 相关接口 @RestApi(baseUrl: '') abstract class RtcApi { factory RtcApi(Dio dio) = _RtcApi; /// 创建实时音视频频道 @GET(ApiUrls.getSwRtcToken) Future>> getSwRtcToken( @Query('channelId') String channelId, ); /// 获取声网 RTM Token @GET(ApiUrls.getSwRtmToken) Future>> getSwRtmToken(); /// 创建实时音视频频道(返回字符串) @POST(ApiUrls.createRtcChannel) Future>> createRtcChannel(); /// 创建一对一RTC频道(type: 1为音频,2为视频) @POST(ApiUrls.createOneOnOneRtcChannel) Future>> createOneOnOneRtcChannel( @Body() Map data, ); /// 获取 RTC 频道详情 @GET(ApiUrls.getRtcChannelDetail) Future>> getRtcChannelDetail( @Query('channelId') String channelId, ); /// 连接 RTC 频道 @POST(ApiUrls.connectRtcChannel) Future>> connectRtcChannel( @Body() Map data, ); /// 获取 RTC 频道用户详情 @GET(ApiUrls.getDatingRtcChannelUserDetail) Future>> getDatingRtcChannelUserDetail( @Query('channelId') String channelId, @Query('uId') int uId, ); /// 启用/禁用 RTC 频道用户音频 @POST(ApiUrls.enableRtcChannelUserAudio) Future>> enableRtcChannelUserAudio( @Body() Map data, ); /// 断开 RTC 频道连接 @POST(ApiUrls.disconnectRtcChannel) Future>> disconnectRtcChannel( @Body() Map data, ); /// 销毁 RTC 频道 @POST(ApiUrls.destroyRtcChannel) Future>> destroyRtcChannel(); /// 获取 RTC 频道分页列表 @GET(ApiUrls.getRtcChannelPage) Future>>> getRtcChannelPage(); /// 获取礼物产品列表 @GET(ApiUrls.listGiftProduct) Future>>> listGiftProduct(); /// 频道礼物/添加好友消费 @POST(ApiUrls.costChannelGift) Future>> costChannelGift( @Body() Map data, ); /// IM 聊天送礼 @POST(ApiUrls.costImGift) Future>> costImGift( @Body() Map data, ); /// 踢出 RTC 频道用户 @POST(ApiUrls.kickingRtcChannelUser) Future>> kickingRtcChannelUser( @Body() Map data, ); /// 获取用户道具连麦卡片 @GET(ApiUrls.getUserPropLinkMicCard) Future>> getUserPropLinkMicCard(); /// 拒绝一对一RTC频道 @POST(ApiUrls.refuseOneOnOneRtcChannel) Future>> refuseOneOnOneRtcChannel( @Body() Map data, ); /// 取消一对一RTC频道 @POST(ApiUrls.cancelOneOnOneRtcChannel) Future>> cancelOneOnOneRtcChannel( @Body() Map data, ); /// 连接一对一RTC频道 @POST(ApiUrls.connectOneOnOneRtcChannel) Future>> connectOneOnOneRtcChannel( @Body() Map data, ); /// 终止一对一RTC频道 @POST(ApiUrls.terminateOneOnOneRtcChannel) Future>> terminateOneOnOneRtcChannel( @Body() Map data, ); /// 获取聊天音频产品列表 @GET(ApiUrls.listChatAudioProduct) Future>>> listChatAudioProduct( @Query('toUserId') String toUserId, ); /// 消费一对一RTC频道 @POST(ApiUrls.consumeOneOnOneRtcChannel) Future>> consumeOneOnOneRtcChannel( @Body() Map data, ); @GET(ApiUrls.userPageRtcChannelAudience) Future>> userPageRtcChannelAudience( { @Query('pageNum') required int pageNum, @Query('pageSize') required int pageSize, @Query('channelId') required String channelId, } ); @GET(ApiUrls.userPageMicJoinRtcChannelUser) Future>> userPageMicJoinRtcChannelUser( { @Query('pageNum') required int pageNum, @Query('pageSize') required int pageSize, @Query('channelId') required String channelId, } ); }