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

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.List;


@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@XStreamAlias("FormulaConfig")
public class FormulaConfig {
    /**
     * 主键id
     */
    @XStreamAlias("id")
    @XStreamAsAttribute
    private Long id;

    /**
     * 名称
     */
    @XStreamAlias("name")
    @XStreamAsAttribute
    private String name;
    /**
     * 备注
     */
    @XStreamAlias("description")
    @XStreamAsAttribute
    private String description;
    /**
     * 模块
     */
    @XStreamAlias("module")
    @XStreamAsAttribute
    private String module;
    /**
     * 用途
     */
    @XStreamAlias("useFor")
    @XStreamAsAttribute
    private String useFor;
    /**
     * 引用类型
     */
    @XStreamAlias("referenceType")
    @XStreamAsAttribute
    private String referenceType;
    /**
     * 返回类型
     */
    @XStreamAlias("returnType")
    @XStreamAsAttribute
    private String returnType;
    /**
     * 校验类型
     */
    @XStreamAlias("validateType")
    @XStreamAsAttribute
    private String validateType;
    /**
     * 扩展参数
     */
    @XStreamAlias("extendParam")
    @XStreamAsAttribute
    private String extendParam;
    /**
     * 公式内容
     */
    @XStreamAlias("formula")
    @XStreamAsAttribute
    private String formula;

    /**
     * 公式实际运行脚本
     */
    @XStreamAlias("formulaRunScript")
    @XStreamAsAttribute
    private String formulaRunScript;

    @XStreamImplicit
    private List<FormulaVarConfig> varConfigs;

}
