using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; namespace GazpromApp.Models; public class Property { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [JsonIgnore] public Guid Id { get; set; } [Required] public string Name { get; set; } = string.Empty; public string Value { get; set; } = string.Empty; public DateTime CreationDate { get; set; } // For self-referencing hierarchy (Property of a Property) [JsonIgnore] public Guid? ParentPropertyId { get; set; } [JsonIgnore] public Property? Parent { get; set; } // For a Property of a Point [JsonIgnore] public Guid? PointId { get; set; } [JsonIgnore] public Point? Point { get; set; } // For a Property of an Equipment [JsonIgnore] public Guid? EquipmentId { get; set; } [JsonIgnore] public Equipment? Equipment { get; set; } // Child properties in the hierarchy public List Properties { get; set; } = []; }