/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */
package com.yami.shop.security.admin.model;

import lombok.Data;
import java.util.Set;


/**
 * YamiSysUser 类表示用户的详细信息，用于存储用户在系统中的关键信息。
 * 此类使用了 Lombok 的 @Data 注解，该注解会自动生成 getter、setter、equals、hashCode 和 toString 等方法，
 * 简化了代码的编写，减少了样板代码。
 * 
 * @author 
 */
@Data
public class YamiSysUser {

    /**
     * 用户的唯一标识符，存储用户的 ID 信息。
     * 通常用于区分不同用户，在数据库操作、权限管理和用户相关的业务逻辑中起着重要作用。
     */
    private Long userId;

    /**
     * 表示用户是否被启用。
     * 如果为 true，表示用户处于启用状态，可以正常登录和使用系统；
     * 若为 false，则用户可能被禁用，无法登录或使用系统的部分或全部功能。
     */
    private boolean enabled;

    /**
     * 存储用户的权限集合。
     * 可以包含用户所拥有的各种权限，如 "READ", "WRITE", "DELETE" 等权限，
     * 这些权限可以用于控制用户在系统中能够进行的操作。
     */
    private Set<String> authorities;

    /**
     * 用户的登录用户名，用于用户登录系统时的身份标识。
     * 它应该是唯一的，并且用户可以通过该用户名和密码登录系统。
     */
    private String username;

    /**
     * 店铺 ID，用于标识用户所属的店铺。
     * 在多店铺系统中，该字段可用于区分用户与不同店铺的关联，方便进行店铺相关的业务处理和权限管理。
     */
    private Long shopId;
}