using OASystem.Domain.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Entities.PersonnelModule
{

    /// <summary>
    /// 物品领用表
    /// </summary>
    [SugarTable(tableName: "Pm_GoodsReceive", tableDescription: "物品领用表")]
    public class Pm_GoodsReceive: EntityBase
    {
        /// <summary>
        /// 团组Id
        /// Grp_DelegationInfo Id
        /// </summary>
        [SugarColumn(ColumnDescription = "团组Id", IsNullable = true, ColumnDataType = "int")]
        public int GroupId { get; set; }

        /// <summary>
        /// 物资入库批次信息
        /// {storageId:1,quantity:10}
        /// </summary>
        [SugarColumn(ColumnDescription = "物资入库批次信息", IsNullable = true, ColumnDataType = "varchar(200)")]
        public string? GoodsStorageInfo { get; set; }

        /// <summary>
        /// 商品Id
        /// Pm_GoodsInfo Id
        /// </summary>
        [SugarColumn(ColumnDescription = "商品Id", IsNullable = true, ColumnDataType = "int")]
        public int GoodsId { get; set; }

        /// <summary>
        /// 领用数量
        /// </summary>
        [SugarColumn(ColumnDescription = "领用数量", IsNullable = true, ColumnDataType = "decimal(8,2)")]
        public decimal Quantity { get; set; }

        /// <summary>
        /// 领用原因
        /// </summary>
        [SugarColumn(ColumnDescription = "领用原因", IsNullable = true, ColumnDataType = "varchar(200)")]
        public string? Reason { get; set; }

        /// <summary>
        /// 审核状态
        /// </summary>
        [SugarColumn(ColumnDescription = "审核状态", IsNullable = true, ColumnDataType = "int")]
        public GoodsAuditEnum AuditStatus { get; set; } = GoodsAuditEnum.Pending;

        /// <summary>
        /// 审核人 Id
        /// Sys_User Id
        /// </summary>
        [SugarColumn(ColumnDescription = "审核人Id", IsNullable = true, ColumnDataType = "int")]
        public int AuditUserId { get; set; }

        /// <summary>
        /// 审核时间
        /// </summary>
        [SugarColumn(ColumnDescription = "审核时间", IsNullable = true, ColumnDataType = "datetime")]
        public DateTime AuditTime { get; set; }
    }
}