using Dlhis.Jip.Api.ClientHandlers;
using Dlhis.Jip.Api.RequestContentHandlers;
using Dlhis.Jip.Api.Requests;
using Dlhis.Jip.Api.Responses;
using Dlhis.Jip.Api.ResultHandlers;
using Kurisu.RemoteCall.Attributes;
namespace Dlhis.Jip.Api;
///
/// jinko-jip api https://jip.jinkosolar.com
///
[Auth(TokenHandler = typeof(JipTokenHandler))]
[EnableRemoteClient(Name = "jip-service", BaseUrl = "${JinkoOptions:Jip:BaseUrl}", PolicyHandler = typeof(JipClientHandler))]
public interface IJinkoJipApi
{
///
/// 上传考勤记录
///
///
///
[RequestLog]
[Post("/JIP/HCM/HCM_SWIPE_DATA_SAVE")]
Task UploadAttendancesAsync(UploadAttendanceRequest request);
///
/// 获取出差信息
///
/// 厂区
/// 开始时间
/// 结束时间
///
/// var obj = new
/// {
/// I_PAGE = 1,
/// I_LINE = 500,
/// IV_BEGDA = beginDay,
/// IV_ENDDA = endDay,
/// IT_CCMDD = new List{object}
/// {
/// new
/// {
/// IV_CCMDD = factory
/// }
/// }
/// }
///
///
///var obj = new
///{
/// IV_BEGDA = beginDay,
/// IV_ENDDA = endDay,
/// IT_2002GH = new List{object}
/// {
/// new
/// {
/// IV_GONGH = userCode
/// }
/// }
///};
///
///
[Post("/JIP/HCM/HCM_TRAVELINFO")]
[RequestContentHandler(typeof(BusinessTripContentHandler))]
Task GetBusinessTripInfosByFactoryAsync(string factory, DateTime start, DateTime end);
///
/// 同步餐补状态
///
///
///
[Post("/JIP/DHR/DHR_DL_CALLBACK")]
[RequestResultHandler(typeof(DHRResultHandler))]
Task SyncMealSupplementRecordsAsync(List requests);
///
/// 同步照片到sap
///
///
///
[Post("/JIP/HCM/HCM_I_PHOTO")]
Task SyncFaceToSapAsync(SyncFaceRequest request);
}