using System.Collections.Generic;
using Sozsoft.Platform.Enums;
using Volo.Abp.Domain.Values;
namespace Sozsoft.Platform.Queries;
public class CommandColumn : ValueObject
{
/// Gridde kullanılacak fonksiyon butonlarının konumunu belirler
///
public UiCommandButtonPositionTypeEnum ButtonPosition { get; set; } = UiCommandButtonPositionTypeEnum.CommandColumn;
/// Burada yazan yetki ismi kullanicilarin yetkisinde varsa ilgili fonksiyon/buton gorunur olur.
/// Boş bırakılmış ise yetkisi var sayılır
/// CommandColumn icerisindeki buton icin yeni bir yetki tanimi yapilir, tanimi yapilan yetkinin ismi buraya yazilir
///
public string AuthName { get; set; }
/// Eklenecek butonun görünen ismi
///
public string Text { get; set; }
/// Fare ile bağlantı yada icon üzerine gelince çıkacak yazı
///
public string Hint { get; set; }
///
/// Alabilecegi degerler:
/// Url
/// The icon's name if the icon is from the DevExtreme icon library: https://js.devexpress.com/Documentation/Guide/Themes_and_Styles/Icons/#Built-In_Icon_Library
/// The icon's CSS class if the icon is from an external icon library (see External Icon Libraries)
/// The icon in the Base64 format
/// The icon in the SVG format. Ensure that the source is reliable.
///
/// https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxContextMenu/Configuration/items/#icon
///
public string Icon { get; set; }
/// Tiklandiginda calistirilacak baglanti
/// url icerisine süslü parantez ile {alanismi} girid icerisindeki kolonlarin FieldName bilgileri yazilabilir.
/// Bu sekilde ilgili baglanti dinamik olarak olusturulabilir
/// Ek olarak yazilabilecek parametreler:
/// {ListFormCode}
///
public string Url { get; set; }
///
/// Alabilecegi Degerler: _blank
/// _parent
/// _self
/// _top
///
public string UrlTarget { get; set; }
/// UI tarafında çağrılacak dialog component adı
///
public string DialogName { get; set; }
/// UI tarafında çağrılacak dialog component parametrelerier
///
public string DialogParameters { get; set; }
/// Url boş ise calisacak 'eval' icerisinde calisacak olan kod
///
public string OnClick { get; set; }
/// Görünür durumu
///
public bool IsVisible { get; set; } = true;
/// Dinamik görünürlük kontrolü için JavaScript fonksiyonu
/// Örnek: "(e) => !e.row.isEditing" veya "(e) => e.row.data.Status === 'Active'"
/// Fonksiyon parametre olarak DevExtreme button event objesini alır (e.row, e.row.data, e.row.isEditing vb.)
/// true/false döndürmelidir
///
public string VisibleExpression { get; set; }
protected override IEnumerable