package com.reyun.saas.mob.user.dto;


import com.reyun.saas.mob.user.domain.MenuRight;
import com.reyun.saas.mob.user.domain.Role;
import com.reyun.saas.mob.user.dto.user.UserDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class LoginUserDTO implements Serializable {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 真实姓名
     */
    private String actualName;

    /**
     * 性别
     */
    private int sex;

    /**
     * 电话
     */
    private String phone;

    /**
     * 公司
     */
    private String company;


    /**
     * 父用户id
     */
    private Long rootParent;


    /**
     * 启用状态(0-禁用，1-启用)
     */
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date modifyTime;

    /**
     * 角色
     */
    private List<Role> roles;

    /**
     * 权限菜单
     */
    private List<MenuRight> menus;

    public static LoginUserDTO user2LoginUserDTO(UserDTO user) {
        return LoginUserDTO.builder()
                .id(user.getId())
                .username(user.getUsername())
                .password(user.getPassword())
                .actualName(user.getActualName())
                .company(user.getCompany())
                .rootParent(user.getRootParent())
                .phone(user.getPhone())
                .status(user.getStatus())
                .createTime(user.getCreateTime())
                .modifyTime(user.getModifyTime())
                .roles(user.getRoles())
                .menus(user.getMenus())
                .build();
    }

}
