using Nop.Core.Configuration; using Nop.Plugin.Tax.Avalara.Domain; namespace Nop.Plugin.Tax.Avalara; /// /// Represents plugin settings /// public class AvalaraTaxSettings : ISettings { #region Common /// /// Gets or sets Avalara account ID /// public string AccountId { get; set; } /// /// Gets or sets Avalara account license key /// public string LicenseKey { get; set; } /// /// Gets or sets company code /// public string CompanyCode { get; set; } /// /// Gets or sets company id /// public int? CompanyId { get; set; } /// /// Gets or sets a value indicating whether to use sandbox (testing environment) /// public bool UseSandbox { get; set; } /// /// Gets or sets a value indicating whether to enable logging of all requests /// public bool EnableLogging { get; set; } #endregion #region Tax calculation /// /// Gets or sets a value indicating whether to commit tax transactions right after they are saved /// public bool CommitTransactions { get; set; } /// /// Gets or sets a value indicating whether to validate entered by customer addresses before the tax calculation /// public bool ValidateAddress { get; set; } /// /// Gets or sets a type of the tax origin address /// public TaxOriginAddressType TaxOriginAddressType { get; set; } /// /// Gets or sets a value indicating whether to use tax rate tables based on the zip rate lookup to estimate /// public bool UseTaxRateTables { get; set; } /// /// Gets or sets a value indicating whether to get the tax rate by address only /// public bool GetTaxRateByAddressOnly { get; set; } /// /// Gets or sets the tax rate (by address) cache time in minutes /// public int TaxRateByAddressCacheTime { get; set; } #endregion #region Certificates /// /// Gets or sets a value indicating whether the feature of exemption certificates is enabled /// public bool EnableCertificates { get; set; } /// /// Gets or sets a value indicating whether new certificates are automatically valid /// public bool AutoValidateCertificate { get; set; } /// /// Gets or sets a value indicating whether to allow customers to edit their info /// public bool AllowEditCustomer { get; set; } /// /// Gets or sets a value indicating whether to display a message that there are no valid certificates for the customer on the order confirmation page /// public bool DisplayNoValidCertificatesMessage { get; set; } /// /// Gets or sets the identifiers of customer roles for which certificates are available /// public List CustomerRoleIds { get; set; } = new(); /// /// Gets or sets a value indicating whether to disaply a preview of customer's new certificate before signing and submitting /// public bool PreviewCertificate { get; set; } /// /// Gets or sets a value indicating whether the customer must upload a scanned copy of their exemption certificate /// public bool UploadOnly { get; set; } /// /// Gets or sets a value indicating whether to disable the upload of prefilled documents, so that customers must generate a new copy of the certificate by entering their information /// public bool FillOnly { get; set; } #endregion #region Item Classification /// /// Gets or sets a value indicating whether to use item classification /// public bool UseItemClassification { get; set; } /// /// Gets or sets the identifiers of countries for which the HS code needs to be calculated /// public List SelectedCountryIds { get; set; } = new(); #endregion }