namespace AmpDAL.DTO.ApiRequestDuplicateCheck; public class ApiRequestDuplicateCheckDTO { public int DuplicateCheckId { get; set; } public int TenantId { get; set; } public int SourceApiRequestId { get; set; } public byte MatchSource { get; set; } // 0=ExistingAPI, 1=OpenRequest public int MatchedApiId { get; set; } public int MatchedRequestId { get; set; } public int MatchedInterfaceId { get; set; } public byte OverallScore { get; set; } public byte NameScore { get; set; } public byte DomainScore { get; set; } public byte IntentScore { get; set; } public byte SchemaScore { get; set; } public byte SuggestionType { get; set; } // 0=Duplicate,1=ExtendParam,2=ExtendField,3=AddEndpoint,4=NewVersion public string? SuggestedChange { get; set; } public string? MatchReason { get; set; } public byte ReviewStatus { get; set; } // 0=Pending,1=ConfirmedDuplicate,2=NotDuplicate,3=WillExtend,4=WillCreateNew public int? ReviewedById { get; set; } public DateTime? ReviewedOn { get; set; } public string? ReviewRemarks { get; set; } public DateTime CreatedOn { get; set; } } public class ApiRequestDuplicateCheckSaveDTO { public int DuplicateCheckId { get; set; } public int TenantId { get; set; } public int SourceApiRequestId { get; set; } public byte MatchSource { get; set; } public int MatchedApiId { get; set; } public int MatchedRequestId { get; set; } public int MatchedInterfaceId { get; set; } public byte OverallScore { get; set; } public byte NameScore { get; set; } public byte DomainScore { get; set; } public byte IntentScore { get; set; } public byte SchemaScore { get; set; } public byte SuggestionType { get; set; } public string? SuggestedChange { get; set; } public string? MatchReason { get; set; } public byte ReviewStatus { get; set; } } public class SimilarityResultDTO { public int MatchedId { get; set; } // ApiId or ApiRequestId depending on source public string MatchedName { get; set; } = string.Empty; public byte MatchSource { get; set; } // 0=ExistingAPI, 1=OpenRequest public byte OverallScore { get; set; } public byte NameScore { get; set; } public byte DomainScore { get; set; } public byte IntentScore { get; set; } public byte SchemaScore { get; set; } public int MatchedApiDomainId { get; set; } public byte MatchedApiType { get; set; } }