package com.yhy.module.core.controller.admin.workbench.vo.progresspayment;

import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 进度款模式 Response VO
 */
@Schema(description = "工作台 - 进度款模式 Response VO")
@Data
public class ProgressPaymentModeRespVO {

    @Schema(description = "进度款模式ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long projectId;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "第一期进度款")
    private String name;

    @Schema(description = "期数序号", example = "1")
    private Integer periodNumber;

    @Schema(description = "开始日期", example = "2024-01-01")
    private LocalDate startDate;

    @Schema(description = "结束日期", example = "2024-03-31")
    private LocalDate endDate;

    @Schema(description = "总造价", example = "1000000.00")
    private BigDecimal totalCost;

    @Schema(description = "本期产值", example = "200000.00")
    private BigDecimal currentPeriodValue;

    @Schema(description = "已完产值", example = "500000.00")
    private BigDecimal completedValue;

    @Schema(description = "已完比例", example = "0.5")
    private BigDecimal completedRatio;

    @Schema(description = "支付比例(%)", example = "80")
    private BigDecimal paymentRatio;

    @Schema(description = "支付金额", example = "400000.00")
    private BigDecimal paymentAmount;

    @Schema(description = "材料调差", example = "10000.00")
    private BigDecimal materialAdjustment;

    @Schema(description = "备注", example = "第一期进度款")
    private String remark;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
}
