using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
using FruitBank.Common.Dtos;
using FruitBank.Common.Entities;
//using Nop.Core.Domain.Catalog;

namespace FruitBank.Common.Interfaces;

public interface IShippingItem : IEntityInt, ITimeStampInfo, IMeasurable, IMeasured
{
    int ShippingDocumentId { get; set; }
    int? PalletId { get; set; }
    int? ProductId { get; set; }

    string Name { get; set; }
    string NameOnDocument { get; set; }
    string HungarianName { get; set; }

    int PalletsOnDocument { get; set; }

    int QuantityOnDocument { get; set; }
    double NetWeightOnDocument { get; set; }
    double GrossWeightOnDocument { get; set; }

    int MeasuringCount { get; set; }
    int MeasuredQuantity { get; set; }
    double MeasuredNetWeight { get; set; }
    double MeasuredGrossWeight { get; set; }

    public ProductDto? ProductDto { get; set; }
    public ShippingDocument? ShippingDocument { get; set; }
    public List<ShippingItemPallet>? ShippingItemPallets { get; set; }

    public bool IsValidMeasuringValues();
}