import { ApiProperty } from '@midwayjs/swagger';
import { Rule, RuleType } from '@midwayjs/validate';
// 定义包装类型的联合类型
export type PackagingType =
// | PackagingPallet
PackagingPackage;
// | PackagingCourierPak
// | PackagingEnvelope;
// 定义包装类型的枚举,用于 API 文档描述
export enum PackagingTypeEnum {
Pallet = 'pallet',
Package = 'package',
CourierPak = 'courier-pak',
Envelope = 'envelope',
}
export class Address {
@ApiProperty()
@Rule(RuleType.string())
address_line_1: string;
@ApiProperty()
@Rule(RuleType.string())
city: string;
@ApiProperty()
@Rule(RuleType.string())
region: string;
@ApiProperty()
@Rule(RuleType.string())
country: string;
@ApiProperty()
@Rule(RuleType.string())
postal_code: string;
}
export class PhoneNumber {
@ApiProperty()
@Rule(RuleType.string())
number: string;
@ApiProperty()
@Rule(RuleType.string())
extension: string;
}
export class Location {
@ApiProperty()
@Rule(RuleType.string())
name: string;
@ApiProperty({ type: Address })
@Rule(RuleType.object
())
address: Address;
@ApiProperty({ type: PhoneNumber })
@Rule(RuleType.object())
phone_number: PhoneNumber;
@ApiProperty()
@Rule(RuleType.array())
email_addresses: string[];
contact_name?: string;
}
export class Time {
@ApiProperty()
@Rule(RuleType.string())
hour: string;
@ApiProperty()
@Rule(RuleType.string())
minute: string;
}
export enum SignatureRequirementEnum {
NOTREQUIRED = 'not-required',
REQUIRED = 'required',
ADULTREQUIRED = 'adult-required',
}
export class Destination extends Location {
@ApiProperty({ type: Time })
@Rule(RuleType.object