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.schedule.switch
///
public class OapiAttendanceApproveScheduleSwitchRequest : BaseDingTalkRequest
{
///
/// 申请人换班日期当天的班次id
///
public Nullable ApplyShiftId { get; set; }
///
/// 申请换班人id,仅支持排班制考勤组用户
///
public string ApplyUserid { get; set; }
///
/// 审批单唯一id
///
public string ApproveId { get; set; }
///
/// 申请人还班日期当天的班次id
///
public Nullable RebackApplyShiftId { get; set; }
///
/// 还班日期,当天必须有排班或排休,如果申请换班人和被换班人是同一个人,那么必须要有还班日期
///
public string RebackDate { get; set; }
///
/// 被换班人还班日期当天的班次id
///
public Nullable RebackTargetShiftId { get; set; }
///
/// 申请换班日期,当天必须有排班或排休
///
public string SwitchDate { get; set; }
///
/// 被换班人换班日期当天的班次id
///
public Nullable TargetShiftId { get; set; }
///
/// 被换班人id,仅支持排班制考勤组用户
///
public string TargetUserid { get; set; }
///
/// 发起人的user_id
///
public string Userid { get; set; }
#region IDingTalkRequest Members
public override string GetApiName()
{
return "dingtalk.oapi.attendance.approve.schedule.switch";
}
public override string GetApiCallType()
{
return DingTalkConstants.CALL_TYPE_OAPI;
}
public override IDictionary GetParameters()
{
TopDictionary parameters = new TopDictionary();
parameters.Add("apply_shift_id", this.ApplyShiftId);
parameters.Add("apply_userid", this.ApplyUserid);
parameters.Add("approve_id", this.ApproveId);
parameters.Add("reback_apply_shift_id", this.RebackApplyShiftId);
parameters.Add("reback_date", this.RebackDate);
parameters.Add("reback_target_shift_id", this.RebackTargetShiftId);
parameters.Add("switch_date", this.SwitchDate);
parameters.Add("target_shift_id", this.TargetShiftId);
parameters.Add("target_userid", this.TargetUserid);
parameters.Add("userid", this.Userid);
if (this.otherParams != null)
{
parameters.AddAll(this.otherParams);
}
return parameters;
}
public override void Validate()
{
RequestValidator.ValidateRequired("apply_userid", this.ApplyUserid);
RequestValidator.ValidateRequired("approve_id", this.ApproveId);
RequestValidator.ValidateMaxLength("approve_id", this.ApproveId, 100);
RequestValidator.ValidateRequired("switch_date", this.SwitchDate);
RequestValidator.ValidateRequired("target_userid", this.TargetUserid);
RequestValidator.ValidateRequired("userid", this.Userid);
}
#endregion
}
}