using System; namespace EAIAdminDAL.DTO { /// /// Authorization metadata linking a Bot (or one of its Capabilities) to the KMS KmSpace/ /// KmDomain it's allowed to draw from — NOT wired to a live retrieval call yet (gbEAI has no /// query-time RAG today; kms_discovery_adapter.py is discovery/ingestion-only). This is the /// seam for when one exists. See MEAIBOTKNOWLEDGESOURCE migration for the full rationale. /// public class EAIBotKnowledgeSourceDTO { public int EAIBotKnowledgeSourceId { get; set; } /// Exactly one of EAIBotId/EAICapabilityId must be > 0 (the other -1). public int EAIBotId { get; set; } = -1; public int EAICapabilityId { get; set; } = -1; /// Exactly one of KmSpaceId/KmDomainId must be > 0 (the other -1). public int KmSpaceId { get; set; } = -1; public int KmDomainId { get; set; } = -1; public int TenantId { get; set; } // Denormalized display fields for list screens — not persisted, populated by the DAL's // list query joining back to MEAIBOT/MEAICAPABILITY/KMS.MKMSPACE/KMS.MKMDOMAIN. public string? BotCode { get; set; } public string? CapabilityCode { get; set; } public string? SpaceName { get; set; } public string? DomainName { get; set; } public short Version { get; set; } public byte Status { get; set; } = 1; public int? CreatedById { get; set; } public DateTime CreatedOn { get; set; } public int? ModifiedById { get; set; } public DateTime? ModifiedOn { get; set; } } }