package cn.iocoder.yudao.module.system.controller.admin.biz.vo;

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

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * @Author: jinyd
 * @CreateTime: 2024/10/28  10:35
 * @Description:
 * @Version: 4.0
 */


@Schema(description = "管理后台 - 设备产品新增/修改 Request VO")
@Data
public class DeviceProductSaveReqVO {

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

    @Schema(description = "模型id", example = "30838")
    //@NotNull(message = "模型id不能为空")
    private Long modelId;

    @Schema(description = "设备模型名称", example = "张三")
    //@NotEmpty(message = "设备模型名称不能为空")
    private String deviceModelName;

    @Schema(description = "型号",  example = "王五")
    //@NotEmpty(message = "型号不能为空")
    private String modelName;

    @Schema(description = "设备厂商id", example = "15898")
    private Long deviceManufacturerId;

    @Schema(description = "设备厂商名称", example = "芋艿")
    private String deviceManufacturerName;

    @Schema(description = "设备编码")
    private String deviceCode;

    @Schema(description = "设备mac")
    private String deviceMac;

    @Schema(description = "sn码")
    private String snCode;

    @Schema(description = "设备名称", example = "李四")
    private String deviceName;

    @Schema(description = "序列号")
    private String serialCode;

    @Schema(description = "验证码")
    private String validateCode;

    @Schema(description = "类型，0-健康，1-监控，2-睡眠，3-跌倒，4-安防，5-腕表，6-环境", example = "2")
    private Integer deviceType;

    @Schema(description = "模型类型名称", example = "张三")
    private String deviceTypeName;

    @Schema(description = "设备日期")
    private LocalDateTime produceDate;

    @Schema(description = "产品编码")
    private String productCode;

    @Schema(description = "渠道id", example = "5924")
    private Long channelId;

    @Schema(description = "最后使用时间")
    private LocalDateTime lastUseTime;

    @Schema(description = "销售状态：0-未售出  1-已售出(启用) 2-已售出(禁用)", example = "1")
    private Integer saleStatus;

    @Schema(description = "销售时间")
    private LocalDateTime saleDate;

    @Schema(description = "绑定类型，1-长者，2-房间/楼层/楼栋，3-绑定床位", example = "1")
    private Integer bindingType;

    @Schema(description = "绑定状态，0-未绑定，1-已绑定", example = "2")
    private Integer bindingStatus;

    @Schema(description = "绑定时间")
    private LocalDateTime bindingDate;

    @Schema(description = "绑定用户id", example = "6741")
    //@NotNull(message = "绑定用户id不能为空")
    private Long bindingUserId;

    @Schema(description = "绑定用户名称", example = "芋艿")
    private String bindingUserName;

    @Schema(description = "绑定id", example = "李四")
    private String bindingId;

    @Schema(description = "绑定名称，楼栋/楼层/房间", example = "李四")
    private String bindingName;

    @Schema(description = "关联用户id", example = "30057")
    private Long associationUserid;

    @Schema(description = "关联用户名称", example = "芋艿")
    private String associationUsername;

    @Schema(description = "备注", example = "你猜")
    private String remark;

    @Schema(description = "设备手机号")
    private String devicePhone;

    @Schema(description = "安装位置")
    private String installPosition;

    @Schema(description = "设备位置")
    private String devicePosition;

    @Schema(description = "是否是新设备，1：新设备 0：旧设备")
    private Integer isNew;

    @Schema(description = "在线状态，1-在线，2-离线")
    private Integer onlineStatus;

    @Schema(description = "租户id")
    private Long tenantId;

}
