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})";
}
}
}