using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS.Model.ApiModel.Stocktaking;

namespace WCS.BLL.DbModels
{
    /// <summary>
    /// 盘点单据
    /// </summary>
    [SugarTable("wcs_stock_taking_order")]
    public class StockTakingOrder
    {
        /// <summary>
        /// 主键 自增Id
        /// </summary>
        [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsNullable = false, IsIdentity = true)]
        public int Id { get; set; }

        /// <summary>
        /// 盘点单据号
        /// </summary>           
        [SugarColumn(ColumnName = "stocktaking_order_number", Length = 50, IsNullable = false, ColumnDescription = "盘点单据号")]
        public string StocktakingOrderNumber { get; set; }

        /// <summary>
        /// 盘点单据状态
        /// </summary>           
        [SugarColumn(ColumnName = "stocktaking_order_status", IsNullable = false, ColumnDescription = "盘点单据状态")]
        public StocktakingOrderStatus StocktakingOrderStatus { get; set; } = StocktakingOrderStatus.未盘点;

        /// <summary>
        /// 盘点单据来源
        /// </summary>           
        [SugarColumn(ColumnName = "StocktakingOrderSource", Length = 50, IsNullable = true, ColumnDescription = "单据来源")]
        public string? StocktakingOrderSource { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>           
        [SugarColumn(ColumnName = "create_time", IsNullable = false, ColumnDescription = "创建时间")]
        public DateTime CreateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 创建人
        /// </summary>           
        [SugarColumn(ColumnName = "create_user", Length = 100, IsNullable = true, ColumnDescription = "创建人")]
        public string CreateUser { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>           
        [SugarColumn(ColumnName = "update_time", IsNullable = false, ColumnDescription = "更新时间")]
        public DateTime UpdateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 货架的组别、区域（区分单个软件管哪些货架的，前端的配置文件配置一个组别，查询时只显示当前组别的货架）
        /// </summary>
        [SugarColumn(ColumnName = "group_name", Length = 50, IsNullable = true, DefaultValue = "0", ColumnDescription = "货架的组别、区域（区分单个软件管哪些货架的，前端的配置文件配置一个组别，查询时只显示当前组别的货架）")]
        public string GroupName { get; set; } = string.Empty;

        /// <summary>
        /// 序号
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public int RowNumber { get; set; }
        /// <summary>
        /// 是否已经选择
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public bool IsSelected { get; set; }

    }
}
