[+] AquaNetUser JPA entity

This commit is contained in:
Azalea
2024-02-17 00:25:19 -05:00
parent 467f5bd2eb
commit 0b4a0eeb55
2 changed files with 50 additions and 1 deletions

View File

@@ -0,0 +1,42 @@
package icu.samnyan.aqua.net.db
import icu.samnyan.aqua.sega.general.model.Card
import jakarta.persistence.*
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
import java.io.Serializable
@Entity(name = "AquaNetUser")
@Table(name = "aqua_net_user")
class AquaNetUser(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
var auId: Int = 0,
// Login credentials
@Column(nullable = false, unique = true) var email: String = "",
var pwHash: String = "",
var displayName: String = "",
// Country code at most 3 characters
@Column(length = 3) var country: String = "",
// Last login time
var lastLogin: Long = 0L,
// Registration time
var regTime: Long = 0L,
// Profile fields
var profileLocation: String = "",
var profileBio: String = "",
// One user can have multiple cards
@OneToMany(mappedBy = "aquaNetUser", cascade = [CascadeType.ALL])
var cards: MutableList<Card> = mutableListOf()
) : Serializable
@Repository("AquaNetUserRepository")
interface AquaNetUserRepo : JpaRepository<AquaNetUser, Int> {
fun existsByEmail(email: String): Boolean
}

View File

@@ -1,10 +1,12 @@
package icu.samnyan.aqua.sega.general.model;
import icu.samnyan.aqua.net.db.AquaNetUser;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import jakarta.persistence.*;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -18,6 +20,7 @@ import java.time.LocalDateTime;
@NoArgsConstructor
public class Card implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id
@@ -38,4 +41,8 @@ public class Card implements Serializable {
@Column(name = "access_time")
private LocalDateTime accessTime;
// Defines the AquaNet user that this card is bound to
@ManyToOne
@JoinColumn(name = "net_user_id")
private AquaNetUser aquaUser;
}