package com.youlai.boot.system.model.vo;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

/**
 * 煤矿需求管理视图对象
 *
 * @author youlaitech
 * @since 2025-07-23 14:40
 */
@Getter
@Setter
@Schema( description = "煤矿需求管理视图对象")
@ColumnWidth(20)
public class MineDemandVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    @ExcelProperty()
    @ExcelIgnore
    private Long id;

    @Schema(description = "所属片区")
    @ExcelProperty(value = "所属片区")
    private String area;
    @Schema(description = "矿名")
    @ExcelProperty(value = "矿名")
    private String mineName;
    @Schema(description = "需求名称")
    @ExcelProperty(value = "需求名称")
    private String demandName;


    //1、新功能需求
//2、设备接入或页面升级
//3、功能优化或问题整改
    private int type;
    @Schema(description = "需求类型")
    @ExcelProperty(value = "需求类型")
    private String typeName;
    @Schema(description = "需求提交人")
    @ExcelProperty(value = "需求提交人")
    private String submitter;
    @Schema(description = "运维人员")
    @ExcelProperty(value = "运维人员")
    private String operationStaff;
    @Schema(description = "通防技术人员")
    @ExcelProperty(value = "通防技术人员")
    private String ventilationTechStaff;
    @Schema(description = "需求说明")
    @ExcelProperty(value = "需求说明")
    private String demandDescription;
    @Schema(description = "提交时间")
    @ExcelProperty(value = "提交时间")
    private LocalDate submitTime;
    @Schema(description = "计划完成时间")
    @ExcelProperty(value = "计划完成时间")
    private LocalDate plannedCompleteTime;
    @Schema(description = "实际开始时间")
    @ExcelProperty(value = "实际开始时间")
    private LocalDate actualStartTime;
    @Schema(description = "实际完成时间")
    @ExcelProperty(value = "实际完成时间")
    private LocalDate actualCompleteTime;
    @Schema(description = "前端人员")
    @ExcelProperty(value = "前端人员")
    private String frontendStaff;
    @Schema(description = "前端版本号")
    @ExcelProperty(value = "前端版本号")
    private String frontendVersion;
    @Schema(description = "后端人员")
    @ExcelProperty(value = "后端人员")
    private String backendStaff;
    @ExcelProperty(value = "后端版本号")
    @Schema(description = "后端版本号")
    private String backendVersion;
    @ExcelIgnore
    private int folderId;

    @ExcelProperty(value = "前端进度")
    private String frontendProgress;
    @ExcelProperty(value = "后端进度")
    private String backendProgress;
    @ExcelProperty(value = "运维进度")
    private String operationProgress;
    @ExcelProperty(value = "前端复杂度")
    private Float frontendComplex;
    @ExcelProperty(value = "后端复杂度")
    private Float backendComplex;
    @ExcelProperty(value = "前端开始时间")
    private LocalDate frontendStartTime;
    @ExcelProperty(value = "后端开始时间")
    @DateTimeFormat("yyyy/MM/dd")
    private LocalDate backendStartTime;
    @ExcelProperty(value = "前端完成时间")
    @DateTimeFormat("yyyy/MM/dd")
    private LocalDate frontendCompleteTime;
    @ExcelProperty(value = "后端完成时间")
    @DateTimeFormat("yyyy/MM/dd")
    private LocalDate backendCompleteTime;
}
