55 lines
2.0 KiB
Java
55 lines
2.0 KiB
Java
package ru.soune.nocopy.dto.payout;
|
|||
|
|
import lombok.AllArgsConstructor;
|
||
|
|
import lombok.Builder;
|
||
|
|
import lombok.Data;
|
||
|
|
import lombok.NoArgsConstructor;
|
||
|
|
import ru.soune.nocopy.entity.payout.PayoutRequest;
|
||
|
|
import ru.soune.nocopy.entity.payout.PayoutRequestStatus;
|
||
|
|
import ru.soune.nocopy.entity.payout.PayoutType;
|
||
|
|
|
||
|
|
import java.math.BigDecimal;
|
||
|
|
import java.time.LocalDateTime;
|
||
|
|
import java.time.format.DateTimeFormatter;
|
||
|
|
|
||
|
|
@Data
|
||
|
|
@Builder
|
||
|
|
@NoArgsConstructor
|
||
|
|
@AllArgsConstructor
|
||
|
|
|
||
|
|
public class PayoutResponse {
|
||
|
|
private Long id;
|
||
|
|
private BigDecimal amount;
|
||
|
|
private String formattedAmount;
|
||
|
|
private PayoutRequestStatus status;
|
||
|
|
private PayoutType payoutType;
|
||
|
|
private String payoutMethodDisplay;
|
||
|
|
private LocalDateTime createdAt;
|
||
|
|
private String formattedCreatedAt;
|
||
|
|
private LocalDateTime processedAt;
|
||
|
|
private LocalDateTime completedAt;
|
||
|
|
private String transactionId;
|
||
|
|
private String rejectionReason;
|
||
|
|
private boolean canCancel;
|
||
|
|
|
||
|
|
public static PayoutResponse fromEntity(PayoutRequest request) {
|
||
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
|
||
|
|
|
||
|
|
return PayoutResponse.builder()
|
||
|
|
.id(request.getId())
|
||
|
|
.amount(request.getAmount())
|
||
|
|
.formattedAmount(String.format("%.2f ₽", request.getAmount()))
|
||
|
|
.status(request.getStatus())
|
||
|
|
.payoutType(request.getPayoutType())
|
||
|
|
.payoutMethodDisplay(request.getPayoutMethod() != null ?
|
||
|
|
request.getPayoutMethod().getDisplayName() : null)
|
||
|
|
.createdAt(request.getCreatedAt())
|
||
|
|
.formattedCreatedAt(request.getCreatedAt() != null ?
|
||
|
|
request.getCreatedAt().format(formatter) : null)
|
||
|
|
.processedAt(request.getProcessAt())
|
||
|
|
.completedAt(request.getCompletedAt())
|
||
|
|
.rejectionReason(request.getRejectionReason())
|
||
|
|
.canCancel(request.getStatus() == PayoutRequestStatus.PENDING)
|
||
|
|
.build();
|
||
|
|
}
|
||
|
|
}
|