using Core.DomainObjects;
using Core.DomainObjects.Documents;
using Core.DomainObjects.Pages;
using Core.Enumerations;
using WeatherForecast.Models.Abstractions;

namespace WeatherForecast.Models {

  /// <summary>
  /// 
  /// </summary>
  public class ShopItemResponseModel : PostItemResponseModelBase<ShopItem> {

    /// <summary>
    /// 
    /// </summary>
    public string Sku { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public decimal? Rating { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public decimal Price { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public decimal? NewPrice { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public uint? Quantity { get; set; }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="shopCatalogItem"></param>
    /// <param name="categories"></param>
    public ShopItemResponseModel(ShopItem shopCatalogItem, List<Category> categories) : base(shopCatalogItem, categories) {
      Sku = shopCatalogItem.Sku;
      Rating = shopCatalogItem.Rating;
      Price = shopCatalogItem.Price;
      NewPrice = shopCatalogItem.NewPrice;
      Quantity = shopCatalogItem.Quantity;
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="shopCatalogItem"></param>
    /// <param name="categories"></param>
    /// <param name="locale"></param>
    public ShopItemResponseModel(ShopItem shopCatalogItem, List<Category> categories, Locales locale) : base(shopCatalogItem, categories, locale) {
      Sku = shopCatalogItem.Sku;
      Rating = shopCatalogItem.Rating;
      Price = shopCatalogItem.Price;
      NewPrice = shopCatalogItem.NewPrice;
      Quantity = shopCatalogItem.Quantity;
    }
  }
}
