// Path: src/main/java/com/monkeyk/sos/domain/user/Privilege.java
// public enum Privilege {
// 
//     USER,          //Default privilege
// 
//     ADMIN,     //admin
//     UNITY,
//     MOBILE
// }
// 
// Path: src/main/java/com/monkeyk/sos/domain/user/User.java
// public class User extends AbstractDomain {
// 
// 
//     private static final long serialVersionUID = -2921689304753120556L;
// 
// 
//     private String username;
//     private String password;
// 
//     private String phone;
//     private String email;
//     //Default user is initial when create database, do not delete
//     private boolean defaultUser = false;
// 
//     private Date lastLoginTime;
// 
//     private List<Privilege> privileges = new ArrayList<>();
// 
//     public User() {
//     }
// 
//     public User(String username, String password, String phone, String email) {
//         this.username = username;
//         this.password = password;
//         this.phone = phone;
//         this.email = email;
//     }
// 
//     public boolean defaultUser() {
//         return defaultUser;
//     }
// 
//     public String username() {
//         return username;
//     }
// 
//     public String password() {
//         return password;
//     }
// 
//     public String phone() {
//         return phone;
//     }
// 
//     public String email() {
//         return email;
//     }
// 
//     public List<Privilege> privileges() {
//         return privileges;
//     }
// 
//     @Override
//     public String toString() {
//         final StringBuilder sb = new StringBuilder();
//         sb.append("{username='").append(username).append('\'');
//         sb.append(", phone='").append(phone).append('\'');
//         sb.append(", id='").append(id).append('\'');
//         sb.append(", guid='").append(guid).append('\'');
//         sb.append(", defaultUser='").append(defaultUser).append('\'');
//         sb.append(", email='").append(email).append('\'');
//         sb.append('}');
//         return sb.toString();
//     }
// 
//     public User email(String email) {
//         this.email = email;
//         return this;
//     }
// 
//     public User phone(String phone) {
//         this.phone = phone;
//         return this;
//     }
// 
// 
//     public User username(String username) {
//         this.username = username;
//         return this;
//     }
// 
// 
//     public Date lastLoginTime() {
//         return lastLoginTime;
//     }
// 
//     public User lastLoginTime(Date lastLoginTime) {
//         this.lastLoginTime = lastLoginTime;
//         return this;
//     }
// 
//     public User createTime(LocalDateTime createTime) {
//         this.createTime = createTime;
//         return this;
//     }
// 
//     public User password(String password) {
//         this.password = password;
//         return this;
//     }
// }


import com.monkeyk.sos.domain.user.Privilege;
import com.monkeyk.sos.domain.user.User;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
package com.monkeyk.sos.service.dto;



/**
 * @author Shengzhao Li
 */
public class UserJsonDto implements Serializable {


    private String guid;
    private boolean archived;

    private String username;
    private String phone;
    private String email;

    private List<String> privileges = new ArrayList<>();

    public UserJsonDto() {
    }

    public UserJsonDto(User user) {
        this.guid = user.guid();
        this.archived = user.archived();
        this.username = user.username();

        this.phone = user.phone();
        this.email = user.email();

        final List<Privilege> privilegeList = user.privileges();
// Path: src/main/java/com/monkeyk/sos/domain/user/Privilege.java
// public enum Privilege {
// 
//     USER,          //Default privilege
// 
//     ADMIN,     //admin
//     UNITY,
//     MOBILE
// }
// 
// Path: src/main/java/com/monkeyk/sos/domain/user/User.java
// public class User extends AbstractDomain {
// 
// 
//     private static final long serialVersionUID = -2921689304753120556L;
// 
// 
//     private String username;
//     private String password;
// 
//     private String phone;
//     private String email;
//     //Default user is initial when create database, do not delete
//     private boolean defaultUser = false;
// 
//     private Date lastLoginTime;
// 
//     private List<Privilege> privileges = new ArrayList<>();
// 
//     public User() {
//     }
// 
//     public User(String username, String password, String phone, String email) {
//         this.username = username;
//         this.password = password;
//         this.phone = phone;
//         this.email = email;
//     }
// 
//     public boolean defaultUser() {
//         return defaultUser;
//     }
// 
//     public String username() {
//         return username;
//     }
// 
//     public String password() {
//         return password;
//     }
// 
//     public String phone() {
//         return phone;
//     }
// 
//     public String email() {
//         return email;
//     }
// 
//     public List<Privilege> privileges() {
//         return privileges;
//     }
// 
//     @Override
//     public String toString() {
//         final StringBuilder sb = new StringBuilder();
//         sb.append("{username='").append(username).append('\'');
//         sb.append(", phone='").append(phone).append('\'');
//         sb.append(", id='").append(id).append('\'');
//         sb.append(", guid='").append(guid).append('\'');
//         sb.append(", defaultUser='").append(defaultUser).append('\'');
//         sb.append(", email='").append(email).append('\'');
//         sb.append('}');
//         return sb.toString();
//     }
// 
//     public User email(String email) {
//         this.email = email;
//         return this;
//     }
// 
//     public User phone(String phone) {
//         this.phone = phone;
//         return this;
//     }
// 
// 
//     public User username(String username) {
//         this.username = username;
//         return this;
//     }
// 
// 
//     public Date lastLoginTime() {
//         return lastLoginTime;
//     }
// 
//     public User lastLoginTime(Date lastLoginTime) {
//         this.lastLoginTime = lastLoginTime;
//         return this;
//     }
// 
//     public User createTime(LocalDateTime createTime) {
//         this.createTime = createTime;
//         return this;
//     }
// 
//     public User password(String password) {
//         this.password = password;
//         return this;
//     }
// }


// Path: src/main/java/com/monkeyk/sos/service/dto/UserJsonDto.java
import com.monkeyk.sos.domain.user.Privilege;
import com.monkeyk.sos.domain.user.User;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

package com.monkeyk.sos.service.dto;



/**
 * @author Shengzhao Li
 */
public class UserJsonDto implements Serializable {


    private String guid;
    private boolean archived;

    private String username;
    private String phone;
    private String email;

    private List<String> privileges = new ArrayList<>();

    public UserJsonDto() {
    }

    public UserJsonDto(User user) {
        this.guid = user.guid();
        this.archived = user.archived();
        this.username = user.username();

        this.phone = user.phone();
        this.email = user.email();

        final List<Privilege> privilegeList = user.privileges();
        for (Privilege privilege : privilegeList) {