85 lines
2.0 KiB
Java
85 lines
2.0 KiB
Java
package com.yoyuzh.auth;
|
|
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.Entity;
|
|
import jakarta.persistence.GeneratedValue;
|
|
import jakarta.persistence.GenerationType;
|
|
import jakarta.persistence.Id;
|
|
import jakarta.persistence.Index;
|
|
import jakarta.persistence.PrePersist;
|
|
import jakarta.persistence.Table;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
@Entity
|
|
@Table(name = "portal_user", indexes = {
|
|
@Index(name = "uk_user_username", columnList = "username", unique = true),
|
|
@Index(name = "uk_user_email", columnList = "email", unique = true),
|
|
@Index(name = "idx_user_created_at", columnList = "created_at")
|
|
})
|
|
public class User {
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
private Long id;
|
|
|
|
@Column(nullable = false, length = 64, unique = true)
|
|
private String username;
|
|
|
|
@Column(nullable = false, length = 128, unique = true)
|
|
private String email;
|
|
|
|
@Column(name = "password_hash", nullable = false, length = 255)
|
|
private String passwordHash;
|
|
|
|
@Column(name = "created_at", nullable = false)
|
|
private LocalDateTime createdAt;
|
|
|
|
@PrePersist
|
|
public void prePersist() {
|
|
if (createdAt == null) {
|
|
createdAt = LocalDateTime.now();
|
|
}
|
|
}
|
|
|
|
public Long getId() {
|
|
return id;
|
|
}
|
|
|
|
public void setId(Long id) {
|
|
this.id = id;
|
|
}
|
|
|
|
public String getUsername() {
|
|
return username;
|
|
}
|
|
|
|
public void setUsername(String username) {
|
|
this.username = username;
|
|
}
|
|
|
|
public String getEmail() {
|
|
return email;
|
|
}
|
|
|
|
public void setEmail(String email) {
|
|
this.email = email;
|
|
}
|
|
|
|
public String getPasswordHash() {
|
|
return passwordHash;
|
|
}
|
|
|
|
public void setPasswordHash(String passwordHash) {
|
|
this.passwordHash = passwordHash;
|
|
}
|
|
|
|
public LocalDateTime getCreatedAt() {
|
|
return createdAt;
|
|
}
|
|
|
|
public void setCreatedAt(LocalDateTime createdAt) {
|
|
this.createdAt = createdAt;
|
|
}
|
|
}
|