@shipengine/connect-carrier-api
Version:
This is the typescript/javascript definitions for carrier api
35 lines (32 loc) • 1.43 kB
text/typescript
import Joi from 'joi';
import {
PackageRatingGroupDimensions,
PackageRatingGroupDimensionsSchema,
} from './package-rating-group-dimensions';
import {
PackageRatingGroupWeight,
PackageRatingGroupWeightSchema,
} from './package-rating-group-weight';
/** @description Details about how packages are related to rates */
export interface PackageRatingGroup {
/** @description Id of the rating group */
Id: string;
/** @description Id of the package type to which this rating group corresponds */
PackageTypeId: string;
/** @description Name of the package rating group */
Name: string;
/** @description This is the code that will be sent to requests, this should be the same code the carrier's api would expect */
CarrierPackageTypeCode: string;
/** @description Maximum allowable dimensions of packages for the rating group */
DimensionLimits?: PackageRatingGroupDimensions;
/** @description Maximum allowable weight of packages for the rating group */
MaxWeight?: PackageRatingGroupWeight;
}
export const PackageRatingGroupSchema = Joi.object({
Id: Joi.string().required().max(50),
PackageTypeId: Joi.string().uuid().required(),
Name: Joi.string().required().max(50),
CarrierPackageTypeCode: Joi.string().required().max(50), // Copied from package type validation
DimensionLimits: PackageRatingGroupDimensionsSchema.optional(),
MaxWeight: PackageRatingGroupWeightSchema.optional(),
});