using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WebApiClient;
using WebApiClient.Attributes;
using AMESCoreStudio.WebApi;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using Microsoft.AspNetCore.Mvc;

namespace AMESCoreStudio.Web
{
    [JsonReturn]
    public interface IBulletin : IHttpApi
    {
        /// <summary>
        /// 新增公告
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/Bulletins")]
        ITask<ResultModel<BulletinDTO>> PostBulletin([FromBody, RawJsonContent] string model);


        /// <summary>
        /// 更新公告
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/Bulletins/{id}")]
        ITask<ResultModel<BulletinDTO>> PutBulletin(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除公告
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/Bulletins/{id}")]
        ITask<ResultModel<string>> DeleteBulletin(int id);

        /// <summary>
        /// 根據ID獲取指定公告資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Bulletins/{id}")]
        ITask<ResultModel<BulletinDTO>> GetBulletin4Model(int id);

        /// <summary>
        /// 根據ID獲取指定公告資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Bulletins/{id}")]
        ITask<List<BulletinDTO>> GetBulletin(int id);

        /// <summary>
        /// 獲取全部公告資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/Bulletins")]
       ITask<List<Bulletin>> GetBulletins();

       //ITask<List<BulletinDTO>> GetBulletins();

    }
}