using Microsoft.AspNetCore.Mvc.Rendering; using Nop.Core.Domain.Catalog; using Nop.Web.Framework.Models; using Nop.Web.Models.Common; using Nop.Web.Models.Media; namespace Nop.Web.Models.ShoppingCart; public partial record ShoppingCartModel : BaseNopModel { public ShoppingCartModel() { Items = new List(); Warnings = new List(); DiscountBox = new DiscountBoxModel(); GiftCardBox = new GiftCardBoxModel(); CheckoutAttributes = new List(); OrderReviewData = new OrderReviewDataModel(); ButtonPaymentMethodViewComponents = new List(); } public bool OnePageCheckoutEnabled { get; set; } public bool ShowSku { get; set; } public bool ShowProductImages { get; set; } public bool IsEditable { get; set; } public IList Items { get; set; } public IList CheckoutAttributes { get; set; } public IList Warnings { get; set; } public string MinOrderSubtotalWarning { get; set; } public bool DisplayTaxShippingInfo { get; set; } public bool TermsOfServiceOnShoppingCartPage { get; set; } public bool TermsOfServiceOnOrderConfirmPage { get; set; } public bool TermsOfServicePopup { get; set; } public DiscountBoxModel DiscountBox { get; set; } public GiftCardBoxModel GiftCardBox { get; set; } public OrderReviewDataModel OrderReviewData { get; set; } public IList ButtonPaymentMethodViewComponents { get; set; } public bool HideCheckoutButton { get; set; } public bool ShowVendorName { get; set; } #region Nested Classes public partial record ShoppingCartItemModel : BaseNopEntityModel { public ShoppingCartItemModel() { Picture = new PictureModel(); AllowedQuantities = new List(); Warnings = new List(); } public string Sku { get; set; } public string VendorName { get; set; } public PictureModel Picture { get; set; } public int ProductId { get; set; } public string ProductName { get; set; } public string ProductSeName { get; set; } public string UnitPrice { get; set; } public decimal UnitPriceValue { get; set; } public string SubTotal { get; set; } public decimal SubTotalValue { get; set; } public string Discount { get; set; } public decimal DiscountValue { get; set; } public int? MaximumDiscountedQty { get; set; } public int Quantity { get; set; } public List AllowedQuantities { get; set; } public string AttributeInfo { get; set; } public string RecurringInfo { get; set; } public string RentalInfo { get; set; } public bool AllowItemEditing { get; set; } public bool DisableRemoval { get; set; } public IList Warnings { get; set; } } public partial record CheckoutAttributeModel : BaseNopEntityModel { public CheckoutAttributeModel() { AllowedFileExtensions = new List(); Values = new List(); } public string Name { get; set; } public string DefaultValue { get; set; } public string TextPrompt { get; set; } public bool IsRequired { get; set; } /// /// Selected day value for datepicker /// public int? SelectedDay { get; set; } /// /// Selected month value for datepicker /// public int? SelectedMonth { get; set; } /// /// Selected year value for datepicker /// public int? SelectedYear { get; set; } /// /// Allowed file extensions for customer uploaded files /// public IList AllowedFileExtensions { get; set; } public AttributeControlType AttributeControlType { get; set; } public IList Values { get; set; } } public partial record CheckoutAttributeValueModel : BaseNopEntityModel { public string Name { get; set; } public string ColorSquaresRgb { get; set; } public string PriceAdjustment { get; set; } public bool IsPreSelected { get; set; } } public partial record DiscountBoxModel : BaseNopModel { public DiscountBoxModel() { AppliedDiscountsWithCodes = new List(); Messages = new List(); } public List AppliedDiscountsWithCodes { get; set; } public bool Display { get; set; } public List Messages { get; set; } public bool IsApplied { get; set; } public partial record DiscountInfoModel : BaseNopEntityModel { public string CouponCode { get; set; } } } public partial record GiftCardBoxModel : BaseNopModel { public bool Display { get; set; } public string Message { get; set; } public bool IsApplied { get; set; } } public partial record OrderReviewDataModel : BaseNopModel { public OrderReviewDataModel() { BillingAddress = new AddressModel(); ShippingAddress = new AddressModel(); PickupAddress = new AddressModel(); CustomValues = new Dictionary(); } public bool Display { get; set; } public AddressModel BillingAddress { get; set; } public bool IsShippable { get; set; } public AddressModel ShippingAddress { get; set; } public bool SelectedPickupInStore { get; set; } public AddressModel PickupAddress { get; set; } public string ShippingMethod { get; set; } public string PaymentMethod { get; set; } public Dictionary CustomValues { get; set; } } #endregion }