using System;
using System.Collections.Generic;

namespace QTMDataFormat;

[Serializable]
public class DataBaseSchema
{
	public const string SESSIONDATARID = "SessionDataRID";

	public const string UUT_SN = "UUT_SN";

	public const string MCN = "MCN";

	public const string TREEID = "TreeID";

	public const string TESTERID = "TesterID";

	public const string NODEDATARID = "NodeDataRID";

	public const string TESTNAME = "TestName";

	public const string PARAMETERNAME = "ParameterName";

	public const string LOWERLIMIT = "LowerLimit";

	public const string NUMVALUE = "NumValue";

	public const string UPPERLIMIT = "UpperLimit";

	public const string CHARVALUE = "CharValue";

	public const string TESTRESULT = "TestResult";

	public const string VISITNUMBER = "VisitNumber";

	public const string GLOBALRESULT = "GlobalResult";

	public const string DVTFLAG = "DvtFlag";

	public const string SCNVALUE = "ScnValue";

	public const string ARRAYPARAMINDEX = "ArrayParamIndex";

	public const string ARRAYLOWERLIMIT = "ArrayLowerLimit";

	public const string ARRAYRESULT = "ArrayResult";

	public const string ARRAYUPPERLIMIT = "ArrayUpperLimit";

	public const string ARRAYPARAMCHARRESULT = "ArrayParamCharResult";

	public const string LINK = "Link";

	public const string PARAMPASSFAIL = "ParamPassFail";

	public const string LOT = "Lot";

	public const string LASTVISIT = "LastVisit";

	public const string PASSFAIL = "PassFail";

	public const string RUNTITLE = "RunTitle";

	public const string PANEL = "Panel";

	public const string SUBPLATE = "SubPlate";

	public const string PLATE = "Plate";

	public const string PRODUCTTYPE = "ProductType";

	public const string PRODUCTNAME = "ProductName";

	public const string LOCATION = "Location";

	public const string SERIALID = "SerialID";

	public const string UOM = "UOM";

	public const string UNITSTARTTIME = "UnitStartTime";

	public const string UNITSTOPTIME = "UnitStopTime";

	public const string STARTTIME = "StartTime";

	public const string STOPTIME = "StopTime";

	public const string WORKSTATION = "WorkStation";

	public const string DEFAULT_FILE = "C:\\QDM\\TEMP\\DataBaseSchema.xml";

	private List<string> sessionDataColumns = new List<string>();

	private List<string> testDataColumns = new List<string>();

	private List<string> parameterDataColumns = new List<string>();

	private List<string> limitDataColumns = new List<string>();

	private List<string> arrayDataColumns = new List<string>();

	private List<string> identityColumns = new List<string>();

	private List<string> dateTimeColumns = new List<string>();

	public List<string> ArrayDataColumns
	{
		get
		{
			return arrayDataColumns;
		}
		set
		{
			arrayDataColumns = value;
		}
	}

	public List<string> LimitDataColumns
	{
		get
		{
			return limitDataColumns;
		}
		set
		{
			limitDataColumns = value;
		}
	}

	public List<string> ParameterDataColumns
	{
		get
		{
			return parameterDataColumns;
		}
		set
		{
			parameterDataColumns = value;
		}
	}

	public List<string> TestDataColumns
	{
		get
		{
			return testDataColumns;
		}
		set
		{
			testDataColumns = value;
		}
	}

	public List<string> SessionDataColumns
	{
		get
		{
			return sessionDataColumns;
		}
		set
		{
			sessionDataColumns = value;
		}
	}

	public List<string> IdenitityColumns
	{
		get
		{
			return identityColumns;
		}
		set
		{
			identityColumns = value;
		}
	}

	public List<string> DateTimeColumns
	{
		get
		{
			return dateTimeColumns;
		}
		set
		{
			dateTimeColumns = value;
		}
	}

