namespace Apollinare.Domain.Entities.Warehouse;
///
/// Causale movimento di magazzino
///
public class MovementReason : BaseEntity
{
///
/// Codice causale
///
public string Code { get; set; } = string.Empty;
///
/// Descrizione causale
///
public string Description { get; set; } = string.Empty;
///
/// Tipo movimento associato
///
public MovementType MovementType { get; set; }
///
/// Segno del movimento sulla giacenza (+1 carico, -1 scarico)
///
public int StockSign { get; set; }
///
/// Se true, richiede riferimento documento esterno
///
public bool RequiresExternalReference { get; set; }
///
/// Se true, richiede valorizzazione
///
public bool RequiresValuation { get; set; } = true;
///
/// Se true, aggiorna il costo medio
///
public bool UpdatesAverageCost { get; set; } = true;
///
/// Se true, รจ una causale di sistema (non modificabile)
///
public bool IsSystem { get; set; }
///
/// Se attiva
///
public bool IsActive { get; set; } = true;
///
/// Ordine visualizzazione
///
public int SortOrder { get; set; }
///
/// Note
///
public string? Notes { get; set; }
// Navigation properties
public ICollection Movements { get; set; } = new List();
}