using Core.Abstractions.Models;
using Core.DomainObjects.Documents;
using Core.Enumerations;
namespace WeatherForecast.Models.Responses {
  /// 
  /// 
  /// 
  public class ShopCartItemResponseModel : ResponseModelBase {
    /// 
    /// 
    /// 
    public string Slug { get; set; }
    /// 
    /// 
    /// 
    public string Sku { get; set; }
    /// 
    /// 
    /// 
    public ImageResponseModel? Image { get; set; }
    /// 
    /// 
    /// 
    public string Title { get; set; }
    /// 
    /// 
    /// 
    public string BrandName { get; set; }
    /// 
    /// 
    /// 
    public string ShortText { get; set; }
    /// 
    /// 
    /// 
    public DateTime Created { get; set; }
    /// 
    /// 
    /// 
    public decimal Price { get; set; }
    /// 
    /// 
    /// 
    public decimal? NewPrice { get; set; }
    /// 
    /// 
    /// 
    public uint? Quantity { get; set; }
    /// 
    /// 
    /// 
    /// 
    /// 
    /// 
    public ShopCartItemResponseModel(ShopItem shopItem, ShopCartItem shopCartItem, Locales locale) {
      Sku = shopItem.Sku;
      BrandName = shopItem.BrandName;
      Created = shopItem.Created;
      Price = shopItem.Price;
      NewPrice = shopItem.NewPrice;
      Quantity = shopCartItem.Quantity;
      var l10n = shopItem.L10n.SingleOrDefault(x => x.Locale == locale);
      if (l10n != null) {
        Slug = l10n.Slug;
        Title = l10n.Title;
        ShortText = l10n.ShortText;
      }
      if(shopItem.Images != null)
        Image = new ImageResponseModel(shopItem.Images.First(), locale);
    }
  }
}