	public static DataBaseSchema GenerateDefaultSchema()
	{
		DataBaseSchema dataBaseSchema = new DataBaseSchema();
		dataBaseSchema.sessionDataColumns.Add("SessionDataRID");
		dataBaseSchema.sessionDataColumns.Add("UUT_SN");
		dataBaseSchema.sessionDataColumns.Add("MCN");
		dataBaseSchema.sessionDataColumns.Add("TreeID");
		dataBaseSchema.sessionDataColumns.Add("TesterID");
		dataBaseSchema.sessionDataColumns.Add("VisitNumber");
		dataBaseSchema.sessionDataColumns.Add("GlobalResult");
		dataBaseSchema.sessionDataColumns.Add("TesterID");
		dataBaseSchema.sessionDataColumns.Add("DvtFlag");
		dataBaseSchema.sessionDataColumns.Add("Link");
		dataBaseSchema.sessionDataColumns.Add("Lot");
		dataBaseSchema.sessionDataColumns.Add("Plate");
		dataBaseSchema.sessionDataColumns.Add("SubPlate");
		dataBaseSchema.sessionDataColumns.Add("Panel");
		dataBaseSchema.sessionDataColumns.Add("Location");
		dataBaseSchema.sessionDataColumns.Add("LastVisit");
		dataBaseSchema.sessionDataColumns.Add("ProductName");
		dataBaseSchema.sessionDataColumns.Add("ProductType");
		dataBaseSchema.sessionDataColumns.Add("SerialID");
		dataBaseSchema.sessionDataColumns.Add("UOM");
		dataBaseSchema.sessionDataColumns.Add("UnitStartTime");
		dataBaseSchema.sessionDataColumns.Add("UnitStopTime");
		dataBaseSchema.sessionDataColumns.Add("StartTime");
		dataBaseSchema.sessionDataColumns.Add("StopTime");
		dataBaseSchema.sessionDataColumns.Add("WorkStation");
		dataBaseSchema.testDataColumns.Add("TestName");
		dataBaseSchema.testDataColumns.Add("TestResult");
		dataBaseSchema.parameterDataColumns.Add("ParameterName");
		dataBaseSchema.parameterDataColumns.Add("NumValue");
		dataBaseSchema.parameterDataColumns.Add("CharValue");
		dataBaseSchema.parameterDataColumns.Add("ParamPassFail");
		dataBaseSchema.parameterDataColumns.Add("ArrayParamCharResult");
		dataBaseSchema.parameterDataColumns.Add("ArrayParamIndex");
		dataBaseSchema.parameterDataColumns.Add("ArrayResult");
		dataBaseSchema.parameterDataColumns.Add("LowerLimit");
		dataBaseSchema.parameterDataColumns.Add("UpperLimit");
		dataBaseSchema.parameterDataColumns.Add("ArrayUpperLimit");
		dataBaseSchema.parameterDataColumns.Add("ArrayLowerLimit");
		dataBaseSchema.limitDataColumns.Add("LowerLimit");
		dataBaseSchema.limitDataColumns.Add("UpperLimit");
		dataBaseSchema.limitDataColumns.Add("ArrayUpperLimit");
		dataBaseSchema.limitDataColumns.Add("ArrayLowerLimit");
		dataBaseSchema.arrayDataColumns.Add("ParameterName");
		dataBaseSchema.arrayDataColumns.Add("ArrayParamCharResult");
		dataBaseSchema.arrayDataColumns.Add("ArrayParamIndex");
		dataBaseSchema.arrayDataColumns.Add("ArrayResult");
		dataBaseSchema.arrayDataColumns.Add("ArrayUpperLimit");
		dataBaseSchema.arrayDataColumns.Add("ArrayLowerLimit");
		dataBaseSchema.identityColumns.Add("SessionDataRID");
		dataBaseSchema.identityColumns.Add("NodeDataRID");
		dataBaseSchema.dateTimeColumns.Add("StartTime");
		dataBaseSchema.dateTimeColumns.Add("StopTime");
		return dataBaseSchema;
	}
}
