package com.engine.salary.entity.salaryformula;

import com.engine.salary.entity.salaryformula.po.FormulaVar;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.minidev.json.annotate.JsonIgnore;

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

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExpressFormula {
    /**
     * id
     */
    private Long id;
    /**
     * 名称
     */
    private String name;
    /**
     * 备注
     */
    private String description;
    /**
     * 模块
     */
    @JsonIgnore
    private String module;
    /**
     * 用途
     */
    @JsonIgnore
    private String useFor;
    /**
     * 引用类型,formula,sql
     */
    @JsonIgnore
    private String referenceType;
    /**
     * 返回类型，number，string
     */
    @JsonIgnore
    private String returnType;
    /**
     * 校验类型,number，string
     */
    @JsonIgnore
    private String validateType;
    /**
     * 扩展参数
     */
    private String extendParam;
    /**
     * 公式内容
     */
    private String formula;

    /**
     * 公式实际运行脚本
     */
    private String formulaRunScript;

    /**
     * sql返回的列值
     */
    private String sqlReturnKey;

    /**
     * 创建人
     */
    @JsonIgnore
    private Long creator;
    /**
     * 是否删除0否1是
     */
    @JsonIgnore
    private Integer deleteType;
    /**
     * 创建时间
     */
    @JsonIgnore
    private Date createTime;
    /**
     * 修改时间
     */
    @JsonIgnore
    private Date updateTime;


    private List<FormulaVar> parameters;
}
