69 lines
1.3 KiB
TypeScript
69 lines
1.3 KiB
TypeScript
import { Entity, Column, Index, PrimaryGeneratedColumn } from 'typeorm';
|
|
|
|
@Entity()
|
|
export class Geoname {
|
|
@PrimaryGeneratedColumn()
|
|
geonameid: number;
|
|
|
|
@Index()
|
|
@Column({ length: 200 })
|
|
name: string;
|
|
|
|
@Column({ nullable: true, length: 200 })
|
|
asciiname: string;
|
|
|
|
@Column({ nullable: true, type: 'text' })
|
|
alternatenames: string;
|
|
|
|
@Column({ nullable: true, type: 'real' })
|
|
latitude: number;
|
|
|
|
@Column({ nullable: true, type: 'real' })
|
|
longitude: number;
|
|
|
|
// http://www.geonames.org/export/codes.html
|
|
@Index()
|
|
@Column({ type: 'char', length: 1 })
|
|
featureclass: string;
|
|
|
|
// http://www.geonames.org/export/codes.html
|
|
@Index()
|
|
@Column({ length: 10 })
|
|
featurecode: string;
|
|
|
|
@Index()
|
|
@Column({ length: 2 })
|
|
countrycode: string;
|
|
|
|
@Column({ nullable: true, length: 200 })
|
|
cc2: string;
|
|
|
|
@Column({ nullable: true, length: 20 })
|
|
admin1code: string;
|
|
|
|
@Column({ nullable: true, length: 80 })
|
|
admin2code: string;
|
|
|
|
@Column({ nullable: true, length: 20 })
|
|
admin3code: string;
|
|
|
|
@Column({ nullable: true, length: 20 })
|
|
admin4code: string;
|
|
|
|
@Column({ nullable: true, type: 'bigint' })
|
|
population: number;
|
|
|
|
@Column({ nullable: true })
|
|
elevation: number;
|
|
|
|
@Column({ nullable: true })
|
|
dem: number;
|
|
|
|
@Index()
|
|
@Column({ nullable: true })
|
|
timezone: string;
|
|
|
|
@Column({ type: 'date' })
|
|
moddate: string;
|
|
}
|