package org.dromara.system.domain.vo;

import org.dromara.system.domain.GameEventMenu;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 基础菜单视图对象 game_event_menu
 *
 * @author zlt
 * @date 2025-08-01
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = GameEventMenu.class)
public class GameEventMenuVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 菜单ID
     */
    private Long menuId;

    /**
     * 赛事ID
     */
    private Long eventId;

    /**
     * 菜单名称
     */
    @ExcelProperty(value = "菜单名称")
    private String menuName;

    /**
     * 父菜单ID（基础菜单）
     */
    @ExcelProperty(value = "父菜单ID", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "基=础菜单")
    private Long parentId;

    /**
     * 显示顺序
     */
    @ExcelProperty(value = "显示顺序")
    private Long orderNum;

    /**
     * 站内链接
     */
    @ExcelProperty(value = "链接")
    private String siteLink;

    /**
     * 菜单类型（M目录 C菜单 F按钮）
     */
    @ExcelProperty(value = "菜单类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "M=目录,C=菜单,F=按钮")
    private String menuType;

    /**
     * 活动状态（0赛前 1赛中 2赛后）
     */
    @ExcelProperty(value = "活动状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=赛前,1=赛中,2=赛后")
    private Long activityStatus;

    /**
     * 是否为外链（0是 1否）
     */
    @ExcelProperty(value = "是否为外链", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否")
    private Long isFrame;

    /**
     * 图标
     */
    @ExcelProperty(value = "图标")
    private String icon;

    /**
     * 颜色
     */
    @ExcelProperty(value = "颜色")
    private String color;


}
