package cn.iocoder.yudao.module.asset.controller.admin.assetinfo.vo;

import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 固定资产信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AssetInfoRespVO {

    @Schema(description = "资产信息主键自增id")
    // @ExcelProperty("资产信息主键自增id")
    private Long id;

    @Schema(description = "资产名称")
    @ExcelProperty("资产名称")
    private String name;

    @Schema(description = "资产编号：年月日+uuid")
    @ExcelProperty("资产编号")
    private String assetInfoUuid;

    @Schema(description = "资产型号")
    @ExcelProperty("资产型号")
    private String typeNumber;

    @Schema(description = "资产序列号")
    @ExcelProperty("资产序列号")
    private String serialNumber;

    @Schema(description = "购买日期")
    @ExcelProperty("购买日期")
    private String purchaseDate;

    @Schema(description = "资产化日期")
    @ExcelProperty("资产化日期")
    private String capitalizationDate;

    @Schema(description = "折旧年限(大于0的自然数)")
    @ExcelProperty("折旧年限")
    private Integer depreciationYear;

    @Schema(description = "资产状态：0可用 1占用 2报废")
    // @ExcelProperty("资产状态：0可用 1占用 2报废")
    private String assetState;

    @Schema(description = "资产状态描述：0可用 1占用 2报废")
    @ExcelProperty("资产状态")
    private String assetStateDesc;

    @Schema(description = "领用人id")
    // @ExcelProperty("领用人id")
    private Long receiveEmployeeId;

    @Schema(description = "领用人姓名")
    @ExcelProperty("领用人")
    private String receiveEmployeeName;

    @Schema(description = "领用信息表主键id")
    // @ExcelProperty("领用信息表主键id")
    private Long receiveInfoId;

    @Schema(description = "资产归属部门")
    // @ExcelProperty("资产归属部门")
    private Long assetDeptId;

    @Schema(description = "资产归属部门名称")
    @ExcelProperty("所属部门")
    private String assetDeptName;

    @Schema(description = "资产归属地")
    @ExcelProperty("资产归属地")
    private String assetPlace;

    @Schema(description = "资产管理负责人")
    // @ExcelProperty("资产管理负责人")
    private Long assetManagerEmployeeId;

    @Schema(description = "资产管理负责人名称")
    @ExcelProperty("资产负责人")
    private String assetManagerEmployeeName;

    @Schema(description = "报废日期")
    // @ExcelProperty("报废日期")
    private String retirementDate;

    @Schema(description = "报废原因")
    // @ExcelProperty("报废原因")
    private String retirementReason;

    @Schema(description = "单据状态：0：已完成，1：作废")
    // @ExcelProperty("单据状态：0：已完成，1：作废")
    private String status;

    @Schema(description = "单据状态名称：0：已完成，1：作废")
    // @ExcelProperty("单据状态名称：0：已完成，1：作废")
    private String statusDesc;

    @Schema(description = "备注")
    // @ExcelProperty("备注")
    private String remarks;

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

    @Schema(description = "附件列表")
    private List<FileDTO> fileList;

    @Schema(description = "附件id列表")
    private List<Long> fileIdList;
}