// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core;
///
/// 外键控件配置信息类
///
public class EffectForeignKeyConfigInput
{
///
/// 外键库标识
///
[Required(ErrorMessage = "外键库标识不能为空")]
public virtual string ConfigId { get; set; }
///
/// 外键实体名称
///
[Required(ErrorMessage = "外键实体名称不能为空")]
public virtual string EntityName { get; set; }
///
/// 首字母小写实体名称
///
[System.Text.Json.Serialization.JsonIgnore]
public virtual string LowerEntityName => EntityName?[..1].ToLower() + EntityName?[1..];
///
/// 外键表名称
///
[Required(ErrorMessage = "外键表名称不能为空")]
public virtual string TableName { get; set; }
///
/// 表注释
///
[Required(ErrorMessage = "表注释不能为空")]
public virtual string TableComment { get; set; }
///
/// 外键显示属性名(多选)
///
[Required(ErrorMessage = "外键显示属性名不能为空")]
public virtual string DisplayPropertyNames { get; set; }
///
/// 首位外键显示属性名
///
[System.Text.Json.Serialization.JsonIgnore]
public virtual string FirstDisplayName => DisplayPropertyNames?.Split(",").First();
///
/// 首字母小写首位外键显示属性名
///
[System.Text.Json.Serialization.JsonIgnore]
public virtual string LowerFirstDisplayName
{
get
{
var displayName = FirstDisplayName;
return displayName?[..1].ToLower() + displayName?[1..];
}
}
///
/// 外键属性名
///
[Required(ErrorMessage = "外键属性名不能为空")]
public virtual string LinkPropertyName { get; set; }
///
/// 首字母小写外键属性名
///
[System.Text.Json.Serialization.JsonIgnore]
public virtual string LowerLinkPropertyName => LinkPropertyName?[..1].ToLower() + LinkPropertyName?[1..];
///
/// 外键显示属性.NET类型
///
[Required(ErrorMessage = "外键显示属性.NET类型")]
public virtual string LinkPropertyType { get; set; }
///
/// 用于检索的属性名
///
public virtual string SearchPropertyName { get; set; }
///
/// 首字母小写外键属性名
///
[System.Text.Json.Serialization.JsonIgnore]
public virtual string LowerSearchPropertyName => SearchPropertyName?[..1].ToLower() + SearchPropertyName?[1..];
///
/// 用于检索的属性.NET类型
///
public virtual string SearchPropertyType { get; set; }
///
/// 是否使用表格
///
public virtual bool UseTable { get; set; }
///
/// 是否多选
///
public virtual bool Multiple { get; set; }
}
///
/// 树控件配置信息类
///
public class EffectTreeConfigInput : EffectForeignKeyConfigInput
{
///
/// 树组件标题不能为空
///
public virtual string TreeTitle { get; set; }
///
/// 父属性名称
///
public virtual string ParentPropertyName { get; set; }
///
/// 父属性.NET类型
///
public virtual string ParentPropertyType { get; set; }
}
///
/// 字典控件配置信息类
///
public class EffectDictConfigInput
{
///
/// 字典编码
///
[Required(ErrorMessage = "字典编码不能为空")]
public virtual string Code { get; set; }
///
/// 是否多选
///
public virtual bool Multiple { get; set; }
}
///
/// 文件控件配置信息类
///
public class EffectFileConfigInput
{
///
/// 链接预览
///
public virtual bool UseDownload { get; set; }
///
/// 链接文本
///
public virtual string DownloadText { get; set; }
///
/// 是否图片
///
public virtual bool IsImage { get; set; }
}
///
/// 时间控件配置信息类
///
public class EffectDatePickerConfigInput
{
///
/// 格式
///
[Required(ErrorMessage = "时间控件格式不能为空")]
public virtual string Format { get; set; } = "datetime";
///
/// 默认值
///
public virtual string Default { get; set; }
}