import Joi from 'joi';

export type ConnectionNames = 'sandbox' | 'production' | string;

export class ConnectionNamesConfiguration {
  /** @description A unique list of connection names that the integration supports. */
  connection_names!: {
    [key in ConnectionNames]: any;
  };
  /** @description The connection name that will be used when none is selected. */
  default_connection_name!: ConnectionNames;
}

export const ConnectionNamesSchema = Joi.alternatives().try('sandbox', 'production');
export const MapOfObjectsSchema = Joi.object().pattern(ConnectionNamesSchema, Joi.object());
export const ConnectionNamesConfigurationSchema = Joi.object({
  connection_names: MapOfObjectsSchema.required(),
  default_connection_name: ConnectionNamesSchema.required(),
});
