using System;
using System.Collections.Generic;
namespace Sozsoft.Mcp.Dtos;
/// Rapor kategorisi (App.Reports.Categories).
public class McpReportCategoryDto
{
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public string? Description { get; set; }
public string? Icon { get; set; }
}
/// Rapor sablonunun listede donen ozeti; HTML icerigi tasimaz.
public class McpReportTemplateSummaryDto
{
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public string? Description { get; set; }
public string Category { get; set; } = string.Empty;
public string? Status { get; set; }
}
/// Kategoriler ve sablonlar birlikte; sablon kaydederken kategori adi buradan secilir.
public class McpReportCatalogDto
{
public List Categories { get; set; } = [];
public List Templates { get; set; } = [];
}
///
/// Rapor sablonunun tamami. HTML icindeki {{AlanAdi}} yer
/// tutuculardir; sablon bir ekran kaydiyla acildiginda kaydin alanlariyla doldurulur.
///
public class McpReportTemplateDto : McpReportTemplateSummaryDto
{
public Guid CategoryId { get; set; }
public string HtmlContent { get; set; } = string.Empty;
public List Placeholders { get; set; } = [];
/// Sablonun kayitsiz goruntuleme adresi.
public string ViewUrl { get; set; } = string.Empty;
///
/// Kaydetme istegi bir ekran verdiyse o ekranin satir butonu (CommandColumnJson
/// elemani); ekranin mevcut butonlarina eklenir.
///
public McpReportRowButtonDto? RowButton { get; set; }
}
/// Sablonu bir ekran kaydiyla acan satir butonu; CommandColumnDto ile ayni alanlar.
public class McpReportRowButtonDto
{
public string Text { get; set; } = string.Empty;
public string Hint { get; set; } = string.Empty;
public string Url { get; set; } = string.Empty;
public string UrlTarget { get; set; } = "_blank";
public string AuthName { get; set; } = string.Empty;
public bool IsVisible { get; set; } = true;
}
public class McpReportCategorySaveRequestDto
{
public string Name { get; set; } = string.Empty;
public string? Description { get; set; }
public string? Icon { get; set; }
}
public class McpReportTemplateSaveRequestDto
{
/// Sablonun adi; kiraci icinde tekildir ve kimligidir.
public string Name { get; set; } = string.Empty;
/// Kategori adi ya da Id'si. Yeni sablonda zorunlu.
public string? Category { get; set; }
/// Basilacak HTML. Yeni sablonda zorunlu; guncellemede bos ise mevcut icerik korunur.
public string? HtmlContent { get; set; }
public string? Description { get; set; }
/// active ya da passive; yeni sablonda varsayilan active.
public string? Status { get; set; }
///
/// Sablonun basilacagi ekran. Verilirse yer tutucular ekranin alanlarina gore dogrulanir ve
/// cevapta o ekranin satir butonu doner.
///
public string? ListFormCode { get; set; }
/// Satir butonunun dil anahtari; verilmezse App.Platform.View.
public string? ButtonText { get; set; }
}