package com.zt.plat.module.base.controller.admin.plandate.vo;

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

import java.time.LocalDateTime;
import java.util.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 计划数据新增/修改 Request VO")
@Data
public class PlanDateSaveReqVO {

    @Schema(description = "主键 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10584")
    private Long id;

    @Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "计划名称不能为空")
    private String planName;

    @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "计划编码不能为空")
    private String planCoding;

    @Schema(description = "父级ID", example = "6059")
    private Long parentId;

    @Schema(description = "年份")
    private String year;

    @Schema(description = "初始值")
    private BigDecimal initialValue;

    @Schema(description = "平均值")
    private BigDecimal averageValue;

    @Schema(description = "合计值")
    private BigDecimal sumValue;

    @Schema(description = "一月")
    private BigDecimal january;

    @Schema(description = "二月")
    private BigDecimal february;

    @Schema(description = "三月")
    private BigDecimal march;

    @Schema(description = "四月")
    private BigDecimal april;

    @Schema(description = "五月")
    private BigDecimal may;

    @Schema(description = "六月")
    private BigDecimal june;

    @Schema(description = "七月")
    private BigDecimal july;

    @Schema(description = "八月")
    private BigDecimal august;

    @Schema(description = "九月")
    private BigDecimal september;

    @Schema(description = "十月")
    private BigDecimal october;

    @Schema(description = "十一月")
    private BigDecimal november;

    @Schema(description = "十二月")
    private BigDecimal december;

    @Schema(description = "子节点")
    private List<PlanDateSaveReqVO> children;
    @Schema(description = "公司ID")
    private Long companyId;
    @Schema(description = "公司名称")
    private String companyName;
    @Schema(description = "部门ID")
    private Long deptId;
    @Schema(description = "部门名称")
    private Long postId;
    @Schema(description = "岗位ID")
    private Long tenantId;
    @Schema(description = "创建人名称")
    private String creatorName;
    @Schema(description = "更新人名称")
    private String updaterName;
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
    @Schema(description = "删除标志")
    private int deleted;

}