import Schema from "async-validator";

import { IP_OR_HOSTNAME_VALIDATOR } from './shared';

export const MQTT_SETTINGS_VALIDATOR = new Schema({
  host: [
    { required: true, message: "Host is required" },
    IP_OR_HOSTNAME_VALIDATOR
  ],
  port: [
    { required: true, message: "Port is required" },
    { type: "number", min: 0, max: 65535, message: "Port must be between 0 and 65535" }
  ],
  keep_alive: [
    { required: true, message: "Keep alive is required" },
    { type: "number", min: 1, max: 86400, message: "Keep alive must be between 1 and 86400" }
  ],
  max_topic_length: [
    { required: true, message: "Max topic length is required" },
    { type: "number", min: 16, max: 1024, message: "Max topic length must be between 16 and 1024" }
  ]
});
