package com.hzs.system.config.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * @Description: 菜单权限查询VO
 * @Author: jiang chao
 * @Time: 2022/12/30 13:54
 * @Classname: MenuQueryVO
 * @PackageName: com.hzs.system.config.vo
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class MenuQueryVO {

    /**
     * 主键
     */
    private Integer pkId;

    /**
     * 等级冗余
     */
    @JsonIgnore
    private String gradeValues;
    /**
     * 等级列表
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_GRADE)
    private List<MenuQueryGradeVO> gradeList;

    /**
     * 奖衔冗余
     */
    @JsonIgnore
    private String awardValues;
    /**
     * 奖衔列表
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD)
    private List<MenuQueryAwardsVO> awardList;

    /**
     * 菜单冗余
     */
    @JsonIgnore
    private String menuValues;
    /**
     * 菜单列表
     */
    @Transaction(transactionKey = EnumsPrefixConstants.E_MENU)
    private List<MenuQueryMenuVO> menuList;

    /**
     * 权限冗余
     */
    @JsonIgnore
    private String authorityValues;
    /**
     * 奖衔列表
     */
    @Transaction(transactionKey = EnumsPrefixConstants.REGISTRATION_AUTHORITY)
    private List<MenuQueryAuthorityVO> authorityList;


    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

}
