[maimai2] Add dx support

This commit is contained in:
Dom Eori
2021-06-16 00:37:31 +09:00
parent 235939fba3
commit 9fa2d13c98
70 changed files with 3593 additions and 4 deletions

View File

@@ -0,0 +1,25 @@
package icu.samnyan.aqua.sega.maimai2.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import icu.samnyan.aqua.sega.maimai2.model.request.data.UserAll;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UpsertUserAll implements Serializable {
public long userId;
public long playlogId;
@JsonProperty("isEventMode")
public boolean isEventMode;
@JsonProperty("isFreePlay")
public boolean isFreePlay;
public UserAll upsertUserAll;
}

View File

@@ -0,0 +1,38 @@
package icu.samnyan.aqua.sega.maimai2.model.request.data;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserActivity;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserRating;
import icu.samnyan.aqua.sega.maimai2.model.userdata.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserAll implements Serializable {
public List<UserDetail> userData;
public List<UserExtend> userExtend;
public List<UserOption> userOption;
public List<UserCharacter> userCharacterList;
public List<UserGhost> userGhost;
public List<UserMap> userMapList;
public List<UserLoginBonus> userLoginBonusList;
public List<UserRating> userRatingList;
public List<UserItem> userItemList;
public List<UserMusicDetail> userMusicDetailList;
public List<UserFavorite> userFavoriteList;
public List<UserActivity> userActivityList;
public String isNewCharacterList;
public String isNewMapList;
public String isNewLoginBonusList;
public String isNewItemList;
public String isNewMusicDetailList;
public String isNewFavoriteList;
}

View File

@@ -0,0 +1,20 @@
package icu.samnyan.aqua.sega.maimai2.model.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import icu.samnyan.aqua.sega.maimai2.model.response.data.GameSetting;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetGameSettingResp {
@JsonProperty("isAouAccession")
private boolean isAouAccession;
private GameSetting gameSetting;
}

View File

@@ -0,0 +1,39 @@
package icu.samnyan.aqua.sega.maimai2.model.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetUserPreviewResp {
private long userId;
private String userName;
@JsonProperty("isLogin")
private boolean isLogin;
private String lastGameId;
private String lastDataVersion;
private String lastRomVersion;
private String lastLoginDate;
private String lastPlayDate;
private int playerRating;
private int nameplateId;
private int iconId;
private int trophyId;
private int partnerId;
private int frameId;
private int dispRate;
private int totalAwake;
private int isNetMember;
private String dailyBonusDate;
private int headPhoneVolume;
@JsonProperty("isInherit")
private boolean isInherit;
}

View File

@@ -0,0 +1,19 @@
package icu.samnyan.aqua.sega.maimai2.model.response;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserLoginResp {
public int returnCode = 1;
public String lastLoginDate = "2020-01-01 00:00:00.0";
public int loginCount = 1;
public int consecutiveLoginCount = 0;
public int loginId = 1; // What is this?
}

View File

@@ -0,0 +1,27 @@
package icu.samnyan.aqua.sega.maimai2.model.response.data;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GameSetting {
@JsonProperty("isMaintenance")
private boolean isMaintenance;
private int requestInterval;
private String rebootStartTime;
private String rebootEndTime;
private int movieUploadLimit;
private int movieStatus;
private String movieServerUri;
private String deliverServerUri;
private String oldServerUri;
private String usbDlServerUri;
private int rebootInterval;
}

View File

@@ -0,0 +1,19 @@
package icu.samnyan.aqua.sega.maimai2.model.response.data;
import java.util.List;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserAct;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserActivity {
private List<UserAct> playList;
private List<UserAct> musicList;
}

View File

@@ -0,0 +1,18 @@
package icu.samnyan.aqua.sega.maimai2.model.response.data;
import java.util.List;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserMusicDetail;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserMusic {
private List<UserMusicDetail> userMusicDetailList;
}

View File

@@ -0,0 +1,24 @@
package icu.samnyan.aqua.sega.maimai2.model.response.data;
import java.util.List;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserRate;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserUdemae;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserRating {
private int rating;
private List<UserRate> ratingList;
private List<UserRate> newRatingList;
private List<UserRate> nextRatingList;
private List<UserRate> nextNewRatingList;
private UserUdemae udemae;
}

