using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using System.Runtime.CompilerServices; // // This is here so CodeMaid doesn't reorganize this document // namespace WebDoorCreator.Data.DbModels { /// /// Tabella dati Door /// [Table("Door")] public class DoorModel { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int DoorId { get; set; } /// /// Parent element ID /// public int ParentId { get; set; } /// /// Ordine cui è associata la porta /// public int OrderId { get; set; } /// /// Unità di misura /// public string MeasureUnit { get; set; } = ""; /// /// Codice esterno x riferimento (es ERP) /// public string DoorExtCode { get; set; } = ""; /// /// Data inserimento ordine /// public DateTime DateIns { get; set; } = DateTime.Now; /// /// Codice utente che ha creato /// public string UserIdIns { get; set; } = ""; /// /// Data (ultima) modifica ordine /// public DateTime DateMod { get; set; } = DateTime.Now; /// /// Codice utente che ha creato /// public string UserIdMod { get; set; } = ""; /// /// Descrizione /// public string DoorDescript { get; set; } = ""; /// /// Quantity Ordered /// public int Quantity { get; set; } = 1; /// /// Unit cost for the door /// public decimal UnitCost { get; set; } = 0; /// /// Data scadenza Lock /// public DateTime DateLockExpiry { get; set; } = DateTime.Now; /// /// Codice utente che ha bloccato record /// public string UserIdLock { get; set; } = ""; /// /// Valore booleano per indicare se è in stato cancellazione logica /// public bool isLogicDel { get; set; } = false; [ForeignKey("OrderId")] public virtual OrderModel? OrderNav { get; set; } //[ForeignKey("TypeId")] // public virtual DoorTypeModel? TypeNav { get; set; } public DoorModel ObjClone(string userId) { DateTime adesso = DateTime.Now; DoorModel answ = new DoorModel() { MeasureUnit = MeasureUnit, OrderId = OrderId, ParentId = ParentId, DoorExtCode = DoorExtCode, DateIns = adesso, UserIdIns = userId, DateMod = adesso, UserIdMod = userId, DoorDescript = DoorDescript, Quantity = Quantity, UnitCost = UnitCost, DateLockExpiry = DateLockExpiry, UserIdLock = UserIdLock }; return answ; } public override bool Equals(object? obj) { if (obj == null) return false; if (!(obj is DoorModel item)) return false; if (Quantity != item.Quantity) return false; if (DoorExtCode != item.DoorExtCode) return false; if (DoorDescript != item.DoorDescript) return false; if (UnitCost != item.UnitCost) return false; //if (MeasureUnit != item.MeasureUnit) // return false; //if (UnitCost != item.UnitCost) // return false; return true; } public override int GetHashCode() { return base.GetHashCode(); } } }