sozsoft-platform/api/modules/Sozsoft.Mcp/Sozsoft.Mcp.Application.Contracts/IMcpDevelopAppService.cs
2026-10-11 01:03:36 +03:00

81 lines
3.8 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using Sozsoft.Mcp.Dtos;
using Sozsoft.Platform.DeveloperKit;
using Sozsoft.Platform.ListForms;
using Volo.Abp.Application.Services;
namespace Sozsoft.Mcp;
/// <summary>
/// MCP gelistirme yuzeyi: tablo, ekran (wizard) ve custom component uretimi. Her islem uygulamadaki
/// Wizard ve Custom Components servislerinden gecer; MCP yalnizca kapidir, ekranin
/// kendi yetkilerini, seed dosyasi yazimini ve bagimlilik kurallarini atlamaz.
/// </summary>
public interface IMcpDevelopAppService : IApplicationService
{
Task<McpOutcome<McpDevGuideDto>> GetDevGuideAsync(string? document, string? section);
Task<McpOutcome<McpCreateTableResultDto>> CreateTableAsync(McpCreateTableRequestDto input);
/// <summary>View/procedure/function scriptini iki saglayicinin seed klasorune yazar; veritabaninda calistirmaz.</summary>
Task<McpOutcome<McpSqlObjectResultDto>> SaveSqlObjectAsync(string sqlServerScript, string postgreSqlScript);
/// <summary>Tablo ya da view icin CRUD endpoint'lerini <c>crud/{Entity}.json</c> seed dosyasina yazar; kaydi DB Migrate ekler.</summary>
Task<McpOutcome<McpCrudEndpointsResultDto>> GenerateCrudEndpointsAsync(string entityName, string? operationTypes, string? objectType);
Task<McpOutcome<List<WizardFileInfoDto>>> GetWizardsAsync(string? search);
Task<McpOutcome<McpWizardFileDto>> GetWizardAsync(string fileName);
/// <summary>Deploy edilen wizard'in ozeti.</summary>
Task<McpOutcome<WizardFileInfoDto?>> DeployWizardAsync(McpWizardDeployRequestDto input);
/// <summary>Wizard'i siler; <paramref name="dropTables"/> acikken ekranin secilebilir tablosunu da dusurur.</summary>
Task<McpOutcome<WizardDeleteResultDto>> DeleteWizardAsync(string fileName, bool dropTables);
/// <summary>Deploy edilmis ekrani veri yazmadan dogrular.</summary>
Task<McpOutcome<McpVerifyResultDto>> VerifyWizardAsync(string fileName);
/// <summary>Id ya da basliga gore bulunan talebi, yalnizca Ready to Start durumundaysa In Progress'e alir.</summary>
Task<McpOutcome<McpDevRequestDto>> StartDevRequestAsync(string request);
/// <summary>Talebi durumuna dokunmadan okur; yarim kalan bir talebe donmek icindir.</summary>
Task<McpOutcome<McpDevRequestDto>> GetDevRequestAsync(string request);
/// <summary>
/// Talebin analizini yazar (var olani degistirir); analiz kosulsuz uretime hazirsa talebi
/// Ready to Start'a, degilse Analysis durumuna alir. Yalnizca Backlog ya da Analysis durumundaki
/// talep analiz edilir.
/// </summary>
Task<McpOutcome<McpDevRequestDto>> SaveDevRequestAnalysisAsync(string request, string html, bool productionReady);
/// <summary>
/// Analizin sonuna HTML ekler. Aciklama talebin yazildigi haliyle kalir; uretim notlari
/// analize yazilir.
/// </summary>
Task<McpProblem?> AppendDevRequestNoteAsync(string request, string html);
/// <summary>
/// Talebin SubTasks listesine tamamlanmis satirlar ekler; atanan kisi cagiran kullanici,
/// bitis tarihi bugundur.
/// </summary>
Task<McpProblem?> AddDevRequestSubTasksAsync(string request, List<string> titles);
/// <summary>Modul dokumanini adiyla ya da ait oldugu ekranin kodu/wizard dosyasiyla okur.</summary>
Task<McpOutcome<ModuleDocDto>> GetModuleDocAsync(string name);
/// <summary>
/// Modul dokumaninin elle yazilan bolumlerini kaydeder; otomatik envanter sunucuda yeniden
/// uretilir.
/// </summary>
Task<McpOutcome<ModuleDocDto>> SaveModuleDocAsync(string name, string content);
Task<McpOutcome<List<McpComponentSummaryDto>>> GetComponentsAsync(string? search);
Task<McpOutcome<CustomComponentDto?>> GetComponentAsync(string name);
Task<McpOutcome<CustomComponentDto>> SaveComponentAsync(McpComponentSaveRequestDto input);
Task<McpProblem?> DeleteComponentAsync(string name);
}