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