package com.engine.salary.entity.salarysob.param;
import com.engine.salary.enums.SalaryCycleTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.util.valid.DataCheck;
import com.engine.salary.util.valid.RuntimeTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 薪资账套保存参数
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalarySobBasicSaveParam {
//主键id
@DataCheck(require = true, runtime = RuntimeTypeEnum.UPDATE, message = "id不允许为空")
private Long id;
//薪资账套的名称
@DataCheck(require = true, max = 40, message = "名称不允许为空且不能超过40个字符长度")
private String name;
/**
* 个税扣缴义务人的主键id
*/
private List taxAgentIds;
/**
* 所得项目不允许为空
*
* @see IncomeCategoryEnum
*/
@DataCheck(require = true, message = "所得项目不允许为空")
private Integer taxableItems;
/**
* 薪资周期不允许为空
*
* @see SalaryCycleTypeEnum
*/
@DataCheck(require = true, message = "薪资周期不允许为空")
private Integer salaryCycleType;
/**
* 薪资周期的起始日期不允许为空
*/
@DataCheck(require = true, message = "薪资周期的起始日期不允许为空")
private Integer salaryCycleFromDay;
/**
* 税款所属期不允许为空
*
* @see SalaryCycleTypeEnum
*/
@DataCheck(require = true, message = "税款所属期不允许为空")
private Integer taxCycleType;
/**
* 考勤周期不允许为空
*
* @see SalaryCycleTypeEnum
*/
@DataCheck(require = true, message = "考勤周期不允许为空")
private Integer attendCycleType;
/**
* 考勤周期起始日期不允许为空
*/
@DataCheck(require = true, message = "考勤周期起始日期不允许为空")
private Integer attendCycleFromDay;
/**
* 福利台账月份不允许为空
*
* @see SalaryCycleTypeEnum
*/
@DataCheck(require = true, message = "福利台账月份不允许为空")
private Integer socialSecurityCycleType;
/**
* 备注不能超过80个字符
*/
@DataCheck(max = 80, message = "备注不能超过80个字符")
private String description;
/**
* 所属城市
*/
private String city;
}