using System.ComponentModel.DataAnnotations; namespace PyroFetes.Models; // 1. Définition des types possibles pour la logique métier public enum MovementType { Entry, // Entrée (ex: Achat fournisseur) Exit, // Sortie (ex: Vente, Casse) Transfer, // Transfert entre deux entrepôts Inventory // Ajustement manuel } public class Movement { [Key] public int Id { get; set; } [Required] public DateTime Date { get; set; } = DateTime.Now; public DateTime Start { get; set; } public DateTime Arrival { get; set; } [Required] public int Quantity { get; set; } [Required] public MovementType Type { get; set; } [Required] public int ProductId { get; set; } public Product? Product { get; set; } public int? SourceWarehouseId { get; set; } public Warehouse? SourceWarehouse { get; set; } public int? DestinationWarehouseId { get; set; } public Warehouse? DestinationWarehouse { get; set; } [MaxLength(500)] public string? Comment { get; set; } }