namespace Domain.Dtos.Stock
{
///
/// Representa un ítem de stock disponible encontrado mediante búsqueda o escaneo.
/// Este DTO se utiliza como resultado en la UI para que el usuario elija qué ítem tomar.
///
public class StockItemScanResultDto
{
///
/// Identificador único del ítem en la tabla PhLSM_StockItem.
///
public int StockItemId { get; set; }
///
/// Identificador del producto asociado.
///
public int ProductId { get; set; }
///
/// Código de fábrica del producto.
///
public string FactoryCode { get; set; } = string.Empty;
///
/// Código externo o alternativo (si existe).
///
public string? ExternalCode { get; set; }
///
/// Nombre formal o técnico del producto.
///
public string ProductName { get; set; } = string.Empty;
///
/// Descripción comercial o de uso.
///
public string? Description { get; set; }
///
/// Identificador de la ubicación física (depósito, sala, etc.).
///
public int? LocationId { get; set; }
///
/// Nombre descriptivo de la ubicación.
///
public string? LocationName { get; set; }
///
/// Número de lote (si aplica).
///
public string? Batch { get; set; }
///
/// Número de serie de la unidad individual, según etiqueta de trazabilidad del fabricante.
///
public string? Serial { get; set; }
///
/// Fecha de vencimiento (si aplica).
///
public DateOnly? Expiration { get; set; }
///
/// Tipo de trazabilidad del producto:
/// 1 = No aplica, 2 = Por cantidad, 3 = Por lote y vencimiento.
///
public int TraceabilityType { get; set; }
///
/// Cantidad disponible actualmente.
///
public decimal AvailableQty { get; set; }
///
/// Indica si requiere proceso adicional (por ejemplo, esterilización).
///
public bool PlusProcess { get; set; }
}
}