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

namespace AMESCoreStudio.Web
{
    [JsonReturn]
    public interface IPDS:IHttpApi
    {
        #region PDS003 外包機種資料維護

        /// <summary>
        /// 新增外包機種資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/SNKeyParts")]
        ITask<ResultModel<SNKeyPart>> PostSNKeyPart([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新外包機種資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/SNKeyParts/{id}")]
        ITask<ResultModel<SNKeyPart>> PutSNKeyPart(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除外包機種資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/SNKeyParts/{id}")]
        ITask<ResultModel<SNKeyPart>> DeleteSNKeyPart(string id);

        /// <summary>
        /// 根據ID獲取指定外包機種資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/SNKeyParts/{id}")]
        ITask<List<SNKeyPart>> GetSNKeyPart(string id);

        /// <summary>
        /// 獲取外包機種資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/SNKeyParts")]
        ITask<List<SNKeyPart>> GetSNKeyParts(int page = 0, int limit = 10);

        /// <summary>
        /// 獲取外包機種資料by入庫單
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/SNKeyParts/StockInNo")]
        ITask<List<SNKeyPart>> GetSNKeyPartByStockInNo(string no,int page = 0, int limit = 10);

        #endregion
    }
}