using AyCode.Interfaces;
using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
using FruitBank.Common.Entities;
using FruitBank.Common.Enums;

namespace FruitBank.Common.Interfaces;

public interface IMeasuringItemPalletBase : IEntityInt, IMeasuringValues, IMeasured, ITimeStampInfo, ICustomForeignKeyInt, IMeasurableStatus
{
    double TareWeight { get; set; }
    double PalletWeight { get; set; }

    int? CreatorId { get; set; }
    int? ModifierId { get; set; }

    void SetParentPropToNull();

    double CalculateNetWeight();

    bool IsValidSafeMeasuringValues();
    bool IsValidMeasuringValues(bool isMeasurable);
    bool IsMeasuredAndValid(bool isMeasurable);

    void SetupCustomItemPalletMeauringValues(bool isMeasurable);
}