View File

@@ -0,0 +1,40 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2MapEncountNpc")
@Table(name = "maimai2_user_npc_encount")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MapEncountNpc implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
private int npcId;
private int musicId;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "extend_id")
private UserExtend userExtend;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
}

View File

@@ -0,0 +1,50 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserActivity")
@Table(name = "maimai2_user_activity")
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder({"kind", "id", "sortNumber", "param1", "param2", "param3", "param4"})
public class UserAct implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int kind;
@JsonProperty("id")
private int activityId;
private long sortNumber;
private int param1;
private int param2;
private int param3;
private int param4;
public UserAct(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,41 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserCharacter")
@Table(name = "maimai2_user_character")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserCharacter implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int characterId;
private int level;
private int awakening;
private int useCount;
public UserCharacter(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,107 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer;
import icu.samnyan.aqua.sega.general.model.Card;
import icu.samnyan.aqua.sega.maimai2.util.IntegerListConverter;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserData")
@Table(name = "maimai2_user_detail")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDetail implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonSerialize(using = AccessCodeSerializer.class)
@JsonProperty(value = "accessCode", access = JsonProperty.Access.READ_ONLY)
@OneToOne
@JoinColumn(name = "aime_card_id")
private Card card;
private String userName;
private int isNetMember;
private int iconId;
private int plateId;
private int titleId;
private int partnerId;
private int frameId;
private int selectMapId;
private int totalAwake;
private int gradeRating;
private int musicRating;
private int playerRating;
private int highestRating;
private int gradeRank;
@Convert(converter = IntegerListConverter.class)
private List<Integer> charaSlot; // Entries: 5
@Convert(converter = IntegerListConverter.class)
private List<Integer> charaLockSlot; // Entries: 5
private long contentBit;
private int playCount;
private String eventWatchedDate;
private String lastGameId;
private String lastRomVersion;
private String lastDataVersion;
private String lastLoginDate;
private String lastPlayDate;
private int lastPlaceId;
private String lastPlaceName;
private int lastAllNetId;
private int lastRegionId;
private String lastRegionName;
private String lastClientId;
private String lastCountryCode;
private String firstGameId;
private String firstRomVersion;
private String firstDataVersion;
private String firstPlayDate;
private String compatibleCmVersion;
private String dailyBonusDate;
private int playVsCount;
private int playSyncCount;
private int winCount;
private int helpCount;
private int comboCount;
private long totalDeluxscore;
private long totalBasicDeluxscore;
private long totalAdvancedDeluxscore;
private long totalExpertDeluxscore;
private long totalMasterDeluxscore;
private long totalReMasterDeluxscore;
private int totalSync;
private int totalBasicSync;
private int totalAdvancedSync;
private int totalExpertSync;
private int totalMasterSync;
private int totalReMasterSync;
private long totalAchievement;
private long totalBasicAchievement;
private long totalAdvancedAchievement;
private long totalExpertAchievement;
private long totalMasterAchievement;
private long totalReMasterAchievement;
private long dateTime;
}

View File

@@ -0,0 +1,65 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import icu.samnyan.aqua.sega.maimai2.util.IntegerListConverter;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserExtend")
@Table(name = "maimai2_user_extend")
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder({"selectMusicId", "selectDifficultyId", "categoryIndex", "musicIndex",
"extraFlag", "selectScoreType", "extendContentBit", "isPhotoAgree", "isGotoCodeRead",
"selectResultDetails", "sortCategorySetting", "sortMusicSetting", "selectedCardList", "encountMapNpcList"})
public class UserExtend implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int selectMusicId;
private int selectDifficultyId;
private int categoryIndex;
private int musicIndex;
private int extraFlag;
private int selectScoreType;
private long extendContentBit;
@JsonProperty("isPhotoAgree")
private boolean isPhotoAgree;
@JsonProperty("isGotoCodeRead")
private boolean isGotoCodeRead;
private boolean selectResultDetails;
private int sortCategorySetting; //enum SortTabID
private int sortMusicSetting; //enum SortMusicID
@Convert(converter = IntegerListConverter.class)
private List<Integer> selectedCardList;
@OneToMany(mappedBy = "userExtend")
private List<MapEncountNpc> encountMapNpcList = new ArrayList<>();
public UserExtend(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,47 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import icu.samnyan.aqua.sega.maimai2.util.IntegerListConverter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserFavorite")
@Table(name = "maimai2_user_favorite")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserFavorite implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
@JsonProperty("id")
private long favUserId;
private int itemKind;
@Convert(converter = IntegerListConverter.class)
private List<Integer> itemIdList;
public UserFavorite(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,32 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserGhost {
private String name;
private int iconId;
private int plateId;
private int titleId;
private int rate;
private int udemaeRate;
private String playDatetime;
private int shopId;
private int regionCode;
private int typeId;
private int musicId;
private int difficulty;
private int version;
private List<Byte> resultBitList;
private int resultNum;
private int achievement;
}

View File

@@ -0,0 +1,42 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import javax.persistence.*;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserItem")
@Table(name = "maimai2_user_item")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserItem implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int itemKind;
private int itemId;
private int stock;
private boolean isValid;
public UserItem(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,46 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserLoginBonus")
@Table(name = "maimai2_user_login_bonus")
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder({"bonusId", "point", "isCurrent", "isComplete"})
public class UserLoginBonus implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int bonusId;
private int point;
@JsonProperty("isCurrent")
private boolean isCurrent;
@JsonProperty("isComplete")
private boolean isComplete;
public UserLoginBonus(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,48 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserMap")
@Table(name = "maimai2_user_map")
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder({"mapId", "distance", "isLock", "isClear", "isComplete"})
public class UserMap implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int mapId;
private int distance;
@JsonProperty("isLock")
private boolean isLock;
@JsonProperty("isClear")
private boolean isClear;
@JsonProperty("isComplete")
private boolean isComplete;
public UserMap(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,45 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "MaiMai2UserMusicDetail")
@Table(name = "maimai2_user_music_detail")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserMusicDetail implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int musicId;
private int level;
private int playCount;
private int achievement;
private int comboStatus;
private int syncStatus;
private int deluxscoreMax;
private int scoreRank;
public UserMusicDetail(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,79 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserOption")
@Table(name = "maimai2_user_option")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserOption implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int optionKind;
private int noteSpeed;
private int slideSpeed;
private int touchSpeed;
private int tapDesign;
private int holdDesign;
private int slideDesign;
private int starType;
private int outlineDesign;
private int noteSize;
private int slideSize;
private int touchSize;
private int starRotate;
private int dispCenter;
private int dispChain;
private int dispRate;
private int dispBar;
private int touchEffect;
private int submonitorAnimation;
private int submonitorAchive;
private int submonitorAppeal;
private int matching;
private int trackSkip;
private int brightness;
private int mirrorMode;
private int dispJudge;
private int dispJudgePos;
private int dispJudgeTouchPos;
private int adjustTiming;
private int ansVolume;
private int tapHoldVolume;
private int criticalSe;
private int breakSe;
private int breakVolume;
private int exSe;
private int exVolume;
private int slideSe;
private int slideVolume;
private int touchHoldVolume;
private int damageSeVolume;
private int headPhoneVolume;
private int sortTab;
private int sortMusic;
public UserOption(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,41 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserRate")
@Table(name = "maimai2_user_rate")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserRate implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int musicId;
private int level;
private int romVersion;
private int achievement;
public UserRate(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,51 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserUdemae")
@Table(name = "maimai2_user_udemae")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserUdemae implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int rate;
private int maxRate;
private int totalWinNum;
private int totalLoseNum;
private int maxWinNum;
private int maxLoseNum;
private int winNum;
private int loseNum;
private int npcTotalWinNum;
private int npcTotalLoseNum;
private int npcMaxWinNum;
private int npcMaxLoseNum;
private int npcWinNum;
private int npcLoseNum;
public UserUdemae(UserDetail user) {
this.user = user;
}
}