From da12f3bbdc5880a4c83bf05910110b45a33ce0ed Mon Sep 17 00:00:00 2001 From: MathewFrancis Date: Tue, 22 Jul 2025 16:09:03 +0530 Subject: [PATCH] Race card --- .../example/cezenBTC/DTO/race_card/Pools.java | 9 +++++ .../cezenBTC/DTO/race_card/RaceCard.java | 8 ++++ .../DTO/race_card/RaceVenueRaces.java | 9 +++++ .../config/CezenRoutsSecurityChain.java | 1 + .../cezenBTC/controller/BtcOperations.java | 8 ++++ .../cezenBTC/service/BtcRaceService.java | 37 ++++++++++++++++++- 6 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/Pools.java create mode 100644 springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceCard.java create mode 100644 springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceVenueRaces.java diff --git a/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/Pools.java b/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/Pools.java new file mode 100644 index 0000000..488b24d --- /dev/null +++ b/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/Pools.java @@ -0,0 +1,9 @@ +package com.example.cezenBTC.DTO.race_card; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public record Pools(Map> comboRaces) { +} diff --git a/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceCard.java b/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceCard.java new file mode 100644 index 0000000..db6b3f2 --- /dev/null +++ b/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceCard.java @@ -0,0 +1,8 @@ +package com.example.cezenBTC.DTO.race_card; + +import java.time.LocalDate; +import java.util.List; +import java.util.Set; + +public record RaceCard(String Venue, LocalDate date, RaceVenueRaces raceVenueRaces, Pools pools) { +} diff --git a/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceVenueRaces.java b/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceVenueRaces.java new file mode 100644 index 0000000..6e04b6e --- /dev/null +++ b/springHorse/src/main/java/com/example/cezenBTC/DTO/race_card/RaceVenueRaces.java @@ -0,0 +1,9 @@ +package com.example.cezenBTC.DTO.race_card; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public record RaceVenueRaces(Set> races) { +} diff --git a/springHorse/src/main/java/com/example/cezenBTC/config/CezenRoutsSecurityChain.java b/springHorse/src/main/java/com/example/cezenBTC/config/CezenRoutsSecurityChain.java index bce41cd..04e03e4 100755 --- a/springHorse/src/main/java/com/example/cezenBTC/config/CezenRoutsSecurityChain.java +++ b/springHorse/src/main/java/com/example/cezenBTC/config/CezenRoutsSecurityChain.java @@ -103,6 +103,7 @@ public class CezenRoutsSecurityChain { "/btc/get_all_venues", "/btc/get_races_by_venue_id", "/btc/get_all_races_by_today", + "/btc/get_race_card", "/cezen/set_aors", "/cezen/set_password", "/cezen/add_extension" diff --git a/springHorse/src/main/java/com/example/cezenBTC/controller/BtcOperations.java b/springHorse/src/main/java/com/example/cezenBTC/controller/BtcOperations.java index 003235b..954ecd2 100644 --- a/springHorse/src/main/java/com/example/cezenBTC/controller/BtcOperations.java +++ b/springHorse/src/main/java/com/example/cezenBTC/controller/BtcOperations.java @@ -1,9 +1,11 @@ package com.example.cezenBTC.controller; +import com.example.cezenBTC.DTO.race_card.RaceCard; import com.example.cezenBTC.entity.btc_entity.RaceNumber; import com.example.cezenBTC.entity.btc_entity.RaceVenue; import com.example.cezenBTC.service.BtcRaceService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -39,4 +41,10 @@ public class BtcOperations { return this.btcRaceService.getAllRacesByDateService(LocalDate.now()); } + + @GetMapping("/get_race_card") + public ResponseEntity getRaceCard(){ + + return this.btcRaceService.getRaceCard(LocalDate.now()); + } } diff --git a/springHorse/src/main/java/com/example/cezenBTC/service/BtcRaceService.java b/springHorse/src/main/java/com/example/cezenBTC/service/BtcRaceService.java index 6ebbd6f..0cc8233 100644 --- a/springHorse/src/main/java/com/example/cezenBTC/service/BtcRaceService.java +++ b/springHorse/src/main/java/com/example/cezenBTC/service/BtcRaceService.java @@ -2,13 +2,17 @@ package com.example.cezenBTC.service; import com.example.cezenBTC.DAO.BtcOpsDAO; import com.example.cezenBTC.DTO.ReturnStatus; +import com.example.cezenBTC.DTO.race_card.Pools; +import com.example.cezenBTC.DTO.race_card.RaceCard; +import com.example.cezenBTC.DTO.race_card.RaceVenueRaces; import com.example.cezenBTC.entity.btc_entity.RaceNumber; import com.example.cezenBTC.entity.btc_entity.RaceVenue; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.time.LocalDate; -import java.util.List; +import java.util.*; @Service public class BtcRaceService { @@ -79,4 +83,35 @@ public class BtcRaceService { return null; } } + + public ResponseEntity getRaceCard(LocalDate date){ + + //create race numbers + Set races1 = new LinkedHashSet<>(List.of(1,2,3,4,5,6,7,8,10)); + Set races2 = new LinkedHashSet<>(List.of(2,4,6,8,10,12)); + Set races3 = new LinkedHashSet<>(List.of(1,2,3,5,7,8,9,10,11)); + Set races4 = new LinkedHashSet<>(List.of(1,2,3,4,5,6,7,8,10,12,13)); + + // create a Venue + Set> mysRaces = new LinkedHashSet<>(); + mysRaces.add(races1); + mysRaces.add(races2); + mysRaces.add(races3); + mysRaces.add(races4); + RaceVenueRaces raceVenueMYS = new RaceVenueRaces(mysRaces); + + //create a Pool combination + Set pool1 = new LinkedHashSet<>(List.of(5, 6, 7)); + Set pool2 = new LinkedHashSet<>(List.of(1, 2, 3)); + + // pole id to pool combo + Map> mysPools = new LinkedHashMap<>(); + mysPools.put("TRB2", pool1); + mysPools.put("MJP1", pool2); + Pools mysPool = new Pools(mysPools); + + RaceCard raceCard = new RaceCard("MYS", date, raceVenueMYS, mysPool); + + return ResponseEntity.status(200).body(raceCard); + } }