package com.bgycc.smartcanteen.entity;

import java.util.Objects;

public class CommandLog {
    private String action;
    private CommandLogData data;
    private String equipmentId;

    public CommandLog() {
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    public CommandLogData getData() {
        return data;
    }

    public void setData(CommandLogData data) {
        this.data = data;
    }

    public String getEquipmentId() {
        return equipmentId;
    }

    public void setEquipmentId(String equipmentId) {
        this.equipmentId = equipmentId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        CommandLog that = (CommandLog) o;
        return Objects.equals(action, that.action) &&
                Objects.equals(data, that.data) &&
                Objects.equals(equipmentId, that.equipmentId);
    }

    @Override
    public int hashCode() {
        return Objects.hash(action, data, equipmentId);
    }

    @Override
    public String toString() {
        return "CommandLog{" +
                "action='" + action + '\'' +
                ", data=" + data +
                ", equipmentId='" + equipmentId + '\'' +
                '}';
    }

    public static class CommandLogData {
        private String logType;
        private String startTime;
        private String endTime;

        public String getLogType() {
            return logType;
        }

        public void setLogType(String logType) {
            this.logType = logType;
        }

        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;
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            CommandLogData that = (CommandLogData) o;
            return Objects.equals(logType, that.logType) &&
                    Objects.equals(startTime, that.startTime) &&
                    Objects.equals(endTime, that.endTime);
        }

        @Override
        public int hashCode() {
            return Objects.hash(logType, startTime, endTime);
        }

        @Override
        public String toString() {
            return "CommandLogData{" +
                    "logType='" + logType + '\'' +
                    ", startTime='" + startTime + '\'' +
                    ", endTime='" + endTime + '\'' +
                    '}';
        }
    }
}