using Microsoft.AspNetCore.Mvc.Rendering; using Nop.Web.Framework.Models; using Nop.Web.Framework.Mvc.ModelBinding; namespace Nop.Web.Areas.Admin.Models.Topics; /// /// Represents a topic model /// public partial record TopicModel : BaseNopEntityModel, IAclSupportedModel, ILocalizedModel, IStoreMappingSupportedModel { #region Ctor public TopicModel() { AvailableTopicTemplates = new List(); Locales = new List(); SelectedCustomerRoleIds = new List(); AvailableCustomerRoles = new List(); SelectedStoreIds = new List(); AvailableStores = new List(); } #endregion #region Properties [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.SystemName")] public string SystemName { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.IncludeInSitemap")] public bool IncludeInSitemap { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.IncludeInTopMenu")] public bool IncludeInTopMenu { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.IncludeInFooterColumn1")] public bool IncludeInFooterColumn1 { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.IncludeInFooterColumn2")] public bool IncludeInFooterColumn2 { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.IncludeInFooterColumn3")] public bool IncludeInFooterColumn3 { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.DisplayOrder")] public int DisplayOrder { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.AccessibleWhenStoreClosed")] public bool AccessibleWhenStoreClosed { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.IsPasswordProtected")] public bool IsPasswordProtected { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.Password")] public string Password { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.URL")] public string Url { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.Title")] public string Title { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.Body")] public string Body { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.Published")] public bool Published { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.TopicTemplate")] public int TopicTemplateId { get; set; } public IList AvailableTopicTemplates { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.MetaKeywords")] public string MetaKeywords { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.MetaDescription")] public string MetaDescription { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.MetaTitle")] public string MetaTitle { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.SeName")] public string SeName { get; set; } public IList Locales { get; set; } //store mapping [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.LimitedToStores")] public IList SelectedStoreIds { get; set; } public IList AvailableStores { get; set; } //ACL (customer roles) public IList SelectedCustomerRoleIds { get; set; } public IList AvailableCustomerRoles { get; set; } public string TopicName { get; set; } #endregion } public partial record TopicLocalizedModel : ILocalizedLocaleModel { public int LanguageId { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.Title")] public string Title { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.Body")] public string Body { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.MetaKeywords")] public string MetaKeywords { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.MetaDescription")] public string MetaDescription { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.MetaTitle")] public string MetaTitle { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.SeName")] public string SeName { get; set; } }