//------------------------------------------------------------------------------
// <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.pallet_nfts.types;
   using Ajuna.NetApi.Model.Types.Primitive;
   using Ajuna.NetApi.Model.Types.Base;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.bounded.bounded_vec;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.bounded.bounded_btree_set;
   using Bajun.Network.NET.RestClient.Mockup.Generated.Interfaces;
   
   public sealed class NftControllerMockupClient : MockupBaseClient, INftControllerMockupClient
   {
      private HttpClient _httpClient;
      public NftControllerMockupClient(HttpClient httpClient)
      {
         _httpClient = httpClient;
      }
      public async Task<bool> SetCollection(CollectionDetails value, U32 key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/Collection", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.CollectionParams(key));
      }
      public async Task<bool> SetOwnershipAcceptance(U32 value, Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto.AccountId32 key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/OwnershipAcceptance", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.OwnershipAcceptanceParams(key));
      }
      public async Task<bool> SetAccount(BaseTuple value, BaseTuple<Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto.AccountId32, U32, U128> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/Account", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.AccountParams(key));
      }
      public async Task<bool> SetCollectionAccount(BaseTuple value, BaseTuple<Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto.AccountId32, U32> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/CollectionAccount", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.CollectionAccountParams(key));
      }
      public async Task<bool> SetCollectionRoleOf(BitFlagsT3 value, BaseTuple<U32, Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto.AccountId32> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/CollectionRoleOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.CollectionRoleOfParams(key));
      }
      public async Task<bool> SetItem(ItemDetails value, BaseTuple<U32, U128> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/Item", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.ItemParams(key));
      }
      public async Task<bool> SetCollectionMetadataOf(CollectionMetadata value, U32 key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/CollectionMetadataOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.CollectionMetadataOfParams(key));
      }
      public async Task<bool> SetItemMetadataOf(ItemMetadata value, BaseTuple<U32, U128> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/ItemMetadataOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.ItemMetadataOfParams(key));
      }
      public async Task<bool> SetAttribute(BaseTuple<BoundedVecT7, AttributeDeposit> value, BaseTuple<U32, BaseOpt<U128>, Bajun.Network.NET.NetApiExt.Generated.Model.frame_support.traits.tokens.misc.EnumAttributeNamespace, BoundedVecT6> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/Attribute", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.AttributeParams(key));
      }
      public async Task<bool> SetItemPriceOf(BaseTuple<U128, BaseOpt<Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto.AccountId32>> value, BaseTuple<U32, U128> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/ItemPriceOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.ItemPriceOfParams(key));
      }
      public async Task<bool> SetItemAttributesApprovalsOf(BoundedBTreeSetT2 value, BaseTuple<U32, U128> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/ItemAttributesApprovalsOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.ItemAttributesApprovalsOfParams(key));
      }
      public async Task<bool> SetNextCollectionId(U32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/NextCollectionId", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.NextCollectionIdParams());
      }
      public async Task<bool> SetPendingSwapOf(PendingSwap value, BaseTuple<U32, U128> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/PendingSwapOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.PendingSwapOfParams(key));
      }
      public async Task<bool> SetCollectionConfigOf(CollectionConfig value, U32 key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/CollectionConfigOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.CollectionConfigOfParams(key));
      }
      public async Task<bool> SetItemConfigOf(ItemConfig value, BaseTuple<U32, U128> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Nft/ItemConfigOf", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.NftStorage.ItemConfigOfParams(key));
      }
   }
}
