package com.fuyuanshen.app.domain.vo;

import com.fuyuanshen.app.domain.AppDeviceShare;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.fuyuanshen.common.excel.annotation.ExcelDictFormat;
import com.fuyuanshen.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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



/**
 * 设备分享视图对象 app_device_share
 *
 * @author Lion Li
 * @date 2025-07-16
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = AppDeviceShare.class)
public class AppDeviceShareVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ExcelProperty(value = "主键id")
    private Long id;

    /**
     * 设备ID
     */
    @ExcelProperty(value = "设备ID")
    private Long deviceId;

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

    /**
     * 手机号
     */
    @ExcelProperty(value = "手机号")
    private String phonenumber;

    /**
     * 他人分享手机号
     */
    @ExcelProperty(value = "手机号")
    private String otherPhonenumber;

    /**
     * 功能权限（1：灯光模式；2：激光模式；3：开机画面；4：人员信息登记；5：发送信息；6：产品信息）
以逗号分隔
     */
    @ExcelProperty(value = "功能权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=：灯光模式；2：激光模式；3：开机画面；4：人员信息登记；5：发送信息；6：产品信息")
    private String permission;

    /**
     * 设备类型
     */
    private String typeName;

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

    // 设备图片
    private String devicePic;

    /**
     * 在线状态(0离线，1在线)
     */
    private Integer onlineStatus;

    /**
     * 电量 百分比
     */
    private String battery;

    /**
     * 纬度
     */
    private String latitude;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 告警状态(0解除告警，1告警)
     */
    private String alarmStatus;

    /**
     * 创建时间
     */
    private String createTime;

    /**
     * 设备详情页面
     */
    private String detailPageUrl;
}
