using System.ComponentModel.DataAnnotations;

namespace OTSSignsOrchestrator.Core.Models.Entities;

/// <summary>
/// Key-value application setting persisted in the local database.
/// Sensitive values are encrypted at rest via DataProtection.
/// </summary>
public class AppSetting
{
    [Key, MaxLength(200)]
    public string Key { get; set; } = string.Empty;

    [MaxLength(4000)]
    public string? Value { get; set; }

    [Required, MaxLength(50)]
    public string Category { get; set; } = string.Empty;

    public bool IsSensitive { get; set; }

    public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
}
