Untitled
unknown
plain_text
a year ago
4.7 kB
5
Indexable
package pl.santander.bancassurance.comparison.commission.infra.policy.purchased;
import lombok.*;
import pl.santander.bancassurance.comparison.commission.domain.shared.InsuranceCompany;
import jakarta.validation.Valid;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@ToString
public class PolicyPurchasedEvent {
@NotBlank(message = "must not be null")
private String policyNumber;
@NotNull(message = "must not be null")
@DecimalMin(value = "0.0", message = "must be at least 0")
private BigDecimal price;
@NotNull(message = "must not be null")
private InsuranceCompany insuranceCompany;
@NotNull(message = "must not be null")
private LocalDateTime purchaseDate;
@Singular
@Valid
@NotNull(message = "must not be null")
@NotEmpty(message = "not be empty")
private List<PolicyRisk> risks;
@NotNull(message = "must not be null")
private Boolean bankEmployee;
public LocalDate getPurchaseDateAsLocalDate() {
if (purchaseDate == null) {
return null;
}
return purchaseDate.toLocalDate();
}
}
---
package pl.santander.bancassurance.comparison.commission.infra.policy.payment;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import pl.santander.bancassurance.comparison.commission.domain.shared.InsuranceCompany;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import static lombok.AccessLevel.PRIVATE;
import static lombok.AccessLevel.PROTECTED;
@Data
@Builder
@AllArgsConstructor(access = PRIVATE)
@NoArgsConstructor(access = PROTECTED)
public class PaymentConfirmedEvent {
@NotNull
@NotEmpty
private String policyNumber;
@NotNull
private InsuranceCompany insuranceCompany;
}
---
package pl.santander.bancassurance.comparison.commission.infra.policy.aftersale.cash;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.AssertTrue;
import lombok.*;
import pl.santander.bancassurance.comparison.commission.domain.shared.InsuranceCompany;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
class PolicyCashEvent {
@NotNull(message = "must not be null")
private InsuranceCompany insuranceCompany;
@NotBlank(message = "must not be null")
private String policyNumber;
private LocalDate postingDate;
private LocalDate refundDate;
@Singular
@Valid
@NotNull(message = "must not be null")
@NotEmpty(message = "not be empty")
private List<PolicyCashRisk> risks;
@JsonIgnore
@AssertTrue(message = "postingDate or refundDate is null when risk contains collection or refund")
public boolean isPostingAndRefundDateCorrect() {
if (postingDate == null && risks.stream().anyMatch(e -> e.getCollection() != null)) {
return false;
}
return refundDate != null || risks.stream().noneMatch(e -> e.getRefundAmount() != null);
}
}
---
package pl.santander.bancassurance.comparison.commission.infra.policy.aftersale.update;
import lombok.*;
import pl.santander.bancassurance.comparison.commission.domain.shared.InsuranceCompany;
import jakarta.validation.Valid;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@ToString
public class PolicyUpdateEvent {
@NotBlank(message = "must not be null")
private String policyNumber;
@NotNull(message = "must not be null")
@DecimalMin(value = "0.0", message = "must be at least 0")
private BigDecimal price;
@NotNull(message = "must not be null")
private InsuranceCompany insuranceCompany;
@Valid
@NotEmpty(message = "not be empty")
@Singular
private List<PolicyUpdateRisk> risks;
}
Editor is loading...
Leave a Comment