using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Attributes;
using WIDESEA_Core.BaseRepository;
using WIDESEA_DTO.Inbound;
using WIDESEA_Model.Models;
namespace WIDESEA_DTO
{
    
    /// 
    /// 采购单模型
    /// 
    [ModelValidate]
    public class PurchaseOrderModel
    {
        /// 
        /// 操作类型(1:新增、2:修改、3:删除、4:关闭[删除、关闭只要单号,已生成收货单的不能删除])
        /// 
        [PropertyValidate("操作类型", Check = new object[] { 1, 2, 3, 4 })]
        public int Way { get; set; }
        /// 
        /// 采购单号
        /// 
        [PropertyValidate("采购单号", NotNullAndEmpty = true)]
        public string OrderNo { get; set; }
        /// 
        /// 单据类型(S:标准入库、V:寄售补给入库)
        /// 
        [PropertyValidate("单据类型", NotNullAndEmpty = true, Check = new[] { "S", "V" })]
        public string Type { get; set; }
        /// 
        /// 供应商编号
        /// 
        [PropertyValidate("供应商编号", NotNullAndEmpty = true)]
        public string SCode { get; set; }
        /// 
        /// 采购数量
        /// 
        [PropertyValidate("采购数量", MinValue = 0, IsContainMinValue = false)]
        public float Amount { get; set; }
        /// 
        /// 下单日期
        /// 
        [PropertyValidate("下单日期", NotNullAndEmpty = true)]
        public string OrderDate { get; set; }
        /// 
        /// 备注
        /// 
        public string Note { get; set; }
        /// 
        /// 物料列表
        /// 
        [PropertyValidate("物料列表", NotNullAndEmpty = true)]
        public List MList { get; set; }
    }
    /// 
    /// 采购单明细模型
    /// 
    [ModelValidate]
    public class PurchaseOrderDetailModel
    {
        /// 
        /// 行号
        /// 
        public int RowId { get; set; }
        [PropertyValidate("物料编号", NotNullAndEmpty = true)]
        public string MCode { get; set; }
        /// 
        /// 仓库编号
        /// 
        [PropertyValidate("仓库编号", NotNullAndEmpty = true)]
        public string WaId { get; set; }
        /// 
        /// 数量
        /// 
        [PropertyValidate("采购数量", MinValue = 0, IsContainMinValue = false)]
        public float Qty { get; set; }
        /// 
        /// 单位
        /// 
        [PropertyValidate("单位", NotNullAndEmpty = true)]
        public string Unit { get; set; }
    }
}