using System; namespace EAIAdminDAL.DTO { /// Admin CRUD DTO for MEAIAGENTROUTE — mirrors gbEAI's process-wide AGENT_ROUTES /// tuple (app/core/agent_catalog.py). Global config, NOT tenant-scoped, despite the TenantId /// column existing for audit/ownership — gated to a SuperAdmin-only menu grant in Angular and /// PLATFORM_ADMIN_TENANT_IDS gbEAI-side. See EAIInitiativeAdminDTO for the shared shape. public class EAIAgentRouteAdminDTO { public int AgentRouteId { get; set; } public int TenantId { get; set; } /// Globally unique — the route's URL segment (POST /<slug>). public string Slug { get; set; } = string.Empty; public string InitiativeCode { get; set; } = string.Empty; public string DefaultCapability { get; set; } = string.Empty; /// gbEAI adapter module path (e.g. "app.services.report_service_adapter") — /// Angular presents this as a constrained dropdown, not free text. public string Module { get; set; } = string.Empty; public string? Summary { get; set; } /// CSV, e.g. "QUESTION_ANSWER,ANALYZE_REPORT". public string? Capabilities { get; set; } /// CSV of alternate route slugs also registered for this agent. public string? Aliases { get; set; } public byte AcceptsFile { get; set; } public byte AcceptsText { get; set; } = 1; public byte RequiresFile { get; set; } public long? EAIRemoteId { get; set; } public short Version { get; set; } public byte Status { get; set; } = 1; public int? CreatedById { get; set; } public string? CreatedByName { get; set; } public DateTime CreatedOn { get; set; } public int? ModifiedById { get; set; } public string? ModifiedByName { get; set; } public DateTime? ModifiedOn { get; set; } } }