package cn.iocoder.yudao.module.pms.controller.admin.yanfan.sip.device.channel.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - yf监控设备通道信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class YfSipDeviceChannelRespVO {

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

    @Schema(description = "租户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelProperty("租户名称")
    private String tenantName;
    @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4664")
    @ExcelProperty("产品ID")
    private Long productId;
    @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @ExcelProperty("产品名称")
    private String productName;

    @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16646")
    @ExcelProperty("产品ID")
    private Long userId;

    @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelProperty("产品名称")
    private String userName;

    @Schema(description = "设备SipID", requiredMode = Schema.RequiredMode.REQUIRED, example = "761")
    @ExcelProperty("设备SipID")
    private String deviceSipId;

    @Schema(description = "通道SipID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29445")
    @ExcelProperty("通道SipID")
    private String channelSipId;

    @Schema(description = "通道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @ExcelProperty("通道名称")
    private String channelName;

    @Schema(description = "注册时间")
    @ExcelProperty("注册时间")
    private LocalDateTime registerTime;

    @Schema(description = "设备类型", example = "2")
    @ExcelProperty("设备类型")
    private String deviceType;

    @Schema(description = "通道类型", example = "1")
    @ExcelProperty("通道类型")
    private String channelType;

    @Schema(description = "城市编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("城市编码")
    private String cityCode;

    @Schema(description = "行政区域", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("行政区域")
    private String civilCode;

    @Schema(description = "厂商名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("厂商名称")
    private String manufacture;

    @Schema(description = "产品型号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("产品型号")
    private String model;

    @Schema(description = "设备归属", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("设备归属")
    private String owner;

    @Schema(description = "警区", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("警区")
    private String block;

    @Schema(description = "安装地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("安装地址")
    private String address;

    @Schema(description = "父级id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27805")
    @ExcelProperty("父级id")
    private String parentId;

    @Schema(description = "设备入网IP")
    @ExcelProperty("设备入网IP")
    private String ipAddress;

    @Schema(description = "设备接入端口号")
    @ExcelProperty("设备接入端口号")
    private Long port;

    @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("密码")
    private String password;

    @Schema(description = "PTZ类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("PTZ类型")
    private Long ptzType;

    @Schema(description = "PTZ类型描述字符串", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("PTZ类型描述字符串")
    private String ptzTypeText;

    @Schema(description = "设备状态（1-未激活，2-禁用，3-在线，4-离线）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("设备状态（1-未激活，2-禁用，3-在线，4-离线）")
    private Integer status;

    @Schema(description = "设备经度")
    @ExcelProperty("设备经度")
    private Double longitude;

    @Schema(description = "设备纬度")
    @ExcelProperty("设备纬度")
    private Double latitude;

    @Schema(description = "流媒体ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20881")
    @ExcelProperty("流媒体ID")
    private String streamId;

    @Schema(description = "子设备数", requiredMode = Schema.RequiredMode.REQUIRED, example = "8801")
    @ExcelProperty("子设备数")
    private Long subCount;

    @Schema(description = "是否有子设备（1-有, 0-没有）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否有子设备（1-有, 0-没有）")
    private Integer parental;

    @Schema(description = "是否含有音频（1-有, 0-没有）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否含有音频（1-有, 0-没有）")
    private Integer hasAudio;

    @Schema(description = "删除标志（0代表存在 2代表删除）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建者")
    private String createBy;

    @Schema(description = "更新者")
    @ExcelProperty("更新者")
    private String updateBy;

    @Schema(description = "备注", example = "随便")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
    private Integer streamPush = 0;
    private Integer streamRecord = 0;
}
