package cn.iocoder.lyzsys.module.tjt.controller.admin.planning.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

@Schema(description = "管理后台 - 合约规划 Response VO")
@Data
public class ProjectPlanningRespVO {

    @Schema(description = "合约规划 ID", example = "1")
    private Long id;

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

    @Schema(description = "排序")
    private Integer sortNo;

    @Schema(description = "归属类型")
    private String ownershipType;

    @Schema(description = "产值计算方式")
    private String calculationMethod;

    @Schema(description = "项目任务包")
    private String planningContent;

    @Schema(description = "分项合同产值")
    private BigDecimal planningAmount;

    @Schema(description = "合同产值数量")
    private BigDecimal contractValueQuantity;

    @Schema(description = "合同产值单价")
    private BigDecimal contractValueUnitPrice;

    @Schema(description = "管理费率")
    private BigDecimal managementFeeRate;

    @Schema(description = "管理费")
    private BigDecimal managementFee;

    @Schema(description = "增值税率")
    private BigDecimal vatRate;

    @Schema(description = "增值税")
    private BigDecimal vatAmount;

    @Schema(description = "项目预算产值")
    private BigDecimal projectBudgetOutputValue;

    @Schema(description = "意向实施团队")
    private String implementationTeam;

    @Schema(description = "开始年度")
    private Integer planningStartYear;

    @Schema(description = "面积")
    private BigDecimal planningArea;

    @Schema(description = "设计阶段")
    private String designStage;

    @Schema(description = "本次设计阶段比例")
    private BigDecimal currentDesignStageRatio;

    @Schema(description = "审核审定是否外包")
    private Boolean reviewOutsourceFlag;

    @Schema(description = "审核审定占比")
    private BigDecimal reviewOutsourceRatio;

    @Schema(description = "总分配比例")
    private BigDecimal totalDistributionAmount;

    @Schema(description = "已分配比例")
    private BigDecimal allocatedAmount;

    @Schema(description = "待分配比例")
    private BigDecimal pendingAmount;

    @Schema(description = "提取进度备注")
    private String progressRemark;

    @Schema(description = "楼栋数或户型数")
    private Integer buildingOrUnitCount;

    @Schema(description = "套图系数")
    private BigDecimal drawingSetFactor;

    @Schema(description = "规模系数")
    private BigDecimal scaleFactor;

    @Schema(description = "修改系数")
    private BigDecimal modificationFactor;

    @Schema(description = "复杂系数")
    private BigDecimal complexityFactor;

    @Schema(description = "内部指导单价（元/m²）")
    private BigDecimal internalGuidanceUnitPrice;

    @Schema(description = "虚拟产值计算方式")
    private String virtualCalculationMethod;

    @Schema(description = "工日")
    private BigDecimal workingDayCount;

    @Schema(description = "工日单价")
    private BigDecimal workingDayUnitPrice;

    @Schema(description = "指导单价")
    private BigDecimal guidanceUnitPrice;

    @Schema(description = "指导总价")
    private BigDecimal guidanceTotalPrice;

    @Schema(description = "产值计算比例")
    private BigDecimal calculationRatio;

    @Schema(description = "合同单价（元/m²）")
    private BigDecimal contractUnitPrice;

    @Schema(description = "合计调整系数")
    private BigDecimal totalAdjustmentFactor;

    @Schema(description = "考核面积")
    private BigDecimal assessmentArea;

    @Schema(description = "虚拟产值")
    private BigDecimal virtualOutputValue;

    @Schema(description = "考核产值")
    private BigDecimal assessmentOutputValue;

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

}
