70 lines
1.7 KiB
C#
70 lines
1.7 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace RobotNet10.MapManager.Data;
|
|
|
|
/// <summary>
|
|
/// Layout entity - Root level representing a Building/Facility
|
|
/// Maps to VDMA LIF: layouts[].layoutId
|
|
/// </summary>
|
|
[Table("Layouts")]
|
|
public class Layout
|
|
{
|
|
[Key]
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
public Guid Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Unique layout identifier (VDMA LIF: layoutId)
|
|
/// </summary>
|
|
[Required]
|
|
[StringLength(128)]
|
|
public string LayoutId { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Layout name (VDMA LIF: layoutName)
|
|
/// </summary>
|
|
[Required]
|
|
[StringLength(256)]
|
|
public string LayoutName { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Description
|
|
/// </summary>
|
|
public string? Description { get; set; }
|
|
|
|
/// <summary>
|
|
/// Is layout currently active/operational
|
|
/// </summary>
|
|
[Required]
|
|
public bool IsActive { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Created date
|
|
/// </summary>
|
|
[Required]
|
|
public DateTime CreatedDate { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// Last modified date
|
|
/// </summary>
|
|
[Required]
|
|
public DateTime ModifiedDate { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// Creator
|
|
/// </summary>
|
|
[StringLength(256)]
|
|
public string? CreatedBy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Last modifier
|
|
/// </summary>
|
|
[StringLength(256)]
|
|
public string? ModifiedBy { get; set; }
|
|
|
|
// Navigation properties
|
|
public virtual ICollection<LayoutVersion> Versions { get; set; } = new List<LayoutVersion>();
|
|
}
|
|
|