using Microsoft.AspNetCore.Mvc; using QtCNETAPI.Dtos.User; using QtCNETAPI.Dtos.Room; using QtCNETAPI.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using QtCNETAPI.Enums; using QtCNETAPI.Schema; namespace QtCNETAPI.Services.ApiService { public interface IApiService { public string? SessionToken { get; set; } public User CurrentUser { get; } public event EventHandler? OnCurrentUserUpdate; public Task> PingServerAsync(); public Task>> GetOnlineUsersAsync(); public Task>> GetAllUsersAsync(); public Task> LoginAsync(UserLoginDto userLoginDto); public Task> RefreshLogin(string refreshToken); public Task> RefreshSessionIfInvalid(); public Task SetCurrentUser(); public Task> RegisterAsync(UserDto userDto); public Task> GetUserInformationAsync(string id); public Task> UpdateUserInformationAsync(UserUpdateInformationDto request); public Task> UpdateUserProfilePic(string filePath); public Task> GetUserProfilePic(string userId); public Task> CreateRoomAsync(RoomDto request); public Task> DeleteRoomAsync(string roomId); public Task>> GetAllRoomsAsync(); public Task>> GetCurrentUserContacts(); public Task> AddContactToCurrentUser(string userId); public Task> AcceptContactRequest(string userId); public Task> RemoveContactFromCurrentUser(string userId); public Task> AddCurrencyToCurrentUser(int amount, bool isSpinClaim); public Task> GetCurrentStockPrice(); public Task> BuyStock(int amount); public Task> SellStock(int amount); public Task> GetRandomNumber(); public Task> GuessRandomNumber(int original, int guess); public Task>> GetStoreItems(); public Task> GetStoreItem(int id); public Task> BuyStoreItem(int id); public Task>> GetOwnedStoreItems(); public Task> GetOwnedStoreItem(int id); } }