import Joi from 'joi';
import { ApiCodeRegex, ApiCodeValidationMessage } from '@shipengine/connect-runtime';

/** @description Basic details about a carrier zone */
export interface Zone {
  /** @description The name of this zone ex: '1' or 'EU-3' */
  Name: string;
  /** @description This is a human readable description about what the zone is */
  Description?: string;
  /** @description The identifier for this zone that could be used for rating keys. Must be snake cased and unique */
  ApiCode: string;
}

export const ZoneSchema = Joi.object({
  Name: Joi.string().required().max(50),
  Description: Joi.string().optional().max(500),
  ApiCode: Joi.string().required().pattern(ApiCodeRegex, ApiCodeValidationMessage),
});
