using System;
using System.Collections.Generic;
using Top.Api.Util;
using Top.Api;
using Top.Api.DingTalk;
namespace DingTalk.Api.Request
{
///
/// TOP API: dingtalk.oapi.attendance.approve.duration.calculate
///
public class OapiAttendanceApproveDurationCalculateRequest : BaseDingTalkRequest
{
///
/// 审批单类型1:加班,2:出差,3:请假
///
public Nullable BizType { get; set; }
///
/// 计算方法,0:按自然日计算,1:按工作日计算
///
public Nullable CalculateModel { get; set; }
///
/// 时长单位,支持的day,halfDay,hour,biz_type为1时仅支持hour。时间格式必须与时长单位对应,2019-08-15对应day,2019-08-15 AM对应halfDay,2019-08-15 12:43对应hour
///
public string DurationUnit { get; set; }
///
/// 开始时间,支持的时间格式 2019-08-15/2019-08-15 AM/2019-08-15 12:43。开始时间不能早于当前时间前31天
///
public string FromTime { get; set; }
///
/// 结束时间,支持的时间格式 2019-08-15/2019-08-15 AM/2019-08-15 12:43。结束时间减去开始时间的天数不能超过31天。biz_type为1时结束时间减去开始时间不能超过1天
///
public string ToTime { get; set; }
///
/// 员工的user_id
///
public string Userid { get; set; }
#region IDingTalkRequest Members
public override string GetApiName()
{
return "dingtalk.oapi.attendance.approve.duration.calculate";
}
public override string GetApiCallType()
{
return DingTalkConstants.CALL_TYPE_OAPI;
}
public override IDictionary GetParameters()
{
TopDictionary parameters = new TopDictionary();
parameters.Add("biz_type", this.BizType);
parameters.Add("calculate_model", this.CalculateModel);
parameters.Add("duration_unit", this.DurationUnit);
parameters.Add("from_time", this.FromTime);
parameters.Add("to_time", this.ToTime);
parameters.Add("userid", this.Userid);
if (this.otherParams != null)
{
parameters.AddAll(this.otherParams);
}
return parameters;
}
public override void Validate()
{
RequestValidator.ValidateRequired("biz_type", this.BizType);
RequestValidator.ValidateRequired("calculate_model", this.CalculateModel);
RequestValidator.ValidateRequired("duration_unit", this.DurationUnit);
RequestValidator.ValidateRequired("from_time", this.FromTime);
RequestValidator.ValidateRequired("to_time", this.ToTime);
RequestValidator.ValidateRequired("userid", this.Userid);
}
#endregion
}
}