using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MisDataSaveDate
{

    // 申请条码
    public class MiReleaseSfcWithActivityParams
    {

        public string site { set; get; }
        public string resource { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string sfcQty { set; get; }
        public string activity { set; get; }
        public string user { set; get; }
        public ModeProcessSfc modeProcessSFC { set; get; }
    }
    // 电芯校验
    public class MiCheckInventoryAttributes
    {
        public string site { set; get; }
        public string sfc { set; get; }
        public string resource { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string user { set; get; }
        public string activityId { set; get; }
        public ModeCheckInventory modeCheckInventory { set; get; }
        public string requiredQuantity { set; get; }
        public List<string> inventoryArray { set; get; }
    }

    // 批次码校验
    public class MiCheckBOMInventory
    {

        public string site { get; set; }
        public string user { get; set; }
        public string operation { get; set; }
        public string operationRevision { get; set; }
        public string activity { get; set; }
        public string resource { get; set; }
        public string sfc { get; set; }
        public string modeCheckOperation { get; set; }
        public string inventory { get; set; }
        public string component { get; set; }

    }

    // 电芯K值
    public class CellCustomDCCheck
    {
        public string site { set; get; }
        public string dcSequence { set; get; }
        public string user { set; get; }
        public string Multispec { set; get; }
        public string operation { set; get; }
        public string resource { set; get; }
        public List<Inventory> inventoryList { set; get; }
    }
    public class Inventory
    {

        public string inventoryId { set; get; }
        public string marking { set; get; }
        public List<InventoryData> inventoryDatalist { set; get; }
    }
    public class InventoryData
    {
        public string name { set; get; }
        public string value { set; get; }
    }

    // 进站 暂时没有用到
    public class SfcStart
    {
        public string site { set; get; }
        public string user { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string resource { set; get; }
        public string sfcArray { set; get; }
    }
    // 进站 通用这个
    public class MiFindCustomAndSfcData
    {
        public string site { set; get; }
        public string user { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string resource { set; get; }
        public string masterDataArray { set; get; }
        public ModeProcessSfc modeProcessSfc { set; get; }
        public string sfc { set; get; }
        public string activity { set; get; }
    }
    // 进站  测试设备用这个
    public class MiCheckSFCStatusEx
    {
        public string site { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string sfc { set; get; }
    }

    // 出站 有数据走这里（非测试设备）
    public class DataCollectForSfcEx
    {
        public string site { set; get; }
        public string sfc { set; get; }
        public string dcGroup { set; get; }
        public string dcGroupRevision { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string resource { set; get; }
        public string user { set; get; }
        public string activityId { set; get; }
        public ModeProcessSfc modeProcessSfc { get; set; }
        public List<ParametricData> parametricDataArray { set; get; }

    }
    // 出站 无数据走这里
    public class SfcComplete
    {
        public string site { set; get; }
        public string sfcArray { set; get; }
        public string user { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string resource { set; get; }
    }
    // 出站 有数据走这里（测试设备）
    public class DataCollectForMoudleTest
    {
        public string site { set; get; }
        public string sfc { set; get; }
        public string dcGroup { set; get; }
        public string dcGroupRevision { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string resource { set; get; }
        public string user { set; get; }
        public string activityId { set; get; }
        public ModeProcessSfc modeProcessSfc { get; set; }
        public List<ParametricData> parametricDataArray { set; get; }
    }

    public class ParametricData
    {
        public string name { set; get; }
        public string value { set; get; }
        public string dataType { set; get; }
    }
    // 装配
    public class MiAssmebleAndCollectDataForSfc
    {
        public string site { get; set; }
        public string sfc { get; set; }
        public string operation { get; set; }
        public string operationRevision { get; set; }
        public string resource { get; set; }
        public string user { get; set; }
        public string activityId { get; set; }
        public ModeProcessSfc modeProcessSFC { get; set; }
        public string partialAssembly { get; set; }
        public List<InventoryItem> inventoryArray { get; set; } = new List<InventoryItem>();

   
    }
    public class InventoryItem
    {
        public string inventory { get; set; }
        public string qty { get; set; }
        public List<AssemblyDataField> assemblyDataFields { get; set; } = new List<AssemblyDataField>();
    }
    public class AssemblyDataField
    {
        public string attribute { get; set; }
        public string value { get; set; }
    }

    //获取打印信息
    public class GetAllLabelContents
    {
        public string site { set; get; }
        public string sfcList { get; set; }
        public string item { get; set; }
        public string languageCode { get; set; }
        public string Y { get; set; }
        public string activity { get; set; }

    }
    public class LabelContent
    {
        public string Code { get; set; }
        public string Message { get; set; }
        public string TemplateVersion { get; set; }
        public string Sfc { get; set; }
        public string SysPn { get; set; }
        public List<LabelField> LabelFields { get; set; } = new List<LabelField>();
    }
    public class LabelField
    {
        public string Field { get; set; }
        public string Value { get; set; }
        public string Formula { get; set; }
    }
    // 首件信息
    public class DataCollectForResourceInspect
    {
        public string site { set; get; }
        public string user { set; get; }
        public string dcMode { set; get; }
        public string executeMode { set; get; }
        public string resource { set; get; }
        public string operation { set; get; }
        public string operationRevision { set; get; }
        public string dcGroup { set; get; }
        public string dcGroupRevision { set; get; }
        public string dcSequence { set; get; }
        public List<ParametricData> parametricDataArray { set; get; }

    }


    // 过站模式
    public enum ModeProcessSfc
    {
        MODE_NONE,
        MODE_COMPLETE_SFC_POST_DC,
        MODE_START_SFC,
        MODE_PASS_SFC_POST_DC,
        MODE_START_SFC_PRE_DC,
    }
    // 检查模式
    public enum ModeCheckInventory
    {
        MODE_NONE,
        MODE_MARK_AND_TIME,
        MODE_TIME_ONLY,
        MODE_MARK_ONLY
    }
    // 授权
    public class AuthHeader
    {
        public string Username {  set; get; }
        public string Password {  set; get; }

    }


    // 获取产品生产状态
    public class GetSfcStatusAndOperationParams
    {
        public string site { get; set; }
        public string barcode { get; set; }
    }
}
