namespace GB5Shared.DTO.Ice; public class IceMapDetailsDTO { // ── IceMap ─────────────────────────────────────────────────────── public int IceMapDetailsId { get; set; } //Id public int IceMapId { get; set; } //Id public string? IceMapCode { get; set; } //Code public string? IceMapName { get; set; } //Name public short IceMapDetailsSlNo { get; set; } //SlNo public short IceMapDetailsValueType { get; set; } //ValueType public string? IceMapDetailsSourceFieldName { get; set; } //SourceFieldName public byte IceMapDetailsIsFilterField { get; set; } //ISFilterField // ── DestinationMember ──────────────────────────────────────────── public int DestinationMemberId { get; set; } public string? DestinationMemberMemberName { get; set; } public int DestinationMemberEntityId { get; set; } // ── Entity ─────────────────────────────────────────────────────── public int EntityId { get; set; } public string? EntityCode { get; set; } public string? EntityName { get; set; } // MENTITY.POCOTODTOLINKID for EntityId (see IceMapQB.GET_ICEMAP) — EntityId itself is POCO-side // (mirrors IceMapDTO.IceMapEntityId/IceMapEntityPocoToDtoLinkId's exact same POCO-vs-DTO split). // For a DataType=5 (object/List) row, EntityId names the POCO entity; the actual DTO-side child // entity (matching DestinationMemberEntityId's convention elsewhere) is this link, not EntityId // directly — see HierarchyMapper.GetObjectListRelationships. public int EntityPocoToDtoLinkId { get; set; } public string? IceMapDetailsAddonFields { get; set; } public int GcmTypeId { get; set; } = -1; public string? GcmTypeCode { get; set; } public string? GcmTypeDescription { get; set; } public byte IceMapDetailsIsOptional { get; set; } = 1; public string IceMapDetailsOptionalFiledValue { get; set; } = ""; // Natural-key flag: when true, the value in this row's source field is used to look up // an existing target record (via the entity's own Get endpoint) to decide insert vs. update. // Replaces legacy IceMapDetails.IsUniquekey, dropped when this DTO was ported to GB5. public bool IceMapDetailsIsUniqueKey { get; set; } // MENTITYMEMBERS.DATATYPE for the joined DestinationMemberId (see IceMapQB.GET_ICEMAP). // Byte codes match FrameworkDAL.DTO.Entity.EntityMemberDTO's EntityMemberDataType setter: // 0=int,1=string,2=long,3=date,4=bool,5=object,6=double,7=byte[],8=enum,9=int16,10=byte,11=int32,12=int64. // Added in the IceImport Phase 1 execution engine to drive SourceValueResolver's type coercion — // was not selected by GET_ICEMAP before (join on MENTITYMEMBERS already existed for MemberName/EntityId). public byte? DestinationMemberDataType { get; set; } }