package com.engine.salary.entity.datacollection;

import com.engine.salary.annotation.Encrypt;
import com.engine.salary.annotation.SalaryFormulaVar;
import com.engine.hrmelog.annotation.ElogTransform;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Date;
import java.util.List;

/**
 * 数据采集-累计专项附加扣除表
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_add_up_deduction
@ElogTransform(name = "累计专项附加扣除")
public class AddUpDeduction {
    /**
     * 主键id
     */
    @ElogTransform(name = "主键")
    private Long id;

    /**
     * 人员信息表的主键id
     */
    @ElogTransform(name = "人员id")
    private Long employeeId;

    /**
     * 个税扣缴义务人的主键id
     */
    @ElogTransform(name = "个税扣缴义务人id")
    private Long taxAgentId;

    /**
     * 申报月份
     */
    @ElogTransform(name = "申报月份")
    private Date declareMonth;

    /**
     * 累计子女教育
     */
    @ElogTransform(name = "累计子女教育")
    @SalaryFormulaVar(defaultLabel = "累计子女教育", labelId = 86321, dataType = "number")
    @Encrypt
    private String addUpChildEducation;

    /**
     * 累计继续教育
     */
    @ElogTransform(name = "累计继续教育")
    @SalaryFormulaVar(defaultLabel = "累计继续教育", labelId = 86323, dataType = "number")
    @Encrypt
    private String addUpContinuingEducation;

    /**
     * 累计住房贷款利息
     */
    @ElogTransform(name = "累计住房贷款利息")
    @SalaryFormulaVar(defaultLabel = "累计住房贷款利息", labelId = 86324, dataType = "number")
    @Encrypt
    private String addUpHousingLoanInterest;

    /**
     * 累计住房租金
     */
    @ElogTransform(name = "累计住房租金")
    @SalaryFormulaVar(defaultLabel = "累计住房租金", labelId = 86325, dataType = "number")
    @Encrypt
    private String addUpHousingRent;

    /**
     * 累计赡养老人
     */
    @ElogTransform(name = "累计赡养老人")
    @SalaryFormulaVar(defaultLabel = "累计赡养老人", labelId = 86326, dataType = "number")
    @Encrypt
    private String addUpSupportElderly;

    /**
     * 累计大病医疗
     */
    @ElogTransform(name = "累计大病医疗")
    @SalaryFormulaVar(defaultLabel = "累计大病医疗", labelId = 105142, dataType = "number")
    @Encrypt
    private String addUpIllnessMedical;

    /**
     * 累计婴幼儿照护
     */
    @ElogTransform(name = "累计婴幼儿照护")
    @SalaryFormulaVar(defaultLabel = "累计婴幼儿照护", labelId = 117732, dataType = "number")
    @Encrypt
    private String addUpInfantCare;

    /**
     * 创建时间
     */
    @ElogTransform(name = "创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ElogTransform(name = "更新时间")
    private Date updateTime;

    /**
     * 创建人
     */
    @ElogTransform(name = "创建人")
    private Long creator;

    /**
     * 是否已删除。0：未删除、1：已删除
     */
    @ElogTransform(name = "是否已删除")
    private Integer deleteType;

    /**
     * 租户ID
     */
    @ElogTransform(name = "租户ID")
    private String tenantKey;

    List<Long> employeeIds;

    Collection<Long> taxAgentIds;

}