Parcourir la source

Creating user model and repository

Vlada645 il y a 1 mois
Parent
commit
e6d8dbe8c8

+ 21 - 0
final project/database/src/main/java/pl/dmss/vmaneliuk/database/model/Library.java

@@ -0,0 +1,21 @@
+package pl.dmss.vmaneliuk.database.model;
+
+import jakarta.persistence.*;
+
+import java.util.List;
+
+@Entity
+@Table(name = "libraries")
+public class Library {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long libraryId;
+
+    @OneToOne
+    @JoinColumn(name = "user_id", nullable = false)
+    private User user;
+
+    private int totalGameCount;
+    private int totalPlaytimeSum;
+    private float avgLibraryRating;
+}

+ 33 - 0
final project/database/src/main/java/pl/dmss/vmaneliuk/database/model/User.java

@@ -0,0 +1,33 @@
+package pl.dmss.vmaneliuk.database.model;
+
+import jakarta.persistence.*;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Entity
+@Table(name = "users")
+public class User {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long userId;
+
+
+    @Column(nullable = false)
+    private String fullName;
+
+    @Column(nullable = false)
+    private String email;
+
+    @Column(nullable = false)
+    private String passwordHash;
+
+    private String accountStatus;
+    private LocalDateTime memberSince;
+    private BigDecimal walletBalance;
+    private BigDecimal totalSpent;
+
+    @OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY )
+    private Library library;
+}
+

+ 11 - 0
final project/database/src/main/java/pl/dmss/vmaneliuk/database/repository/UserRepository.java

@@ -0,0 +1,11 @@
+package pl.dmss.vmaneliuk.database.repository;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import pl.dmss.vmaneliuk.database.model.User;
+
+import java.util.Optional;
+
+public class UserRepository implements JpaRepository<User, Long> {
+    Optional<User> findByEmail(String email);
+
+}

+ 3 - 3
final project/database/src/main/resources/application.properties

@@ -1,7 +1,8 @@
+
 spring.application.name=database
 spring.application.name=database
+server.port=8084
 # Database connection URL
 # Database connection URL
-# Change 'localhost' to your host and 'postgres' to your database name if they differ
-spring.datasource.url=jdbc:postgresql://localhost:5432/online-game-shop-database
+spring.datasource.url=jdbc:postgresql://localhost:5432/online-game-shop
 spring.datasource.username=postgres
 spring.datasource.username=postgres
 spring.datasource.password=postgres
 spring.datasource.password=postgres
 
 
@@ -9,7 +10,6 @@ spring.datasource.password=postgres
 spring.datasource.driver-class-name=org.postgresql.Driver
 spring.datasource.driver-class-name=org.postgresql.Driver
 
 
 # JPA / Hibernate properties
 # JPA / Hibernate properties
-# 'update' automatically creates or modifies tables based on your Java entities
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.show-sql=true
 spring.jpa.show-sql=true
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect