using System.ComponentModel.DataAnnotations; using Nop.Web.Framework.Models; using Nop.Web.Framework.Mvc; using Nop.Web.Framework.Mvc.ModelBinding; namespace Nop.Plugin.Misc.Zettle.Models; /// /// Represents a configuration model /// public record ConfigurationModel : BaseNopModel { #region Ctor public ConfigurationModel() { Account = new AccountModel(); Import = new ImportModel(); SyncRecordSearchModel = new SyncRecordSearchModel(); } #endregion #region Properties public bool Connected { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.ClientId")] public string ClientId { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.ApiKey")] [NoTrim] [DataType(DataType.Password)] public string ApiKey { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.DisconnectOnUninstall")] public bool DisconnectOnUninstall { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.AutoSyncEnabled")] public bool AutoSyncEnabled { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.AutoSyncPeriod")] public int AutoSyncPeriod { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.DeleteBeforeImport")] public bool DeleteBeforeImport { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.SyncEnabled")] public bool SyncEnabled { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.PriceSyncEnabled")] public bool PriceSyncEnabled { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.ImageSyncEnabled")] public bool ImageSyncEnabled { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.InventoryTrackingEnabled")] public bool InventoryTrackingEnabled { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.DefaultTaxEnabled")] public bool DefaultTaxEnabled { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Configuration.Fields.DiscountSyncEnabled")] public bool DiscountSyncEnabled { get; set; } public AccountModel Account { get; set; } public ImportModel Import { get; set; } public SyncRecordSearchModel SyncRecordSearchModel { get; set; } #endregion #region Nested classes /// /// Represents an account model /// public record AccountModel : BaseNopModel { #region Properties public bool Accepted { get; set; } public string CustomerStatus { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Account.Fields.Name")] public string Name { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Account.Fields.Currency")] public string Currency { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Account.Fields.TaxationType")] public string TaxationType { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Account.Fields.TaxationMode")] public string TaxationMode { get; set; } #endregion } /// /// Represents an import model /// public record ImportModel : BaseNopModel { #region Properties public bool Active { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Import.Fields.StartDate")] public DateTime? StartDate { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Import.Fields.EndDate")] public DateTime? EndDate { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Import.Fields.State")] public string State { get; set; } [NopResourceDisplayName("Plugins.Misc.Zettle.Import.Fields.Items")] public string Items { get; set; } #endregion } #endregion }