package com.engine.salary.entity.salarysob.po;

import com.engine.salary.enums.salarysob.SalarySobAdjustRuleTypeEnum;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

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

/**
 * 调薪计薪规则
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
//hrsa_salary_sob_adjust_rule
@XStreamAlias("SalarySobAdjustRule")
public class SalarySobAdjustRulePO {

    /**
     * 主键id
     */
    @XStreamAlias("id")
    @XStreamAsAttribute
    private Long id;

    /**
     * 薪资账套id
     */
    @XStreamAlias("salarySobId")
    @XStreamAsAttribute
    private Long salarySobId;

    /**
     * 薪资项目id
     */
    @XStreamAlias("salaryItemId")
    @XStreamAsAttribute
    private Long salaryItemId;

    /**
     * 生效日期
     */
    @XStreamAlias("dayOfMonth")
    @XStreamAsAttribute
    private Integer dayOfMonth;

    /**
     * 在生效日期之前调薪如何调整
     *
     * @see SalarySobAdjustRuleTypeEnum
     */
    @XStreamAlias("beforeAdjustmentType")
    @XStreamAsAttribute
    private Integer beforeAdjustmentType;

    /**
     * 在生效日期之后调薪如何调整
     *
     * @see SalarySobAdjustRuleTypeEnum
     */
    @XStreamAlias("afterAdjustmentType")
    @XStreamAsAttribute
    private Integer afterAdjustmentType;

    /**
     * 租户key
     */
    @XStreamAlias("tenantKey")
    @XStreamAsAttribute
    private String tenantKey;

    /**
     * 创建人id
     */
    @XStreamAlias("creator")
    @XStreamAsAttribute
    private Long creator;

    /**
     * 是否删除
     */
    @XStreamAlias("deleteType")
    @XStreamAsAttribute
    private Integer deleteType;

    /**
     * 创建时间
     */
    @XStreamAlias("createTime")
    @XStreamAsAttribute
    private Date createTime;

    /**
     * 更新时间
     */
    @XStreamAlias("updateTime")
    @XStreamAsAttribute
    private Date updateTime;

    Collection<Long> ids;
}
