using FreeSql.DatabaseModel;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;

namespace BBWY.Server.Model.Db
{

    [Table(Name = "promotiontask", DisableSyncStructure = true)]
    public partial class PromotionTask
    {

        [Column(IsPrimary = true)]
        public long Id { get; set; }

        /// <summary>
        /// 活动名称
        /// </summary>
        [Column(StringLength = 100)]
        public string ActivityName { get; set; }

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

        /// <summary>
        /// 完整标题
        /// </summary>

        public string FullTitle { get; set; }

        /// <summary>
        /// 赠品模板Id 可空
        /// </summary>

        public long? GiftTemplateId { get; set; }

        /// <summary>
        /// 主商品的赠品sku,逗号间隔,可空 
        /// </summary>

        public string MainProductGiftSku { get; set; }


        /// <summary>
        /// 赠品模板上架的Sku(开始任务之后有值),逗号间隔,可空 
        /// </summary>
        public string GiftTemplatePutNewSku { get; set; }

        /// <summary>
        /// 主商品sku,逗号间隔,可空
        /// </summary>

        public string MainProductSku { get; set; }

        /// <summary>
        /// 主商品spu
        /// </summary>
        [Column(StringLength = 50)]
        public string MainProductSpu { get; set; }

        /// <summary>
        /// 奶妈模板Id 可空
        /// </summary>

        public long? MotherTemplateId { get; set; }

        /// <summary>
        /// 促销活动Id
        /// </summary>

        public long? PromotionId { get; set; }


        public long? ShopId { get; set; }

        /// <summary>
        /// 精简标题
        /// </summary>
        [Column(StringLength = 100)]
        public string SimpleTitle { get; set; }

        /// <summary>
        /// 任务状态
        /// </summary>
        [Column(MapType = typeof(int?))]
        public Enums.PromitionTaskStatus? Status { get; set; }

        [Column(DbType = "bit")]
        public bool IsEnabled { get; set; } = true;

        public int Sort { get; set; }

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

        public string SpuLogo { get; set; }

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

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

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

        /// <summary>
        /// 停止时间
        /// </summary>
        [Column(DbType = "datetime")]
        public DateTime? StopTime { get; set; }

        /// <summary>
        /// 自定义奶妈sku
        /// </summary>
        public string CustomMotherSku { get; set; }


        /// <summary>
        /// 任务数量
        /// </summary>
        public int TaskCount { get; set; }

        /// <summary>
        /// 已完成任务量
        /// </summary>
        public int CompletedTaskCount { get; set; }

        /// <summary>
        /// 前置任务Id
        /// </summary>
        public long? PreTaskId { get; set; }

        /// <summary>
        /// 错误信息
        /// </summary>
        public string ErrorMsg { get; set; }

        /// <summary>
        /// 外部Id
        /// </summary>
        public string OuterId { get; set; }

        /// <summary>
        /// 是否新品(0=老 1=新)
        /// </summary>
        public int? IsNewProduct { get; set; } = 1;
    }

}