package com.yfd.monitor.gdw2019.bean;


import com.yfd.monitor.utils.DateUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import org.jetbrains.annotations.NotNull;

import java.time.Instant;
import java.time.temporal.TemporalAccessor;

/**
 * @description:设备录像bean
 * @date:   2020年5月8日 下午2:06:54
 */
@Schema(description = "设备录像详情")
public class RecordItem  implements Comparable<RecordItem>{

	@Schema(description = "设备编号")
	private String deviceId;

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

	@Schema(description = "文件路径名 (可选)")
	private String filePath;

	@Schema(description = "录像文件大小,单位:Byte(可选)")
	private String fileSize;

	@Schema(description = "录像地址(可选)")
	private String address;

	@Schema(description = "录像开始时间(可选)")
	private String startTime;

	@Schema(description = "录像结束时间(可选)")
	private String endTime;

	@Schema(description = "保密属性(必选)缺省为0;0:不涉密,1:涉密")
	private int secrecy;

	@Schema(description = "录像产生类型(可选)time或alarm 或 manua")
	private String type;

	@Schema(description = "录像触发者ID(可选)")
	private String recorderId;

	public String getDeviceId() {
		return deviceId;
	}

	public void setDeviceId(String deviceId) {
		this.deviceId = deviceId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getFilePath() {
		return filePath;
	}

	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getStartTime() {
		return startTime;
	}

	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}

	public String getEndTime() {
		return endTime;
	}

	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}

	public int getSecrecy() {
		return secrecy;
	}

	public void setSecrecy(int secrecy) {
		this.secrecy = secrecy;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getRecorderId() {
		return recorderId;
	}

	public void setRecorderId(String recorderId) {
		this.recorderId = recorderId;
	}

	public String getFileSize() {
		return fileSize;
	}

	public void setFileSize(String fileSize) {
		this.fileSize = fileSize;
	}

	@Override
	public int compareTo(@NotNull RecordItem recordItem) {
		TemporalAccessor startTimeNow = DateUtil.formatter.parse(startTime);
		TemporalAccessor startTimeParam = DateUtil.formatter.parse(recordItem.getStartTime());
		Instant startTimeParamInstant = Instant.from(startTimeParam);
		Instant startTimeNowInstant = Instant.from(startTimeNow);
		if (startTimeNowInstant.equals(startTimeParamInstant)) {
			return 0;
		}else if (Instant.from(startTimeParam).isAfter(Instant.from(startTimeNow)) ) {
			return -1;
		}else {
			return 1;
		}

	}
}
