From 1878ed8fe41d5da8781cd3209eb2b0a405171f60 Mon Sep 17 00:00:00 2001 From: Phan Huy Tran Date: Wed, 2 Apr 2025 09:15:37 +0200 Subject: [PATCH] feat: create lootbox and rewards entity --- .../szut/casino/lootboxes/LootBoxEntity.java | 34 +++++++++++++++++++ .../szut/casino/lootboxes/RewardEntity.java | 28 +++++++++++++++ .../src/main/resources/application.properties | 2 +- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/de/szut/casino/lootboxes/LootBoxEntity.java create mode 100644 backend/src/main/java/de/szut/casino/lootboxes/RewardEntity.java diff --git a/backend/src/main/java/de/szut/casino/lootboxes/LootBoxEntity.java b/backend/src/main/java/de/szut/casino/lootboxes/LootBoxEntity.java new file mode 100644 index 0000000..7138bf3 --- /dev/null +++ b/backend/src/main/java/de/szut/casino/lootboxes/LootBoxEntity.java @@ -0,0 +1,34 @@ +package de.szut.casino.lootboxes; + +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonIgnore; +import de.szut.casino.blackjack.CardEntity; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLRestriction; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LootBoxEntity { + @Id + @GeneratedValue + private Long id; + + private String name; + + @Column(precision = 19, scale = 2) + private BigDecimal price; + + @OneToMany(mappedBy = "lootBox", cascade = CascadeType.ALL, orphanRemoval = true) + private List rewards = new ArrayList<>(); +} diff --git a/backend/src/main/java/de/szut/casino/lootboxes/RewardEntity.java b/backend/src/main/java/de/szut/casino/lootboxes/RewardEntity.java new file mode 100644 index 0000000..0c1d21d --- /dev/null +++ b/backend/src/main/java/de/szut/casino/lootboxes/RewardEntity.java @@ -0,0 +1,28 @@ +package de.szut.casino.lootboxes; + +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import de.szut.casino.blackjack.BlackJackGameEntity; +import jakarta.persistence.*; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +@Entity +public class RewardEntity { + @Id + @GeneratedValue + private Long id; + + @Column(precision = 19, scale = 2) + private BigDecimal value; + + @Column(precision = 5, scale = 2) + private BigDecimal probability; + + @ManyToOne + @JoinColumn(name = "lootBox_id", nullable = false) + @JsonBackReference + private LootBoxEntity lootBox; +} diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties index a02bc80..e42fba6 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application.properties @@ -2,7 +2,7 @@ spring.datasource.url=jdbc:postgresql://${DB_HOST:localhost}:5432/postgresdb spring.datasource.username=postgres_user spring.datasource.password=postgres_pass server.port=8080 -spring.jpa.hibernate.ddl-auto=update +spring.jpa.hibernate.ddl-auto=create-drop stripe.secret.key=${STRIPE_SECRET_KEY:sk_test_51QrePYIvCfqz7ANgqam8rEwWcMeKiLOof3j6SCMgu2sl4sESP45DJxca16mWcYo1sQaiBv32CMR6Z4AAAGQPCJo300ubuZKO8I} stripe.webhook.secret=whsec_746b6a488665f6057118bdb4a2b32f4916f16c277109eeaed5e8f8e8b81b8c15 app.frontend-host=http://localhost:4200