using SKMC.Api.Process.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SKMC.Api.Process
{
///
/// 流程站点的数据持久化接口
///
public abstract class ProcessStorage
{
#region StationStatus
///
/// 从持久化加载流程站点的特定物料状态
///
/// 流程站点对象
/// 物料类型号, 如果为-1表示全部
/// 如果对象中该matType存在是否覆盖
public abstract void LoadStationStatus(ProcessStation processStation, int[] matTypes, bool loadOverride = true);
///
/// 从持久化加载流程站点的所有物料状态
///
/// 流程站点对象
/// 如果对象中该matType存在是否覆盖
public abstract void LoadStationStatusAll(ProcessStation processStation, bool loadOverride = true);
///
/// 持久化保存流程站点的特定物料状态
///
/// 流程站点对象
/// 物料类型号, 如果为-1表示全部
/// 如果数据库中该matType存在是否覆盖
public abstract void SaveStationStatus(ProcessStation processStation, int[] matTypes, bool saveOverride = true);
///
/// 持久化保存流程站点的所有物料状态
///
/// 流程站点对象
/// 如果数据库中该matType存在是否覆盖
public abstract void SaveStationStatusAll(ProcessStation processStation, bool saveOverride = true);
///
/// 从持久化删除流程站点的特定物料状态
///
/// 流程站点对象
/// 物料类型号, 如果为-1表示全部
public abstract void DeleteStationStatus(ProcessStation processStation, int[] matTypes);
///
/// 从持久化删除流程站点的所有物料状态
///
/// 流程站点对象
public abstract void DeleteStationStatusAll(ProcessStation processStation);
#endregion
#region StationData
///
/// 从持久化加载某个流程站点的指定Data数据到ProcessStation对象中
/// 流程站点对象
/// 指定的数据键
/// 如果对象中该key存在是否覆盖
///
public abstract void LoadStationData(ProcessStation processStation, string[] keys, bool loadOverride = true);
///
/// 从持久化加载某个流程站点的所有Data数据到ProcessStation对象中
///
/// 流程站点对象
/// 如果对象中该key存在是否覆盖
public abstract void LoadStationDataAll(ProcessStation processStation, bool loadOverride = true);
///
/// 持久化保存某个流程站点的指定Data数据
///
/// 流程站点对象
/// 指定的数据键
/// 如果数据库中该key存在是否覆盖
public abstract void SaveStationData(ProcessStation processStation, string[] keys, bool saveOverride = true);
///
/// 持久化保存某个流程站点的所有Data数据
///
/// 流程站点对象
/// 如果数据库中该key存在是否覆盖
public abstract void SaveStationDataAll(ProcessStation processStation, bool saveOverride = true);
///
/// 从持久化删除某个流程站点的指定Data数据
///
/// 流程站点对象
/// 指定的数据键
public abstract void DeleteStationData(ProcessStation processStation, string[] keys);
///
/// 从持久化删除某个流程站点的所有Data数据
///
/// 流程站点对象
public abstract void DeleteStationDataAll(ProcessStation processStation);
#endregion
}
}