using CMSMicroservice.Domain.Common;

namespace CMSMicroservice.Domain.Entities.Content;

/// <summary>
/// تنظیمات صفحات سایت — هر صفحه یک رکورد با تنظیمات JSON تایپ‌شده
/// صفحات ثابت: landing, about, contact, licenses
/// </summary>
public class SitePageSettings : BaseAuditableEntity
{
    /// <summary>
    /// کلید یکتای صفحه (landing, about, contact, licenses)
    /// </summary>
    public string PageKey { get; set; } = string.Empty;

    /// <summary>
    /// عنوان صفحه
    /// </summary>
    public string Title { get; set; } = string.Empty;

    /// <summary>
    /// توضیح متا برای SEO
    /// </summary>
    public string? MetaDescription { get; set; }

    /// <summary>
    /// عنوان بخش Hero
    /// </summary>
    public string? HeroTitle { get; set; }

    /// <summary>
    /// زیرعنوان بخش Hero
    /// </summary>
    public string? HeroSubtitle { get; set; }

    /// <summary>
    /// مسیر تصویر Hero
    /// </summary>
    public string? HeroImagePath { get; set; }

    /// <summary>
    /// فعال بودن صفحه
    /// </summary>
    public bool IsActive { get; set; } = true;

    /// <summary>
    /// تنظیمات اختصاصی صفحه به فرمت JSON
    /// ساختار JSON بر اساس PageKey متفاوت است
    /// </summary>
    public string? SettingsJson { get; set; }

    /// <summary>
    /// تصاویر مرتبط با صفحه (مجوزها، تیم، ارزش‌ها)
    /// </summary>
    public virtual ICollection<SitePageImage> Images { get; set; } = new List<SitePageImage>();
}
