package com.czg.account.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 系统菜单 实体类。
 *
 * @author Administrator
 * @since 2025-02-10
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table("sys_menu")
public class SysMenu extends BaseMenu implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;


    /**
     * 上级菜单ID
     */
    private Long pid;

    /**
     * 子菜单数目
     */
    private Integer subCount;

    /**
     * 菜单类型 0 菜单 1按钮 3接口
     */
    private Integer type;

    /**
     * 菜单标题
     */
    private String title;



    /**
     * 排序
     */
    private Integer menuSort;


    /**
     * 是否外链
     */
    private Boolean iFrame;

    /**
     * 缓存
     */
    private Boolean cache;

    /**
     * 隐藏
     */
    private Boolean hidden;

    /**
     * 权限
     */
    private String permission;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 创建日期
     */
    @Column(onInsertValue = "now()")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private LocalDateTime updateTime;

    /**
     * 是否选中父级菜单
     */
    private String activeMenu;

    /**
     * 商户使用 0：否；1：是；
     */
    private Long isShop;

    /**
     * 小程序页面路径
     */
    private String miniPath;
    /**
     * 小程序组件
     */
    private String miniComponent;

    /**
     * 接口地址
     */
    private String url;
    /**
     * 请求方式
     */
    private String method;

    private String miniIcon;

}
