using BBWYB.Server.Model.Db;
using FreeSql.DataAnnotations;
using Newtonsoft.Json;

namespace BBWYB.Server.Model
{

    /// <summary>
    /// Sku采购方案表
    /// </summary>
    [Table(Name = "purchasescheme", DisableSyncStructure = true)]
    public partial class PurchaseScheme
    {

        /// <summary>
        /// Sku采购方案Id
        /// </summary>
        [Column(IsPrimary = true)]
        public long Id { get; set; }

        [Column(DbType = "datetime")]
        public DateTime? CreateTime { get; set; }

        /// <summary>
        /// 采购默认成本
        /// </summary>

        public decimal DefaultCost { get; set; } = 0.0M;

        /// <summary>
        /// 采购方案最近采购成本(配件单价之和)
        /// </summary>
        public decimal LastPurchasePriceCost { get; set; } = 0.0M;

        [Column(StringLength = 50, IsNullable = false)]
        public string ProductId { get; set; }

        ///// <summary>
        ///// 采购商Id
        ///// </summary>
        //[Column(StringLength = 20)]
        //public string PurchaserId { get; set; }

        [Column(StringLength = 50, IsNullable = false)]
        public string SkuId { get; set; }

        public long ShopId { get; set; }

        /// <summary>
        /// 最后采购时间
        /// </summary>
        [Column(DbType = "datetime")]
        public DateTime? LastPurchaseTime { get; set; }

        /// <summary>
        /// 慧眼标的Id
        /// </summary>
        [Column(StringLength = 50)]
        public string HYBDId { get; set; }

        /// <summary>
        /// 慧眼方案Id
        /// </summary>
        [Column(StringLength = 50)]
        public string HYSchemeId { get; set; }

        /// <summary>
        /// 分组Id
        /// </summary>
        [Column(DbType = "bigint")]
        public long SchemeGroupId { get; set; } = 0;

        /// <summary>
        /// 方案版本
        /// </summary>
        [Column(DbType = "int")]
        public int Version { get; set; } = 1;

        [Column(IsIgnore = true)]
        public List<PurchaseSchemeProduct> PurchaseSchemeProductList { get; set; }

        /// <summary>
        /// 议价成本,只有当任意配件包含议价成本时才具备此值
        /// </summary>
        public decimal? BargainingCost { get; set; }

        /// <summary>
        /// 采购次数
        /// </summary>
        public int? PurchasedCount { get; set; } = 0;

        /// <summary>
        /// 采购金额
        /// </summary>
        public decimal? PurchasedAmount { get; set; } = 0M;

        /// <summary>
        /// 首选采购方案 (是=1 否=0)
        /// </summary>
        public int? IsFirst { get; set; } = 0;

        /// <summary>
        /// 最近议价日期
        /// </summary>
        [Column(DbType = "datetime")]
        public DateTime? LastBargainingTime { get; set; }

        /// <summary>
        /// 采购件数
        /// </summary>
        public int? PurchasedItemCount { get; set; } = 0;

        /// <summary>
        /// 归属议价组Id
        /// </summary>
        [Column(StringLength = 50)]
        public string BelongBargainTeamId { get; set; }

        /// <summary>
        /// 归属议价组名称
        /// </summary>
        [Column(StringLength = 50)]
        public string BelongBargainTeamName { get; set; }

        /// <summary>
        /// 更新人Id
        /// </summary>
        [Column(StringLength = 50)]
        public string UpdateUserId { get; set; }

        /// <summary>
        /// 更新人团队Id
        /// </summary>
        [Column(StringLength = 50)]
        public string UpdateTeamId { get; set; }

        /// <summary>
        /// 是否为议价组更新
        /// </summary>
        [Column(DbType = "bit")]
        public bool? IsBargainTeamUpdate { get; set; } = false;

        /// <summary>
        /// 是否包邮
        /// </summary>
        [Column(DbType = "bit")]
        public bool? IsFreeFreight { get; set; } = false;
    }

}