using System; using System.Collections.Generic; using System.Text.Json; namespace Sozsoft.Mcp.Dtos; /// Gelistirme rehberinin bir basligi. public class McpDevGuideHeadingDto { /// lowcode (uretim protokolu, artefakt semalari) ya da reference (JSON kolon sozlesmeleri). public string Document { get; set; } = string.Empty; /// Bolum numarasi (4.3); get_dev_guide'a bu deger verilir. public string Id { get; set; } = string.Empty; public string Title { get; set; } = string.Empty; public int Level { get; set; } } /// /// Rehber cevabi. Bolum istenmediyse yalnizca doludur; istendiyse /// bolumun metnini, alt basliklarini tasir. /// public class McpDevGuideDto { public McpDevGuideHeadingDto? Heading { get; set; } public string? Content { get; set; } public List Sections { get; set; } = []; } /// Bir wizard seed dosyasi; dosyanin diskteki bicimidir. public class McpWizardFileDto { public string FileName { get; set; } = string.Empty; public JsonElement Seed { get; set; } } /// Wizard'i ilk kez ya da yeniden deploy etme istegi. public class McpWizardDeployRequestDto { /// /// Seed dosyasi bicimindeki JSON ({"Wizard": {...}}) ya da duz wizard cevaplari. /// public string Wizard { get; set; } = string.Empty; /// Doluysa guncellemedir: bu dosya ve urettigi kayitlar silinip yeniden uretilir. public string? ReplaceFileName { get; set; } } /// /// Yeni tablo istegi. Id, TenantId ve audit kolonlari sablondan gelir; burada /// yalnizca is kolonlari yazilir. /// public class McpCreateTableRequestDto { public string TableName { get; set; } = string.Empty; public List Columns { get; set; } = []; public bool FullAudited { get; set; } = true; public bool MultiTenant { get; set; } = true; } public class McpTableColumnDto { public string Name { get; set; } = string.Empty; /// Tablo tasarimcisinin tip listesinden biri (nvarchar, int, decimal, bit ...). public string Type { get; set; } = string.Empty; /// Yalnizca nvarchar icin. public int? MaxLength { get; set; } public bool IsNullable { get; set; } = true; /// Sayi, metin sabiti ('...') ya da NEWID()/GETDATE()/GETUTCDATE()/SYSUTCDATETIME(). public string? DefaultValue { get; set; } } public class McpCreateTableResultDto { public string TableName { get; set; } = string.Empty; public string Script { get; set; } = string.Empty; /// Script'in yazildigi seed dosyasi, seed kokune gore goreli. public string SeedFilePath { get; set; } = string.Empty; } /// Custom component ozeti; kod tasimaz. public class McpComponentSummaryDto { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public string? RoutePath { get; set; } public string? Description { get; set; } public bool IsActive { get; set; } /// Kodu tasarimci belgesinden uretilen bilesen; MCP uzerinden kodu yazilamaz. public bool IsVisualDesigner { get; set; } } /// /// Custom component kaydetme istegi; ada gore varsa gunceller, yoksa ekler. Guncellemede null /// birakilan alanlar mevcut degerini korur. /// public class McpComponentSaveRequestDto { public string Name { get; set; } = string.Empty; public string? Code { get; set; } /// Bos dize rotayi kaldirir (rotasiz bilesen); null mevcut rotayi korur. public string? RoutePath { get; set; } public string? Description { get; set; } public string? Props { get; set; } /// Bagimli bilesen adlarinin JSON dizisi. public string? Dependencies { get; set; } public bool? IsActive { get; set; } }