using System.Collections.Generic;
using WebApiClient;
using WebApiClient.Attributes;
using AMESCoreStudio.WebApi;
using Microsoft.AspNetCore.Mvc;
using AMESCoreStudio.WebApi.Models.BAS;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
using AMESCoreStudio.WebApi.DTO.AMES;

namespace AMESCoreStudio.Web
{
    [JsonReturn]
    public interface IBAS: IHttpApi
    {
        #region BAS001工廠資料維護相關

        /// <summary>
        /// 新增工廠
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/FactoryInfoes")]
        ITask<ResultModel<FactoryInfo>> PostFactoryInfo([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新工廠
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/FactoryInfoes/{id}")]
        ITask<ResultModel<FactoryInfo>> PutFactoryInfo(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除工廠
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/FactoryInfoes/{id}")]
        ITask<ResultModel<string>> DeleteFactoryInfo(int id);

        /// <summary>
        /// 根據ID獲取指定工廠資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/FactoryInfoes/{id}")]
        ITask<List<FactoryInfo>> GetFactoryInfo(int id);

        /// <summary>
        /// 獲取工廠資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/FactoryInfoes")]
        ITask<List<FactoryInfo>> GetFactoryInfoes();

        #endregion

        #region BAS002生產製程單位維護相關

        /// <summary>
        /// 新增生產製程單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/FactoryUnits")]
        ITask<ResultModel<FactoryUnit>> PostFactoryUnit([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新生產製程單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/FactoryUnits/{id}")]
        ITask<ResultModel<FactoryUnit>> PutFactoryUnit(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除生產製程單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/FactoryUnits/{id}")]
        ITask<ResultModel<string>> DeleteFactoryUnit(string id);

        /// <summary>
        /// 根據ID獲取指定生產製程單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/FactoryUnits/{id}")]
        ITask<List<FactoryUnit>> GetFactoryUnit(string id);

        /// <summary>
        /// 獲取生產製程單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/FactoryUnits")]
        ITask<List<FactoryUnit>> GetFactoryUnits();

        #endregion

        #region BAS003線別資料維護相關

        /// <summary>
        /// 新增線別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/LineInfoes")]
        ITask<ResultModel<LineInfo>> PostLineInfo([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新線別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/LineInfoes/{id}")]
        ITask<ResultModel<LineInfo>> PutLineInfo(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除線別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/LineInfoes/{id}")]
        ITask<ResultModel<string>> DeleteLineInfo(int id);


        /// <summary>
        /// 根據ID獲取指定線別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/LineInfoes/{id}")]
        ITask<List<LineInfo>> GetLineInfo(int id);

        /// <summary>
        /// 獲取線別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/LineInfoes")]
        ITask<List<LineInfo>> GetLineInfoes();

        /// <summary>
        /// 根据單位獲取線別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/LineInfoes/Unit/{id}")]
        ITask<List<LineInfo>> GetLineInfoByUnit(string id);

        /// <summary>
        /// 根据單位獲取線別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/LineInfoes/List")]
        ITask<List<ListObj>> GetLineInfoList();
        #endregion

        #region BAS005班別維護相關

        /// <summary>
        /// 新增班別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/ClassInfoes")]
        ITask<ResultModel<ClassInfo>> PostClassInfo([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新班別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/ClassInfoes/{id}")]
        ITask<ResultModel<ClassInfo>> PutClassInfo(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除班別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/ClassInfoes/{id}")]
        ITask<ResultModel<string>> DeleteClassInfo(int id);

        /// <summary>
        /// 根據ID獲取指定班別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ClassInfoes/{id}")]
        ITask<List<ClassInfo>> GetClassInfo(int id);

        /// <summary>
        /// 獲取班別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ClassInfoes")]
        ITask<List<ClassInfo>> GetClassInfoes();

        /// <summary>
        /// 根据單位獲取班別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ClassInfoes/Unit/{id}")]
        ITask<List<ClassInfo>> GetClassInfoByUnit(string id);

        #endregion

        #region BAS006時段資料檔維護相關

        /// <summary>
        /// 新增時段資料檔
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/TimeSegments")]
        ITask<ResultModel<TimeSegment>> PostTimeSegment([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新時段資料檔
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/TimeSegments/{id}")]
        ITask<ResultModel<TimeSegment>> PutTimeSegment(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除時段資料檔
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/TimeSegments/{id}")]
        ITask<ResultModel<string>> DeleteTimeSegment(int id);

        /// <summary>
        /// 根據ID獲取指定時段資料檔
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/TimeSegments/{id}")]
        ITask<List<TimeSegment>> GetTimeSegment(int id);

        /// <summary>
        /// 獲取時段資料檔
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/TimeSegments")]
        ITask<List<TimeSegment>> GetTimeSegments();

        #endregion

        #region BAS007站別類別維護相關

        /// <summary>
        /// 新增站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/StationTypes")]
        ITask<ResultModel<StationType>> PostStationType([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/StationTypes/{id}")]
        ITask<ResultModel<StationType>> PutStationType(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/StationTypes/{id}")]
        ITask<ResultModel<string>> DeleteStationType(string id);

        /// <summary>
        /// 根據ID獲取指定站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StationTypes/{id}")]
        ITask<List<StationType>> GetStationType(string id);

        /// <summary>
        /// 獲取站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StationTypes")]
        ITask<List<StationType>> GetStationTypes();

        #endregion

        #region BAS008站別維護相關

        /// <summary>
        /// 新增站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/Stationses")]
        ITask<ResultModel<Stations>> PostStations([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/Stationses/{id}")]
        ITask<ResultModel<Stations>> PutStations(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除站別類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/Stationses/{id}")]
        ITask<ResultModel<string>> DeleteStations(int id);

        /// <summary>
        /// 根據ID獲取指定站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Stationses/{id}")]
        ITask<List<Stations>> GetStations(int id);


        /// <summary>
        /// 根据單位獲取站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Stationses/Unit/{id}")]
        ITask<List<Stations>> GetStationsByUnit(string id);


        /// <summary>
        /// 獲取站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Stationses")]
        ITask<List<Stations>> GetStationses();

        #endregion

        #region BAS009流程資料維護相關 

        /// <summary>
        /// 新增流程
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/FlowRules")]
        ITask<ResultModel<FlowRule>> PostFlowRule([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新流程
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/FlowRules/{id}")]
        ITask<ResultModel<FlowRule>> PutFlowRule(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除流程
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/FlowRules/{id}")]
        ITask<ResultModel<string>> DeleteFlowRule(int id);

        /// <summary>
        /// 根據ID獲取指定流程資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/FlowRules/{id}")]
        ITask<List<FlowRule>> GetFlowRule(int id);

        /// <summary>
        /// 獲取流程資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/FlowRules")]
        ITask<List<FlowRule>> GetFlowRules();

        /// <summary>
        /// 根据製程單位獲取流程資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/FlowRules/Unit/{no}")]
        ITask<List<FlowRule>> GetFlowRulesByUnit(string no);

        #endregion

        #region BAS010流程資料維護相關 

        /// <summary>
        /// 新增流程站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/RuleStations")]
        ITask<ResultModel<RuleStation>> PostRuleStation([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新流程站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/RuleStations/{id}")]
        ITask<ResultModel<RuleStation>> PutRuleStation(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除流程站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/RuleStations/{id}")]
        ITask<ResultModel<string>> DeleteRuleStation(int id);

        /// <summary>
        /// 根據ID獲取指定流程站別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RuleStations/{id}")]
        ITask<List<RuleStation>> GetRuleStation(int id);

        /// <summary>
        /// 獲取流程站別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RuleStations")]
        ITask<List<RuleStation>> GetRuleStations();

        /// <summary>
        /// 根据流程ID獲取流程站別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RuleStations/Flow/{id}")]
        ITask<List<RuleStation>> GetRuleStationsByFlow(int id, int page = 1, int limit = 10);

        /// <summary>
        /// 獲取流程站別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RuleStations/Unit/{id}")]
        ITask<List<RuleStation>> GetRuleStationByUnit(string id);

        #endregion

        #region BAS011流程規則維護相關 

        /// <summary>
        /// 新增流程規則
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/Rules")]
        ITask<ResultModel<Rules>> PostRules([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新流程站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/Rules/{id}")]
        ITask<ResultModel<Rules>> PutRules(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除流程站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/Rules/{id}")]
        ITask<ResultModel<string>> DeleteRules(int id);

        /// <summary>
        /// 根據ID獲取指定流程站別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Rules/{id}")]
        ITask<List<Rules>> GetRules(int id);

        /// <summary>
        /// 獲取流程站別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Rules")]
        ITask<List<Rules>> GetRuleses();

        /// <summary>
        /// 根据流程ID獲取流程站別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Rules/Flow/{id}")]
        ITask<List<Rules>> GetRulesesByFlow(int id);

        #endregion

        #region BAS014責任單位資料維護相關

        /// <summary>
        /// 新增責任單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/RepairResponsibleUnitses")]
        ITask<ResultModel<RepairResponsibleUnits>> PostRepairResponsibleUnits([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新責任單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/RepairResponsibleUnitses/{id}")]
        ITask<ResultModel<RepairResponsibleUnits>> PutRepairResponsibleUnits(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除責任單位
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/RepairResponsibleUnitses/{id}")]
        ITask<ResultModel<string>> DeleteRepairResponsibleUnits(int id);

        /// <summary>
        /// 根據ID獲取指定責任單位資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RepairResponsibleUnitses/{id}")]
        ITask<List<RepairResponsibleUnits>> GetRepairResponsibleUnits(int id);

        /// <summary>
        /// 獲取責任單位資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RepairResponsibleUnitses")]
        ITask<List<RepairResponsibleUnits>> GetRepairResponsibleUnitses();

        #endregion

        #region BAS015Mail群組類別維護相關

        /// <summary>
        /// 新增Mail群組類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/MailGroups")]
        ITask<ResultModel<MailGroup>> PostMailGroup([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新Mail群組類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/MailGroups/{id}")]
        ITask<ResultModel<MailGroup>> PutMailGroup(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除Mail群組類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/MailGroups/{id}")]
        ITask<ResultModel<string>> DeleteMailGroup(int id);

        /// <summary>
        /// 根據ID獲取指定Mail群組類別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MailGroups/{id}")]
        ITask<List<MailGroup>> GetMailGroup(int id);

        /// <summary>
        /// 獲取Mail群組類別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MailGroups")]
        ITask<List<MailGroup>> GetMailGroups();

        #endregion

        #region BAS016Mail群組資料維護相關

        /// <summary>
        /// 新增Mail群組
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/MailGroupDetails")]
        ITask<ResultModel<MailGroupDetail>> PostMailGroupDetail([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新Mail群組
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/MailGroupDetails/{id}")]
        ITask<ResultModel<MailGroupDetail>> PutMailGroupDetail(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除Mail群組
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/MailGroupDetails/{id}")]
        ITask<ResultModel<string>> DeleteMailGroupDetail(int id);

        /// <summary>
        /// 根據ID獲取指定Mail群組資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MailGroupDetails/{id}")]
        ITask<List<MailGroupDetail>> GetMailGroupDetail(int id);

        /// <summary>
        /// 獲取Mail群組資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MailGroupDetails")]
        ITask<List<MailGroupDetailDto>> GetMailGroupDetails();

        /// <summary>
        /// 根据角色ID獲取用户角色資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MailGroupDetails/Group/{id}")]
        ITask<List<MailGroupDetailDto>> GetMailGroupDetailByGroup(int id);

        #endregion

        #region 測試代碼資料維護相關

        /// <summary>
        /// 新增測試代碼
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/TestTypes")]
        ITask<ResultModel<TestType>> PostTestType([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新測試代碼
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/TestTypes/{id}")]
        ITask<ResultModel<TestType>> PutTestType(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除測試代碼
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/TestTypes/{id}")]
        ITask<ResultModel<string>> DeleteTestType(int id);

        /// <summary>
        /// 根據ID獲取指定測試代碼資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/TestTypes/{id}")]
        ITask<List<TestType>> GetTestType(int id);

        /// <summary>
        /// 獲取測試代碼資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/TestTypes")]
        ITask<List<TestType>> GetTestTypes();

        #endregion

        #region BAS012料號流程資料維護相關

        /// <summary>
        /// 新增料號流程
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/MaterialFlows")]
        ITask<ResultModel<MaterialFlow>> PostMaterialFlows([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新料號流程
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/MaterialFlows/{id}")]
        ITask<ResultModel<MaterialFlow>> PutMaterialFlows(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除料號流程
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/MaterialFlows/{id}")]
        ITask<ResultModel<string>> DeleteMaterialFlows(int id);

        /// <summary>
        /// 根據ID獲取指定料號流程資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialFlows/Query/{itemno}/{unitNo}")]
        ITask<List<MaterialFlow>> GetMaterialFlowsByQuery(string itemno, string unitNo);

        /// <summary>
        /// 根據ID獲取指定料號流程資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialFlows/{id}")]
        ITask<List<MaterialFlow>> GetMaterialFlow(int id);

        /// <summary>
        /// 獲取料號流程資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialFlows")]
        ITask<List<MaterialFlow>> GetMaterialFlows();

        #endregion

        #region BAS013料號燒机時間維護相關

        /// <summary>
        /// 新增料號燒机時間
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/RuninTimes")]
        ITask<ResultModel<RuninTime>> PostRuninTimes([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新料號燒机時間
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/RuninTimes/{id}")]
        ITask<ResultModel<RuninTime>> PutRuninTimes(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除料號燒机時間
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/RuninTimes/{id}")]
        ITask<ResultModel<string>> DeleteRuninTimes(string id);

        /// <summary>
        /// 根據ID獲取指定料號燒机時間資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RuninTimes/{id}")]
        ITask<List<RuninTime>> GetRuninTime(string id);

        /// <summary>
        /// 獲取料號燒机時間資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/RuninTimes")]
        ITask<List<RuninTime>> GetRuninTimes();

        #endregion

        /// <summary>
        /// 獲取工單屬性資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ProcessTypes")]
        ITask<List<AMESCoreStudio.WebApi.Models.AMES.ProcessType>> GetProcessType();

        #region BAS017料號工作項目對應維護相關

        /// <summary>
        /// 新增料號工作項目對應
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/MaterialStationsItem")]
        ITask<ResultModel<MaterialStationsItem>> PostMaterialStationsItem([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新料號工作項目對應
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/MaterialStationsItem/{id}")]
        ITask<ResultModel<MaterialStationsItem>> PutMaterialStationsItem(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除料料號工作項目對應
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/MaterialStationsItem/{id}")]
        ITask<ResultModel<string>> DeleteMaterialStationsItem(int id);

        /// <summary>
        /// 根據ID獲取指定料號工作項目對應資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialStationsItem/{id}")]
        ITask<List<MaterialStationsItem>> GetMaterialStationsItem(int id);

        /// <summary>
        /// 獲取料號工作項目資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialStationsItems")]
        ITask<List<MaterialStationsItem>> GetMaterialStationsItems();

        /// <summary>
        /// 獲取料號工作項目對應ByItemID
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialStationsItem/ByItemID/{id}")]
        ITask<List<MaterialStationsItem>> GetMaterialStationsItemByItemID(int id);



        #endregion

        #region BAS018料號治具對應維護相關

        /// <summary>
        /// 新增料號治具對應
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/MaterialOutfit")]
        ITask<ResultModel<MaterialOutfit>> PostMaterialOutfit([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新料號治具對應
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/MaterialOutfit/{id}")]
        ITask<ResultModel<MaterialOutfit>> PutMaterialOutfit(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除料料號治具對應
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/MaterialOutfit/{id}")]
        ITask<ResultModel<string>> DeleteMaterialOutfit(int id);

        /// <summary>
        /// 根據ID獲取指定料號治具對應資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialOutfit/{id}")]
        ITask<List<MaterialOutfit>> GetMaterialOutfit(int id);

        /// <summary>
        /// 獲取料號治具資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialOutfit")]
        ITask<List<MaterialOutfit>> GetMaterialOutfits();

        /// <summary>
        /// 獲取料號治具對應ByItemID
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/MaterialOutfit/ByItemID/{id}")]
        ITask<List<MaterialOutfit>> GetMaterialOutfitByItemID(int id);



        #endregion


    }
}