using System;
using Volo.Abp.Domain.Entities.Auditing;
namespace Sozsoft.Mcp.Entities;
///
/// MCP (Model Context Protocol) sunucu tanimi. Kayit host kapsamindadir; hangi kiracilarin
/// kullanabilecegi ile belirlenir. Istegin kiracisina dusen kayit, /mcp
/// ucunda hangi araclarin gorunecegini ve sorgularin hangi veri kaynaginda hangi satir
/// tavaniyla kosacagini belirler.
///
public class McpServer : FullAuditedEntity
{
public string Name { get; set; } = string.Empty;
public bool IsActive { get; set; } = true;
///
/// Istemciye verilen baglanti adresi (ornek: https://api.sozsoft.com/mcp). Yonlendirme icin
/// kullanilmaz; ekranin kopyalanabilir baglanti komutu uretebilmesi icin tutulur.
///
public string? Url { get; set; }
///
/// Kaydin gecerli oldugu kiraci adlari, PlatformConsts.MultiValueDelimiter ile
/// ayrilir. Bos ise tum kiracilara aciktir.
///
public string? Tenants { get; set; }
///
/// Sorgu araclarinin kosacagi DataSource kodu. Bos ise istegin kapsamindaki varsayilan
/// veri kaynagi kullanilir.
///
public string? DataSourceCode { get; set; }
///
/// Acik arac adlari, PlatformConsts.MultiValueDelimiter ile ayrilir. Bos ise yazma
/// disindaki tum araclar aciktir.
///
public string? AllowedTools { get; set; }
/// Tek sorgunun dondurebilecegi en fazla satir sayisi.
public int MaxRows { get; set; } = McpConsts.DefaultMaxRows;
/// Kapali oldugunda veri yazma araclari arac listesinde hic yer almaz.
public bool AllowWrite { get; set; }
public string? Description { get; set; }
}