Add user persistence

This commit is contained in:
litoral05
2026-06-03 10:26:44 +01:00
parent b67214f4d6
commit 20299f46a0
5 changed files with 105 additions and 3 deletions
@@ -1,4 +1,81 @@
package com.litoralregas.backend_gateway.user;
import com.litoralregas.backend_gateway.client.ClientEntity;
import jakarta.persistence.*;
@Entity
@Table(name = "users")
public class UserEntity {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "client_id", nullable = false)
private ClientEntity client;
@Column(nullable = false, unique = true)
private String username;
@Column(name = "password_hash", nullable = false)
private String passwordHash;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private UserRole role;
@Column(nullable = false)
private boolean enabled = true;
@Column(name = "created_at", nullable = false, insertable = false, updatable = false)
private String createdAt;
public Long getId() {
return id;
}
public ClientEntity getClient() {
return client;
}
public String getUsername() {
return username;
}
public String getPasswordHash() {
return passwordHash;
}
public UserRole getRole() {
return role;
}
public boolean isEnabled() {
return enabled;
}
public String getCreatedAt() {
return createdAt;
}
public void setClient(ClientEntity client) {
this.client = client;
}
public void setUsername(String username) {
this.username = username;
}
public void setPasswordHash(String passwordHash) {
this.passwordHash = passwordHash;
}
public void setRole(UserRole role) {
this.role = role;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}
@@ -1,4 +1,10 @@
package com.litoralregas.backend_gateway.user;
public class UserRepository {
}
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface UserRepository extends JpaRepository<UserEntity, Long> {
Optional<UserEntity> findByUsername(String username);
}
@@ -0,0 +1,6 @@
package com.litoralregas.backend_gateway.user;
public enum UserRole {
ADMIN,
CLIENT_USER
}
@@ -0,0 +1,13 @@
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
client_id INTEGER NOT NULL,
username TEXT NOT NULL UNIQUE,
password_hash TEXT NOT NULL,
role TEXT NOT NULL,
enabled INTEGER NOT NULL DEFAULT 1,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_users_client
FOREIGN KEY (client_id)
REFERENCES clients(id)
);