package com.hzs.common.core.web.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.List;

/**
 * 枚举统一返回实体
 *
 * @author: jiiangchao
 */
@AllArgsConstructor
@Data
public class EnumEntity {

    /**
     * 枚举实际值
     */
    private int value;

    /**
     * 枚举显示文本（翻译替换值）
     */
    private String label;

    /**
     * 字段
     */
    private String field;

    /**
     * 子集枚举列表
     */
    private List<EnumEntity> enumList;

    /**
     * 翻译规则前缀（因枚举统一返回实体，无法直接通过注解定义指定翻译KEY值，此处多一个字段，用来指定枚举翻译前缀KEY）
     */
    @JsonIgnore
    private String transactionKey;

    /**
     * 不需要翻译的构造函数
     *
     * @param value
     * @param label
     */
    public EnumEntity(int value, String label) {
        this.value = value;
        this.label = label;
    }

    /**
     * 需要翻译的构造函数
     *
     * @param value
     * @param label
     * @param transactionKey
     */
    public EnumEntity(int value, String label, String transactionKey) {
        this.value = value;
        this.label = label;
        this.transactionKey = transactionKey;
    }


    /**
     * 需要翻译的构造函数
     *
     * @param value 值
     * @param label 标签
     * @param field 字段
     * @param transactionKey 翻译健
     */
    public EnumEntity(int value, String label, String field, String transactionKey) {
        this.value = value;
        this.label = label;
        this.field = field;
        this.transactionKey = transactionKey;
    }

}
