namespace RB_MES_API.Models.Cloud
{
    /// <summary>
    /// 批量保存单据的接口类
    /// </summary>
    public class DataSaveBatchJson
{
        /// <summary>
        ///  是否用编码搜索基础资料，布尔类型，默认true（非必录）
        /// </summary>
        public bool NumberSearch { get; set; } = true;
        /// <summary>
        ///  是否验证标志，布尔类型，默认true（非必录）
        /// </summary>
        public bool ValidateFlag { get; set; } = true;
        /// <summary>
        ///  是否验证标志，布尔类型，默认true（非必录）
        /// </summary>
        public bool IsDeleteEntry { get; set; } = true;
        /// <summary>
        ///  是否验证标志，布尔类型，默认true（非必录）
        /// </summary>
        public bool IsEntryBatchFill { get; set; } = true;
        /// <summary>
        /// 需要更新的字段，数组类型，格式：[key1,key2,...]（非必录） 注（更新单据体字段得加上单据体key）
        /// </summary>
        public string[] NeedUpDateFields { get; set; }
        /// <summary>
        /// 需返回结果的字段集合，数组类型，格式：[key,entitykey.key,...]（非必录） 注（返回单据体字段格式：entitykey.key）
        /// </summary>
        public string[] NeedReturnFields { get; set; }
        /// <summary>
        /// 表单所在的子系统内码，字符串类型（非必录）
        /// </summary>
        public string SubSystemId { get; set; }=string.Empty;
        /// <summary>
        /// 交互标志集合，字符串类型，分号分隔，格式："flag1;flag2;..."（非必录），例如（允许负库存标识：STK_InvCheckResult）
        /// </summary>
        public string InterationFlags { get; set; } = string.Empty;
        /// <summary>
        ///  是否自动提交与审核，布尔类型，默认false（非必录） 注（启用此参数，保存，提交和审核是在一个事务中）
        /// </summary>
        public bool IsAutoSubmitAndAudit { get; set; } = true;
        /// <summary>
        /// 表单数据包，JSON类型（必录），根据单据不同初始化，比如BOM: New ENG_BOM_Save.BOM_Model() 
        /// </summary>
        public object Model { get; set; }=new object();
        /// <summary>
        /// 服务端开启的线程数，整型（非必录） 注（数据包数应大于此值，否则无效。）
        /// </summary>
        public int BatchCount { get; set; } = 1;
        /// <summary>
        ///  是否验证所有的基础资料有效性，布尔类，默认false（非必录）
        /// </summary>
        public bool IsVerifyBaseDataField { get; set; } = true;
        /// <summary>
        ///  是否自动调整JSON字段顺序，布尔类型，默认false（非必录）
        /// </summary>
        public bool IsAutoAdjustField { get; set; } = false;
        /// <summary>
        ///  是否允许忽略交互，布尔类型，默认true（非必录）
        /// </summary>
        public bool IgnoreInterationFlag { get; set; } = true;
        /// <summary>
        /// 是否控制精度，为true时对金额、单价和数量字段进行精度验证，默认false（非必录）
        /// </summary>
        public bool IsControlPrecision { get; set; } = true;
        /// <summary>
        /// 校验Json数据包是否重复传入，一旦重复传入，接口调用失败，默认false（非必录）
        /// </summary>
        public bool ValidateRepeatJson { get; set; } = true;
    }
}
