using System.Text.Json; namespace Singer_Hexdive.Interfaces.ServiceInterfaces { public abstract class BaseMerchantService { protected Dictionary DeserializePayload(object payload) { if (payload is null) throw new ArgumentNullException(nameof(payload)); var json = JsonSerializer.Serialize(payload); return JsonSerializer.Deserialize>(json) ?? throw new InvalidOperationException("Failed to deserialize payload."); } public abstract Task GetM_PersonalDetails(object payload); public abstract Task PostM_PersonalDetails(object payload); public abstract Task GetM_BusinessDetails(object payload); public abstract Task PostM_BusinessDetails(object payload); public abstract Task GetM_BankDetails(object payload); public abstract Task PostM_BankDetails(object payload); } }