using System; using AGVNavigationCore.Models; namespace AGVMapEditor.Models { /// /// RFID와 논리적 노드 ID를 매핑하는 클래스 /// 물리적 RFID는 의미없는 고유값, 논리적 노드는 맵 에디터에서 관리 /// public class RfidMapping { /// /// 물리적 RFID 값 (의미 없는 고유 식별자) /// 예: "1234567890", "ABCDEF1234" 등 /// public string RfidId { get; set; } = string.Empty; /// /// 논리적 노드 ID (맵 에디터에서 관리) /// 예: "N001", "N002", "LOADER1", "CHARGER1" 등 /// public string LogicalNodeId { get; set; } = string.Empty; /// /// 매핑 생성 일자 /// public DateTime CreatedDate { get; set; } = DateTime.Now; /// /// 마지막 수정 일자 /// public DateTime ModifiedDate { get; set; } = DateTime.Now; /// /// 설치 위치 설명 (현장 작업자용) /// 예: "로더1번 앞", "충전기2번 입구", "복도 교차점" 등 /// public string Description { get; set; } = string.Empty; /// /// RFID 상태 (정상, 손상, 교체예정 등) /// public string Status { get; set; } = "정상"; /// /// 매핑 활성화 여부 /// public bool IsActive { get; set; } = true; /// /// 기본 생성자 /// public RfidMapping() { } /// /// 매개변수 생성자 /// /// 물리적 RFID ID /// 논리적 노드 ID /// 설치 위치 설명 public RfidMapping(string rfidId, string logicalNodeId, string description = "") { RfidId = rfidId; LogicalNodeId = logicalNodeId; Description = description; CreatedDate = DateTime.Now; ModifiedDate = DateTime.Now; } /// /// 문자열 표현 /// public override string ToString() { return $"{RfidId} → {LogicalNodeId} ({Description})"; } } }