package com.engine.salary.entity.salaryitem.dto;

import com.engine.salary.enums.SalaryRoundingModeEnum;
import com.engine.salary.enums.SalarySystemTypeEnum;
import com.engine.salary.enums.SalaryValueTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 薪资项目表单
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SalaryItemFormDTO {

    //主键id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    //名称")
    private String name;

    //是否是系统内置的薪资项目")
    /**
     * @see SalarySystemTypeEnum
     */
    private Integer systemType;

    //默认使用")
    private Integer useDefault;

    //核算时隐藏")
    private Integer hideDefault;

    //薪资档案引用")
    private Integer useInEmployeeSalary;

    //字段类型
    /**
     * @see SalaryDataTypeEnum
     */
    private String dataType;

    //舍入规则")
    /**
     * @see SalaryRoundingModeEnum
     */
    private Integer roundingMode;

    //保留小数位")
    private Integer pattern;

    //取值方式")
    /**
     * @see SalaryValueTypeEnum
     */
    private Integer valueType;

    //公式")
    private Long formulaId;

    //公式内容")
    private String formulaContent;

    // 用于前端展示 公式原始内容
    private String originFormulaContent;
    // 用于前端展示 原始sql
    private String originSqlContent;

    //备注")
    private String description;

    //个税申报表对应字段")
    private String taxDeclarationColumn;

    @JsonIgnore
    //是否可以编辑")
    private Integer canEdit;

    private Integer sharedType;

    private String taxAgentIds;

    private Integer sortedIndex;

    // 宽度
    private Integer width;
}
