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

namespace Managing.ABI.GmxV2.SyntheticsReader.ContractDefinition
{
    public partial class PositionInfo : PositionInfoBase
    {
    }

    public class PositionInfoBase
    {
        [Parameter("tuple", "position", 1)] public virtual PositionProps Position { get; set; }

        [Parameter("tuple", "fees", 2)] public virtual PositionFees Fees { get; set; }

        [Parameter("tuple", "executionPriceResult", 3)]
        public virtual ExecutionPriceResult ExecutionPriceResult { get; set; }

        [Parameter("int256", "basePnlUsd", 4)] public virtual BigInteger BasePnlUsd { get; set; }

        [Parameter("int256", "uncappedBasePnlUsd", 5)]
        public virtual BigInteger UncappedBasePnlUsd { get; set; }

        [Parameter("int256", "pnlAfterPriceImpactUsd", 6)]
        public virtual BigInteger PnlAfterPriceImpactUsd { get; set; }
    }
}