@vendure/core
Version:
A modern, headless ecommerce framework
31 lines (30 loc) • 1.43 kB
TypeScript
import { ID } from '@vendure/common/lib/shared-types';
import { LocaleString, Translatable, Translation } from '../../common/types/locale-types';
import { HasCustomFields } from '../../config/custom-field/custom-field-types';
import { VendureEntity } from '../base/base.entity';
import { CustomRegionFields } from '../custom-entity-fields';
export type RegionType = 'country' | 'province' | string;
/**
* @description
* A Region represents a geographical administrative unit, such as a Country, Province, State, Prefecture etc.
* This is an abstract class which is extended by the {@link Country} and {@link Province} entities.
* Regions can be grouped into {@link Zone}s which are in turn used to determine applicable shipping and taxes for an {@link Order}.
*
* @docsCategory entities
*/
export declare abstract class Region extends VendureEntity implements Translatable, HasCustomFields {
/**
* @description
* A code representing the region. The code format will depend on the type of region. For
* example, a Country code will be a 2-letter ISO code, whereas a Province code could use
* a format relevant to the type of province, e.g. a US state code like "CA".
*/
code: string;
readonly type: RegionType;
name: LocaleString;
parent?: Region;
parentId?: ID;
enabled: boolean;
translations: Array<Translation<Region>>;
customFields: CustomRegionFields;
}