import { AddressResidentialIndicator } from './address-residential-indicator';

export class AddressBase {
  /** @description The full name of the contact contact associated with the address */
  name?: string;
  /** @description The first name of the contact associated with the address */
  first_name?: string;
  /** @description The last name of the contact associated with the address */
  last_name?: string;
  /** @description The email of the contact associated with the address */
  email?: string;
  /** @description The phone number of the contact associated with the address (No Newline Characters) */
  phone_number?: string;
  /** @description The name of the company associated with this address (No Newline Characters) max length 100 characters */
  company_name?: string;
  /** @description The address lines of the address (No Newline Characters) max length 100 characters */
  address_lines?: string[];
  /** @description City or locality (No Newline Characters) */
  city_locality?: string;
  /** @description State or province (No Newline Characters) */
  state_province?: string;
  /** @description Zip or postal code (No Newline Characters) */
  postal_code!: string;
  /** @description ISO 3166-1 two-letter country code max length 2 characters  */
  country_code!: string;
  /** @description Whether the address is residential or commercial */
  address_residential_indicator?: AddressResidentialIndicator;
  /** @description Whether the country of the shipment address is a member of the EU */
  is_eu?: boolean;
  /** @description Additional metadata provided for specific requests */
  address_metadata?: { [key: string]: string };
  /** @description Instructions to help the carrier navigate to the address */
  instructions?: string;
}
