package tech.easyflow.admin.controller.system.vo;

import cn.hutool.core.bean.BeanUtil;
import tech.easyflow.system.entity.SysAccount;

import java.util.ArrayList;
import java.util.List;

/**
 * 管理端当前账号资料视图。
 */
public class SysAccountProfileVo extends SysAccount {

    private String homePath;
    private List<String> roles = new ArrayList<>();

    /**
     * 创建空的当前账号资料视图。
     */
    public SysAccountProfileVo() {
    }

    /**
     * 根据账号实体和角色信息创建资料视图。
     *
     * @param account 账号实体
     * @param roles 角色标识列表
     * @param homePath 默认首页
     * @return 当前账号资料视图
     */
    public static SysAccountProfileVo from(SysAccount account, List<String> roles, String homePath) {
        SysAccountProfileVo profile = new SysAccountProfileVo();
        if (account != null) {
            BeanUtil.copyProperties(account, profile);
        }
        profile.setRoles(roles);
        profile.setHomePath(homePath);
        return profile;
    }

    /**
     * 获取默认首页。
     *
     * @return 默认首页
     */
    public String getHomePath() {
        return homePath;
    }

    /**
     * 设置默认首页。
     *
     * @param homePath 默认首页
     */
    public void setHomePath(String homePath) {
        this.homePath = homePath;
    }

    /**
     * 获取角色标识列表。
     *
     * @return 角色标识列表
     */
    public List<String> getRoles() {
        return roles;
    }

    /**
     * 设置角色标识列表。
     *
     * @param roles 角色标识列表
     */
    public void setRoles(List<String> roles) {
        this.roles = roles == null ? new ArrayList<>() : new ArrayList<>(roles);
    }
}
