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

namespace Managing.ABI.GmxV2.SyntheticsReader.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", "affiliateRewardFactor", 5)]
        public virtual BigInteger AffiliateRewardFactor { get; set; }
        [Parameter("uint256", "adjustedAffiliateRewardFactor", 6)]
        public virtual BigInteger AdjustedAffiliateRewardFactor { get; set; }
        [Parameter("uint256", "traderDiscountFactor", 7)]
        public virtual BigInteger TraderDiscountFactor { get; set; }
        [Parameter("uint256", "totalRebateAmount", 8)]
        public virtual BigInteger TotalRebateAmount { get; set; }
        [Parameter("uint256", "traderDiscountAmount", 9)]
        public virtual BigInteger TraderDiscountAmount { get; set; }
        [Parameter("uint256", "affiliateRewardAmount", 10)]
        public virtual BigInteger AffiliateRewardAmount { get; set; }
    }
}
