using Atomx.Common.Entities;

namespace Atomx.Admin.Client.Models
{
    public class ProductModel
    {
        /// <summary>
        /// 产品ID
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 父产品ID
        /// </summary>
        public long ParentProductId { get; set; }

        /// <summary>
        /// 发布用户ID
        /// </summary>

        public long UserId { get; set; }

        /// <summary>
        /// 归属公司ID
        /// </summary>

        public long CorporationId { get; set; }

        /// <summary>
        /// 卖家店铺ID
        /// </summary>
        public long StoreId { get; set; }

        /// <summary>
        /// 产品类型ID
        /// </summary>
        public long ProductTypeId { get; set; }

        /// <summary>
        /// 分类路径
        /// </summary>
        public string? CategoryPath { get; set; } = string.Empty;

        /// <summary>
        /// 分类ID
        /// </summary>
        public long CategoryId { get; set; }

        /// <summary>
        /// 制造商ID
        /// </summary>
        public long ManufacturerId { get; set; }

        /// <summary>
        /// SEO Title
        /// </summary>
        public string MetaTitle { get; set; } = string.Empty;

        /// <summary>
        /// SEO Description
        /// </summary>
        public string MetaDescription { get; set; } = string.Empty;

        /// <summary>
        /// 产品Slug
        /// </summary>
        public string Slug { get; set; } = string.Empty;

        /// <summary>
        /// 产品名称
        /// </summary>
        public string Title { get; set; } = string.Empty;

        /// <summary>
        /// 产品唯一编码
        /// </summary>
        public string? SIN { get; set; } = string.Empty;

        /// <summary>
        /// 封面图片
        /// </summary>
        public string? Image { get; set; } = string.Empty;

        /// <summary>
        /// 产品图片，JSON
        /// </summary>
        public string? Photos { get; set; } = string.Empty;

        /// <summary>
        /// 产品卖点
        /// </summary>
        public string? Feature { get; set; } = string.Empty;

        /// <summary>
        /// 产品简介
        /// </summary>
        public string? Description { get; set; } = string.Empty;

        /// <summary>
        /// 产品特点标签
        /// </summary>
        public string? Tags { get; set; } = string.Empty;

        /// <summary>
        /// 产品详细介绍
        /// </summary>
        public string Body { get; set; } = string.Empty;

        /// <summary>
        /// 规格信息Json
        /// </summary>
        public string? Specification { get; set; } = string.Empty;

        /// <summary>
        /// 商品库存
        /// </summary>
        public int StockQuantity { get; set; }

        /// <summary>
        /// 重量
        /// </summary>
        public decimal? Weight { get; set; }

        /// <summary>
        /// 市场价，划线价
        /// </summary>
        public decimal MarketPrice { get; set; }

        /// <summary>
        /// 销售标价
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// SKU组合的产品价格信息
        /// </summary>
        public string? SkuPrices { get; set; } = string.Empty;

        /// <summary>
        /// 商品扩展信息
        /// </summary>
        public string Extended { get; set; } = string.Empty;

        /// <summary>
        /// 订单最小数量
        /// </summary>
        public int OrderMinimumQuantity { get; set; }

        /// <summary>
        /// 订单最多数量
        /// </summary>
        public int OrderMaximumQuantity { get; set; }

        /// <summary>
        /// 是否允许退货
        /// </summary>
        public bool AllowReturn { get; set; }

        /// <summary>
        /// 是否允许换货
        /// </summary>
        public bool AllowExchange { get; set; }

        /// <summary>
        /// 是否独立发货
        /// </summary>
        public bool SingleShip { get; set; }

        /// <summary>
        /// 预计运输天数
        /// </summary>
        public int ShippingDays { get; set; }

        /// <summary>
        /// 运费模板ID
        /// </summary>
        public long ShippingId { get; set; }

        /// <summary>
        /// 精选
        /// </summary>
        public bool IsFeatured { get; set; }

        /// <summary>
        /// 是否 best
        /// </summary>
        public bool IsBest { get; set; }

        /// <summary>
        /// 是否标注新品
        /// </summary>
        public bool IsNew { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        public int DisplayOrder { get; set; }

        /// <summary>
        /// 暂停销售，前台处理成已售罄
        /// </summary>
        public bool StopSales { get; set; }

        /// <summary>
        /// 产品状态，0未上架，1上架
        /// </summary>

        public int Status { get; set; }

        /// <summary>
        /// 产品信息审核状态
        /// </summary>
        public int ReviewStatus { get; set; }

        /// <summary>
        /// 禁用优惠券
        /// </summary>
        public bool DisableCoupons { get; set; }

        /// <summary>
        /// 产品属性
        /// </summary>
        public List<ProductSaleAttributeModel> ProductSaleAttributes { get; set; } = new();

        /// <summary>
        /// 产品属性组合信息
        /// </summary>
        public List<ProductAttributeCombinationModel> ProductAttributeCombinations { get; set; } = new();

        /// <summary>
        /// 用来设置SKU属性图片的数据源
        /// </summary>
        public List<ProductAttribute> PhotoSalesAttribute { get; set; } = new();

        /// <summary>
        /// 是否编辑
        /// </summary>
        public bool IsEdit { get; set; } = false;

    }
}