//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Bajun.Network.NET.RestClient.Mockup.Generated.Clients
{
   using System;
   using System.Threading.Tasks;
   using System.Net.Http;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_nft_staking.pallet;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_nft_staking.contracts;
   using Ajuna.NetApi.Model.Types.Primitive;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.bounded.bounded_vec;
   using Bajun.Network.NET.RestClient.Mockup.Generated.Interfaces;
   
   public sealed class NftStakeControllerMockupClient : MockupBaseClient, INftStakeControllerMockupClient
   {
      private HttpClient _httpClient;
      public NftStakeControllerMockupClient(HttpClient httpClient)
      {
         _httpClient = httpClient;
      }
      public async Task<bool> SetOrganizer(AccountId32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/Organizer", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.OrganizerParams());
      }
      public async Task<bool> SetLockedState(EnumPalletLockedState value)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/LockedState", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.LockedStateParams());
      }
      public async Task<bool> SetActiveContracts(StakingContract value, U128 key)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/ActiveContracts", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.ActiveContractsParams(key));
      }
      public async Task<bool> SetContractOwners(AccountId32 value, U128 key)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/ContractOwners", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.ContractOwnersParams(key));
      }
      public async Task<bool> SetContractDurations(U32 value, U128 key)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/ContractDurations", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.ContractDurationsParams(key));
      }
      public async Task<bool> SetContractStakedAssets(BoundedVecT12 value, U128 key)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/ContractStakedAssets", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.ContractStakedAssetsParams(key));
      }
      public async Task<bool> SetTreasuryAccount(AccountId32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/TreasuryAccount", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.TreasuryAccountParams());
      }
      public async Task<bool> SetContractCollectionId(U32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/ContractCollectionId", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.ContractCollectionIdParams());
      }
      public async Task<bool> SetNextContractId(U128 value)
      {
         return await SendMockupRequestAsync(_httpClient, "NftStake/NextContractId", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStakeStorage.NextContractIdParams());
      }
   }
}
