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