// Path: src/main/java/com/lenis0012/bukkit/loginsecurity/util/UserIdMode.java
// @RequiredArgsConstructor
// @Getter
// public enum UserIdMode {
//     UNKNOWN("U"),
//     MOJANG("M"),
//     OFFLINE("O");
// 
//     private final String id;
// 
//     public static UserIdMode fromId(String id) {
//         for(UserIdMode mode : values()) {
//             if(mode.id.equalsIgnoreCase(id)) return mode;
//         }
//         return null;
//     }
// 
//     public String getUserId(final PlayerProfile profile) {
//         if(profile.getUniqueIdMode() == this) {
//             return profile.getUniqueUserId();
//         }
// 
//         switch(this) {
//             case OFFLINE:
//                 return profile.getLastName() == null ? profile.getUniqueUserId() : UUID.nameUUIDFromBytes(("OfflinePlayer:" + profile.getLastName().toLowerCase()).getBytes()).toString();
//             case MOJANG:
//                 return profile.getUniqueUserId();
//             default:
//                 throw new IllegalStateException("Invalid uuid mode: " + toString());
//         }
//     }
// }


import com.lenis0012.bukkit.loginsecurity.util.UserIdMode;
import lombok.Data;
import java.sql.Date;
import java.sql.Timestamp;
package com.lenis0012.bukkit.loginsecurity.storage;



@Data
public class PlayerProfile {
    private int id;

    private String uniqueUserId;

// Path: src/main/java/com/lenis0012/bukkit/loginsecurity/util/UserIdMode.java
// @RequiredArgsConstructor
// @Getter
// public enum UserIdMode {
//     UNKNOWN("U"),
//     MOJANG("M"),
//     OFFLINE("O");
// 
//     private final String id;
// 
//     public static UserIdMode fromId(String id) {
//         for(UserIdMode mode : values()) {
//             if(mode.id.equalsIgnoreCase(id)) return mode;
//         }
//         return null;
//     }
// 
//     public String getUserId(final PlayerProfile profile) {
//         if(profile.getUniqueIdMode() == this) {
//             return profile.getUniqueUserId();
//         }
// 
//         switch(this) {
//             case OFFLINE:
//                 return profile.getLastName() == null ? profile.getUniqueUserId() : UUID.nameUUIDFromBytes(("OfflinePlayer:" + profile.getLastName().toLowerCase()).getBytes()).toString();
//             case MOJANG:
//                 return profile.getUniqueUserId();
//             default:
//                 throw new IllegalStateException("Invalid uuid mode: " + toString());
//         }
//     }
// }


// Path: src/main/java/com/lenis0012/bukkit/loginsecurity/storage/PlayerProfile.java
import com.lenis0012.bukkit.loginsecurity.util.UserIdMode;
import lombok.Data;
import java.sql.Date;
import java.sql.Timestamp;

package com.lenis0012.bukkit.loginsecurity.storage;



@Data
public class PlayerProfile {
    private int id;

    private String uniqueUserId;

    private UserIdMode uniqueIdMode = UserIdMode.UNKNOWN;