MentorSettlementSummaryDto.java

package com.newbit.settlement.dto.response;

import com.newbit.settlement.entity.MonthlySettlementHistory;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Getter;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/* 하나의 정산 내역을 표현
 *  리스트 안에 들어가는 "요소" 역할
 *  클라이언트에게 각 정산 항목의 세부 정보(정산 금액, 연/월, 정산일시 등)를 제공 */
@Getter
@Builder
@Schema(description = "멘토 월별 정산 요약 DTO")
public class MentorSettlementSummaryDto {
    @Schema(description = "정산 ID", example = "1")
    private Long settlementId;

    @Schema(description = "정산 연도", example = "2025")
    private int settlementYear;

    @Schema(description = "정산 월", example = "4")
    private int settlementMonth;

    @Schema(description = "정산 금액", example = "120000.00")
    private BigDecimal settlementAmount;

    @Schema(description = "정산 완료 일시", example = "2025-04-01T14:30:00")
    private LocalDateTime settledAt;

    public static MentorSettlementSummaryDto from(MonthlySettlementHistory history) {
        return MentorSettlementSummaryDto.builder()
                .settlementId(history.getMonthlySettlementHistoryId())
                .settlementYear(history.getSettlementYear())
                .settlementMonth(history.getSettlementMonth())
                .settlementAmount(history.getSettlementAmount())
                .settledAt(history.getSettledAt())
                .build();
    }
}