package me.moodcat.api.models;
import lombok.Data;
import me.moodcat.database.entities.User;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* User model for the PAI.
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserModel {
/**
* The unique id of the user.
*
* @param id
* The new Id to set.
* @return The id of the user.
*/
@JsonProperty("id")
private Integer id;
/**
* The unique id of the user.
*
* @param id
* The new Id to set.
* @return The id of the user.
*/
@JsonProperty("soundCloudUserId")
private Integer soundCloudUserId;
/**
* The name of this user.
*
* @param name
* The name to set.
* @return The name of this user.
*/
@JsonProperty("name")
private String name;
/**
* The avatar of this user.
*
* @param avatarUrl
* The avatar to set.
* @return The avatar of this user.
*/
@JsonProperty("avatarUrl")
private String avatarUrl;
/**
* The amount of points the user has collected.
*
* @return The amount of points the user has
*/
@JsonProperty("points")
private int points;
/**
* Transform a {@code User} into a {@code UserModel}.
*
* @param user
* User to be transformed.
* @return The transformed user.
*/
public static UserModel transform(final User user) {
final UserModel userModel = new UserModel();
userModel.setName(user.getName());
userModel.setSoundCloudUserId(user.getSoundCloudUserId());
userModel.setId(user.getId());
userModel.setAvatarUrl(user.getAvatarUrl());
userModel.setPoints(user.getPoints());
return userModel;
}
}