using Distribution.Models; namespace Distribution.Features.Stock; // Shared pagination wrapper public record PagedResponse(int Page, int PageSize, int Total, List Items); // Balance public record StockBalanceResponse( Guid ItemId, string ItemName, Guid LocationId, LocationType LocationType, decimal Quantity, DateTime UpdatedAt); public record StockTotalResponse( Guid ItemId, string ItemName, decimal TotalQuantity, List Breakdown); // Movement public record StockMovementResponse( Guid Id, Guid ItemId, string ItemName, Guid? FromLocationId, LocationType? FromLocationType, Guid? ToLocationId, LocationType? ToLocationType, decimal Quantity, MovementType Type, string? ReasonCode, Guid? ReferenceId, DateTime CreatedAt, Guid CreatedBy); // Write requests public record TransferRequest( Guid ItemId, Guid FromLocationId, LocationType FromLocationType, Guid ToLocationId, LocationType ToLocationType, decimal Quantity, Guid? ReferenceId); public record DamageRequest( Guid ItemId, Guid LocationId, LocationType LocationType, decimal Quantity, string ReasonCode); public record CustomerReturnRequest( Guid ItemId, Guid VehicleId, decimal Quantity, Guid? ReferenceId); public record AdjustmentRequest( Guid ItemId, Guid LocationId, LocationType LocationType, decimal Quantity, string ReasonCode);