using Connected.Data; using Logistics.Types.Warehouses; namespace Logistics.Types.WarehouseLocations; /// /// Represents a physical or logical location inside a . /// /// /// Each contains zero or more locations. /// Location can be a container, which means it contains child locations, or leaf, which doesn't contain /// child locations. Items can be put only in leaf locations, whereas containers acts only as aggregators /// which means they provide calculated values for items contained in the child locations. /// public interface IWarehouseLocation : IPrimaryKey { int? Parent { get; init; } int Warehouse { get; init; } string Name { get; init; } string Code { get; init; } Status Status { get; init; } /// /// The number of direct child items that belong to this /// location. If this value is 0 it means the location /// is leaf. If not, it's a container. /// int ItemCount { get; init; } }