//-----------------------------------------------------------------------
//
// Copyright (c) aliasvault. All rights reserved.
// Licensed under the AGPLv3 license. See LICENSE.md file in the project root for full license information.
//
//-----------------------------------------------------------------------
namespace AliasVault.Client.Main.Models;
using AliasClientDb.Models;
///
/// Represents a field prepared for display in the UI.
///
public class DisplayField
{
///
/// Gets or sets the system field key (e.g., 'login.username').
///
public string FieldKey { get; set; } = string.Empty;
///
/// Gets or sets the custom field definition ID (for custom fields only).
///
public string? FieldDefinitionId { get; set; }
///
/// Gets or sets the label for this field.
/// For system fields, this is the field key (UI layer translates).
/// For custom fields, this is the user-defined label from FieldDefinition.
///
public string Label { get; set; } = string.Empty;
///
/// Gets or sets the field type for rendering (Text, Password, Email, URL, Date, etc.).
///
public string FieldType { get; set; } = "Text";
///
/// Gets or sets a value indicating whether this is a custom field.
///
public bool IsCustomField { get; set; }
///
/// Gets or sets the field value.
///
public string? Value { get; set; }
///
/// Gets or sets a value indicating whether the field is hidden/masked.
///
public bool IsHidden { get; set; }
///
/// Gets or sets a value indicating whether history is enabled for this field.
///
public bool EnableHistory { get; set; }
///
/// Gets or sets the display order.
///
public int DisplayOrder { get; set; }
///
/// Gets or sets the field category.
///
public FieldCategory Category { get; set; }
}