using System; using System.Collections.Generic; using System.Threading.Tasks; using Chtn.CSharp.SDK.Core; using Chtn.CSharp.SDK.Models.Chat; namespace Chtn.CSharp.SDK.Services { public interface IChatsService { Task> Get(GetChatsReq req); Task GetUserAvailability(GetAvailabilityReq req); Task ToggleMute(ToggleChatMuteReq req); Task StartNew(StartNewReq req); } public class ChatsServiceProvider : IChatsService { private readonly ApiClient _apiClient; public ChatsServiceProvider(ApiClient apiClient) { _apiClient = apiClient ?? throw new ArgumentNullException(nameof(apiClient)); } public async Task> Get(GetChatsReq req) => await _apiClient.PostAsync>("chat/get", req); public async Task GetUserAvailability(GetAvailabilityReq req) => await _apiClient.PostAsync("chat/availability", req); public async Task ToggleMute(ToggleChatMuteReq req) => await _apiClient.PostAsync("v2/chat/toggleMute", req); public async Task StartNew(StartNewReq req) => await _apiClient.PostAsync("chat/startNew", req); } }