done all the implementations of each parts yet
This commit is contained in:
@@ -2,7 +2,7 @@ package com.pmumali.plr.dtos;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record BulkChevalCourseRequest(List<ChevalEntry> entries) {
|
||||
public record BulkChevalCourseRequest(Long courseId, List<ChevalEntry> entries) {
|
||||
public static record ChevalEntry(Long chevalId, Integer numeroCheval) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
public record ChevalDto(Long id, String nom, Integer numero, String nomEcurie, Integer birthYear) {}
|
||||
public record ChevalDto(Long id, String nom, String nomEcurie, Integer birthYear) {
|
||||
}
|
||||
|
||||
@@ -4,4 +4,6 @@ import java.time.LocalDateTime;
|
||||
|
||||
import com.pmumali.plr.enums.CourseStatue;
|
||||
|
||||
public record CourseDto(Long id, String nom, String lieu, LocalDateTime departureDateTime, CourseStatue status){}
|
||||
public record CourseDto(Long id, String nom, String lieu, LocalDateTime departureDateTime, Integer distance,
|
||||
CourseStatue status) {
|
||||
}
|
||||
32
src/main/java/com/pmumali/plr/dtos/CreatePariRequestDto.java
Normal file
32
src/main/java/com/pmumali/plr/dtos/CreatePariRequestDto.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.pmumali.plr.enums.PariType;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.DecimalMin;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CreatePariRequestDto {
|
||||
|
||||
@NotNull(message = "Course ID cannot be null")
|
||||
private Long courseId;
|
||||
|
||||
@NotNull(message = "PariType cannot be null")
|
||||
private PariType pariType;
|
||||
|
||||
@NotNull(message = "Mise cannot be null")
|
||||
@DecimalMin(value = "0", message = "Minimum mise is 0")
|
||||
private BigDecimal mise;
|
||||
|
||||
@NotEmpty(message = "Bettor reference cannot be empty")
|
||||
private String bettorRef;
|
||||
|
||||
@NotEmpty(message = "Selections cannot be empty")
|
||||
private List<@Valid PariSelectionDto> selections;
|
||||
}
|
||||
28
src/main/java/com/pmumali/plr/dtos/GainViewDto.java
Normal file
28
src/main/java/com/pmumali/plr/dtos/GainViewDto.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import com.pmumali.plr.enums.PariType;
|
||||
|
||||
import lombok.Builder;
|
||||
|
||||
@Builder
|
||||
public record GainViewDto(
|
||||
Long pariId,
|
||||
Long courseId,
|
||||
String courseNom,
|
||||
PariType pariType,
|
||||
String pariSousType, // e.g. "QP_ORDRE", "MULTI6" (optional)
|
||||
String bettorRef,
|
||||
BigDecimal mise,
|
||||
BigDecimal gain, // official or 0 when provisional
|
||||
String payoutMode, // "OFFICIAL" or "PROVISIONAL"
|
||||
String numeroPlus, // for Quinté+ tickets (if any)
|
||||
List<GainViewDto.Selection> selections,
|
||||
LocalDateTime createdAt
|
||||
) {
|
||||
@Builder
|
||||
public static record Selection(Long chevalId, String nomCheval, Integer position) {}
|
||||
}
|
||||
24
src/main/java/com/pmumali/plr/dtos/PariResponseDto.java
Normal file
24
src/main/java/com/pmumali/plr/dtos/PariResponseDto.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import com.pmumali.plr.enums.PariType;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class PariResponseDto {
|
||||
private Long id;
|
||||
private Long courseId;
|
||||
private String courseNom;
|
||||
private PariType pariType;
|
||||
private BigDecimal mise;
|
||||
private String bettorRef;
|
||||
private Boolean estGagnant;
|
||||
private BigDecimal gain;
|
||||
private LocalDateTime createdAt;
|
||||
private List<PariSelectionResponseDto> selections;
|
||||
}
|
||||
14
src/main/java/com/pmumali/plr/dtos/PariSelectionDto.java
Normal file
14
src/main/java/com/pmumali/plr/dtos/PariSelectionDto.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PariSelectionDto {
|
||||
@NotNull
|
||||
private Long chevalId;
|
||||
|
||||
@Min(1)
|
||||
private Integer position;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class PariSelectionResponseDto {
|
||||
private Long chevalId;
|
||||
private String nomCheval;
|
||||
private Integer position;
|
||||
}
|
||||
16
src/main/java/com/pmumali/plr/dtos/RapportDto.java
Normal file
16
src/main/java/com/pmumali/plr/dtos/RapportDto.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.pmumali.plr.enums.PariType;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class RapportDto {
|
||||
private Long courseId;
|
||||
private PariType pariType;
|
||||
private BigDecimal rapportParUnite; // cagnotte / total mise gagnants (0 si pas de gagnant)
|
||||
}
|
||||
15
src/main/java/com/pmumali/plr/dtos/ResultatChevalDto.java
Normal file
15
src/main/java/com/pmumali/plr/dtos/ResultatChevalDto.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ResultatChevalDto {
|
||||
@NotNull
|
||||
private Long chevalId;
|
||||
|
||||
@NotNull
|
||||
@Min(1)
|
||||
private Integer rang;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
|
||||
public record ResultatChevalView(ChevalDto cheval, Integer numeroCheval, Integer rang) {}
|
||||
21
src/main/java/com/pmumali/plr/dtos/ResultatCreationDto.java
Normal file
21
src/main/java/com/pmumali/plr/dtos/ResultatCreationDto.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ResultatCreationDto {
|
||||
@NotNull
|
||||
private Long courseId;
|
||||
|
||||
// optionnel pour Quinté+
|
||||
private String numeroPlusGagnant;
|
||||
|
||||
@NotEmpty
|
||||
@Valid
|
||||
private List<ResultatChevalDto> resultatsChevaux;
|
||||
}
|
||||
19
src/main/java/com/pmumali/plr/dtos/ResultatDto.java
Normal file
19
src/main/java/com/pmumali/plr/dtos/ResultatDto.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Builder;
|
||||
|
||||
@Builder
|
||||
public record ResultatDto(
|
||||
Long id,
|
||||
Long courseId,
|
||||
String courseNom,
|
||||
LocalDateTime dateOfficielle,
|
||||
String numeroPlusGagnant,
|
||||
List<LigneDto> arrivee
|
||||
) {
|
||||
@Builder
|
||||
public record LigneDto(Long chevalId, String chevalNom, Integer rang) {}
|
||||
}
|
||||
27
src/main/java/com/pmumali/plr/dtos/SettlementSummaryDto.java
Normal file
27
src/main/java/com/pmumali/plr/dtos/SettlementSummaryDto.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.pmumali.plr.enums.PariType;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class SettlementSummaryDto {
|
||||
private Long courseId;
|
||||
private Map<PariType, PoolLine> pools; // par type
|
||||
private List<RapportDto> rapports; // par type (€/1 unité de mise)
|
||||
private boolean closed; // course cloturée ?
|
||||
|
||||
@Data @Builder
|
||||
public static class PoolLine {
|
||||
private BigDecimal totalMise; // total misé
|
||||
private BigDecimal prelevement; // montant prélevé
|
||||
private BigDecimal cagnotte; // totalMise - prelevement
|
||||
private BigDecimal totalMiseGagnants; // somme des mises gagnantes
|
||||
}
|
||||
}
|
||||
28
src/main/java/com/pmumali/plr/dtos/UpdatePariRequestDto.java
Normal file
28
src/main/java/com/pmumali/plr/dtos/UpdatePariRequestDto.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.pmumali.plr.dtos;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.pmumali.plr.enums.PariType;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.DecimalMin;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UpdatePariRequestDto {
|
||||
@NotNull
|
||||
private PariType pariType;
|
||||
|
||||
@NotNull @DecimalMin("0.01")
|
||||
private BigDecimal mise;
|
||||
|
||||
@NotBlank
|
||||
private String bettorRef;
|
||||
|
||||
@NotNull @Size(min = 1)
|
||||
private List<@Valid PariSelectionDto> selections;
|
||||
}
|
||||
Reference in New Issue
Block a user