using System.Numerics;
using Nethereum.ABI.FunctionEncoding.Attributes;

namespace Managing.ABI.GmxV2.Reader.ContractDefinition
{
    public partial class PositionReferralFees : PositionReferralFeesBase
    {
    }

    public class PositionReferralFeesBase
    {
        [Parameter("bytes32", "referralCode", 1)]
        public virtual byte[] ReferralCode { get; set; }

        [Parameter("address", "affiliate", 2)] public virtual string Affiliate { get; set; }
        [Parameter("address", "trader", 3)] public virtual string Trader { get; set; }

        [Parameter("uint256", "totalRebateFactor", 4)]
        public virtual BigInteger TotalRebateFactor { get; set; }

        [Parameter("uint256", "traderDiscountFactor", 5)]
        public virtual BigInteger TraderDiscountFactor { get; set; }

        [Parameter("uint256", "totalRebateAmount", 6)]
        public virtual BigInteger TotalRebateAmount { get; set; }

        [Parameter("uint256", "traderDiscountAmount", 7)]
        public virtual BigInteger TraderDiscountAmount { get; set; }

        [Parameter("uint256", "affiliateRewardAmount", 8)]
        public virtual BigInteger AffiliateRewardAmount { get; set; }
    }
}