using System.Collections.Generic;
using System.Threading.Tasks;
using Sozsoft.Mcp.Dtos;
using Volo.Abp.Application.Services;
namespace Sozsoft.Mcp;
///
/// MCP sema kesfi. Tablo ve sutun bilgisi canli katalogdan degil, platformun ekran
/// tanimlarindan uretilen JSON veri sozlugunden gelir; boylece modelin gordugu adlar
/// kullanicinin ekranda gordugu adlarla ayni olur.
///
public interface IMcpSchemaAppService : IApplicationService
{
/// Istegin kiracisina dusen etkin MCP sunucu kaydi; kayit yoksa null.
Task GetServerConfigAsync();
///
/// Bu kullanicinin bu baglantida cagirabilecegi araclar: sunucu kaydinin actiklari ile
/// kullanicinin uygulamadaki yetkilerinin kesisimi.
///
Task> GetAvailableToolsAsync();
/// Veri sozlugunun bulunup bulunmadigi ve ne zaman tazelendigi.
Task GetSchemaInfoAsync();
/// Bos birakilirsa tum listeler doner.
/// Donecek en fazla liste sayisi.
Task> GetListsAsync(string? search = null, int maxResults = 200);
/// Tek bir listenin sutunlariyla birlikte tanimi; bulunamazsa null.
Task GetListAsync(string listFormCode);
///
/// Liste ve sutun adlari ile basliklari uzerinde aksan ve buyuk/kucuk harf duyarsiz arama.
///
Task> SearchAsync(string term, int maxResults = 50);
}