package org.dromara.domain.assets.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.domain.assets.CommunityAssets;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 社区资产视图对象 community_assets
 *
 * @author boman
 * @date 2025-04-11
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CommunityAssets.class)
public class CommunityAssetsVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 资产ID
     */
    @ExcelProperty(value = "资产ID")
    private Long communityAssetId;

    /**
     * 资产类型id
     */
    @ExcelProperty(value = "资产类型id")
    private Long assetId;

    /**
     * 资产类型，如设备、车辆等
     */
    @ExcelProperty(value = "资产类型，如设备、车辆等")
    private String assetName;

    /**
     * 设备名称
     */
    @ExcelProperty(value = "设备名称")
    private String equipmentName;

    /**
     * 设备封面照片的存储路径
     */
    @ExcelProperty(value = "设备封面照片的存储路径")
    private String equipmentCoverPhoto;

    /**
     * 设备编号，唯一标识
     */
    @ExcelProperty(value = "设备编号，唯一标识")
    private String equipmentNumber;

    /**
     * 设备二维码的存储路径或内容
     */
    @ExcelProperty(value = "设备二维码的存储路径或内容")
    private String equipmentQrCode;

    /**
     * 设备状态，如1正常、2维修中、3报废等
     */
    @ExcelProperty(value = "设备状态，如1正常、2维修中、3报废等")
    private String equipmentStatus;

    /**
     * 设备型号
     */
    @ExcelProperty(value = "设备型号")
    private String equipmentModel;

    /**
     * 设备购买时间
     */
    @ExcelProperty(value = "设备购买时间")
    private Date purchaseDate;

    /**
     * 设备用途描述
     */
    @ExcelProperty(value = "设备用途描述")
    private String equipmentPurpose;

    /**
     * 设备存放位置或使用位置
     */
    @ExcelProperty(value = "设备存放位置或使用位置")
    private String equipmentLocation;

    /**
     * 设备购买价格
     */
    @ExcelProperty(value = "设备购买价格")
    private Long equipmentPrice;

    /**
     * 设备入库时间
     */
    @ExcelProperty(value = "设备入库时间")
    private Date storageTime;

    /**
     * 入库操作人
     */
    @ExcelProperty(value = "入库操作人")
    private String storagePerson;

    /**
     * 设备出库时间
     */
    @ExcelProperty(value = "设备出库时间")
    private Date outboundTime;

    /**
     * 出库操作人
     */
    @ExcelProperty(value = "出库操作人")
    private String outboundPerson;

    /**
     * 车牌号（如果是车辆类资产）
     */
    @ExcelProperty(value = "车牌号", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "如=果是车辆类资产")
    private String plateNumber;

    /**
     * 设备照片的存储路径（多个路径用逗号分隔）
     */
    @ExcelProperty(value = "设备照片的存储路径", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "多=个路径用逗号分隔")
    private String equipmentPhotos;

    /**
     * 最近维护日期
     */
    @ExcelProperty(value = "最近维护日期")
    private Date maintenanceDate;

    /**
     * 维护操作人
     */
    @ExcelProperty(value = "维护操作人")
    private String maintenancePerson;

    /**
     * 保修期（月）
     */
    @ExcelProperty(value = "保修期", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "月=")
    private String warrantyPeriod;

    /**
     * 折旧率（百分比）
     */
    @ExcelProperty(value = "折旧率", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "百=分比")
    private String depreciationRate;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


}
