39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Distribution.Models
|
|
{
|
|
public class StockMovement
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
|
|
public Guid FK_ItemId { get; set; }
|
|
[ForeignKey("FK_ItemId")]
|
|
public Item Item { get; set; }
|
|
|
|
public Guid? FromLocationId { get; set; }
|
|
public LocationType? FromLocationType { get; set; }
|
|
|
|
public Guid? ToLocationId { get; set; }
|
|
public LocationType? ToLocationType { get; set; }
|
|
|
|
/// <summary>Null for items that don't track batches/expiry — no behavior change for existing items.</summary>
|
|
public Guid? FK_ItemBatchId { get; set; }
|
|
[ForeignKey("FK_ItemBatchId")]
|
|
public ItemBatch? ItemBatch { get; set; }
|
|
|
|
/// <summary>Null for items that don't track serial numbers. Quantity is always 1 when set.</summary>
|
|
public Guid? FK_ItemSerialNumberId { get; set; }
|
|
[ForeignKey("FK_ItemSerialNumberId")]
|
|
public ItemSerialNumber? ItemSerialNumber { get; set; }
|
|
|
|
public decimal Quantity { get; set; }
|
|
public MovementType Type { get; set; }
|
|
|
|
public string? ReasonCode { get; set; }
|
|
public Guid? ReferenceId { get; set; }
|
|
|
|
public DateTime CreatedAt { get; set; } = DateTime.Now;
|
|
public Guid CreatedBy { get; set; }
|
|
}
|
|
}
|