All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.redcom.lib.integration.api.client.dadata.dto.Address Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2018 Boris Fox, REDCOM-Internet CJSC
 * All rights reserved.
 */

package ru.redcom.lib.integration.api.client.dadata.dto;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import lombok.Value;
import org.springframework.lang.Nullable;
import ru.redcom.lib.integration.api.client.dadata.types.*;

import java.math.BigDecimal;
import java.util.UUID;

/*
Название	Длина	Описание
source	250	Исходный адрес одной строкой
result	500	Стандартизованный адрес одной строкой
postal_code	6	Индекс
country	120	Страна
region_fias_id	36	Код ФИАС региона
region_kladr_id	19	Код КЛАДР региона
region_with_type	131	Регион с типом
region_type	10	Тип региона (сокращенный)
region_type_full	50	Тип региона
region	120	Регион
area_fias_id	36	Код ФИАС района в регионе
area_kladr_id	19	Код КЛАДР района в регионе
area_with_type	131	Район в регионе с типом
area_type	10	Тип района в регионе (сокращенный)
area_type_full	50	Тип района в регионе
area	120	Район в регионе
city_fias_id	36	Код ФИАС города
city_kladr_id	19	Код КЛАДР города
city_with_type	131	Город с типом
city_type	10	Тип города (сокращенный)
city_type_full	50	Тип города
city	120	Город
city_area	120	Административный округ (только для Москвы)
city_district_fias_id	36	Код ФИАС района города (заполняется, только если район есть в ФИАС)
city_district_kladr_id	19	Код КЛАДР района города (не заполняется)
city_district_with_type	131	Район города с типом
city_district_type	10	Тип района города (сокращенный)
city_district_type_full	50	Тип района города
city_district	120	Район города
settlement_fias_id	36	Код ФИАС нас. пункта
settlement_kladr_id	19	Код КЛАДР нас. пункта
settlement_with_type	131	Населенный пункт с типом
settlement_type	10	Тип населенного пункта (сокращенный)
settlement_type_full	50	Тип населенного пункта
settlement	120	Населенный пункт
street_fias_id	36	Код ФИАС улицы
street_kladr_id	19	Код КЛАДР улицы
street_with_type	131	Улица с типом
street_type	10	Тип улицы (сокращенный)
street_type_full	50	Тип улицы
street	120	Улица
house_fias_id	36	Код ФИАС дома
house_kladr_id	19	Код КЛАДР дома
house_type	10	Тип дома (сокращенный)
house_type_full	50	Тип дома
house	50	Дом
block_type	10	Тип корпуса/строения (сокращенный)
block_type_full	50	Тип корпуса/строения
block	50	Корпус/строение
flat_type	10	Тип квартиры (сокращенный)
flat_type_full	50	Тип квартиры
flat	50	Квартира
flat_area	50	Площадь квартиры
square_meter_price	50	Рыночная стоимость м²
flat_price	50	Рыночная стоимость квартиры
postal_box	50	Абонентский ящик
fias_id	36	Код ФИАС
HOUSE.HOUSEGUID — если дом найден в ФИАС по точному совпадению;
ADDROBJ.AOGUID — в противном случае;
fias_code		Иерархический код адреса в ФИАС (СС+РРР+ГГГ+ППП+СССС+УУУУ+ДДДД)
fias_level	2	Уровень детализации, до которого адрес найден в ФИАС
0 — страна;
1 — регион;
3 — район;
4 — город;
5 — район города;
6 — населенный пункт;
7 — улица;
8 — дом;
65 — планировочная структура;
90 — доп. территория;
91 — улица в доп. территории;
-1 — иностранный или пустой;
fias_actuality_state		Признак актуальности адреса в ФИАС
0 — актуальный;
1-50 — переименован;
51 — переподчинен;
99 — удален;
kladr_id	19	Код КЛАДР
capital_marker	1	Признак центра района или региона
1 — центр района (Московская обл, Одинцовский р-н, г Одинцово);
2 — центр региона (Новосибирская обл, г Новосибирск);
3 — центр района и региона (Томская обл, г Томск);
4 — центральный район региона (Тюменская обл, Тюменский р-н);
0 — ничего из перечисленного (Московская обл, г Балашиха);
okato	11	Код ОКАТО
oktmo	11	Код ОКТМО
tax_office	4	Код ИФНС для физических лиц
tax_office_legal	4	Код ИФНС для организаций
timezone	10	Часовой пояс
geo_lat	12	Координаты: широта
geo_lon	12	Координаты: долгота
beltway_hit	8	Внутри кольцевой?
IN_MKAD — внутри МКАД (Москва);
OUT_MKAD — за МКАД (Москва или Московская область);
IN_KAD — внутри КАД (Санкт-Петербург);
OUT_KAD — за КАД (Санкт-Петербург или Ленинградская область);
пусто — в остальных случаях;
beltway_distance	3	Расстояние от кольцевой в км.
Заполнено, только если beltway_hit = OUT_MKAD или OUT_KAD, иначе пустое
qc_geo	5	Код точности координат
qc_complete	5	Код пригодности к рассылке
qc_house	5	Признак наличия дома в ФИАС
qc	5	Код проверки адреса
unparsed_parts	250	Нераспознанная часть адреса.
Для адреса «Москва, Митинская улица, 40, вход с торца»
вернет «ВХОД, С, ТОРЦА»
metro		Список ближайших станций метро (до трёх штук)

Address clean service response object example:
[
  {
    "source": "мск сухонска 11/-89",
    "result": "г Москва, ул Сухонская, д 11, кв 89",
    "postal_code": "127642",
    "country": "Россия",
    "region_fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
    "region_kladr_id": "7700000000000",
    "region_with_type": "г Москва",
    "region_type": "г",
    "region_type_full": "город",
    "region": "Москва",
    "area_fias_id": null,
    "area_kladr_id": null,
    "area_with_type": null,
    "area_type": null,
    "area_type_full": null,
    "area": null,
    "city_fias_id": null,
    "city_kladr_id": null,
    "city_with_type": null,
    "city_type": null,
    "city_type_full": null,
    "city": null,
    "city_area": "Северо-восточный",
    "city_district_fias_id": null,
    "city_district_kladr_id": null,
    "city_district_with_type": "р-н Северное Медведково",
    "city_district_type": "р-н",
    "city_district_type_full": "район",
    "city_district": "Северное Медведково",
    "settlement_fias_id": null,
    "settlement_kladr_id": null,
    "settlement_with_type": null,
    "settlement_type": null,
    "settlement_type_full": null,
    "settlement": null,
    "street_fias_id": "95dbf7fb-0dd4-4a04-8100-4f6c847564b5",
    "street_kladr_id": "77000000000283600",
    "street_with_type": "ул Сухонская",
    "street_type": "ул",
    "street_type_full": "улица",
    "street": "Сухонская",
    "house_fias_id": "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255",
    "house_kladr_id": "7700000000028360004",
    "house_type": "д",
    "house_type_full": "дом",
    "house": "11",
    "block_type": null,
    "block_type_full": null,
    "block": null,
    "flat_type": "кв",
    "flat_type_full": "квартира",
    "flat": "89",
    "flat_area": "34.6",
    "square_meter_price": "198113",
    "flat_price": "6854710",
    "postal_box": null,
    "fias_id": "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255",
    "fias_code": "77000000000000028360004",
    "fias_level": "8",
    "fias_actuality_state": "0",
    "kladr_id": "7700000000028360004",
    "capital_marker": "0",
    "okato": "45280583000",
    "oktmo": "45362000",
    "tax_office": "7715",
    "tax_office_legal": "7715",
    "timezone": "UTC+3",
    "geo_lat": "55.8783675",
    "geo_lon": "37.6537388",
    "beltway_hit": "IN_MKAD",
    "beltway_distance": null,
    "qc_geo": 0,
    "qc_complete": 0,
    "qc_house": 2,
    "qc": 0,
    "unparsed_parts": null,
    "metro": [
        {
            "distance": 1.1,
            "line": "Калужско-Рижская",
            "name": "Бабушкинская"
        },
        {
            "distance": 1.2,
            "line": "Калужско-Рижская",
            "name": "Медведково"
        },
        {
            "distance": 2.5,
            "line": "Калужско-Рижская",
            "name": "Свиблово"
        }
    ]
  }
]
*/

/**
 * Cleaned Address container.
 *
 * @author boris
 */
@SuppressWarnings("unused")
@Getter
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Address extends ResponseItem {
	private String result;

	@JsonProperty("postal_code")
	private String postalCode;

	private String country;

	@JsonProperty("region_fias_id")
	private UUID regionFiasId;
	@JsonProperty("region_kladr_id")
	private String regionKladrId;
	@JsonProperty("region_with_type")
	private String regionWithType;
	@JsonProperty("region_type")
	private String regionType;
	@JsonProperty("region_type_full")
	private String regionTypeFull;
	private String region;

	@JsonProperty("area_fias_id")
	private UUID areaFiasId;
	@JsonProperty("area_kladr_id")
	private String areaKladrId;
	@JsonProperty("area_with_type")
	private String areaWithType;
	@JsonProperty("area_type")
	private String areaType;
	@JsonProperty("area_type_full")
	private String areaTypeFull;
	private String area;

	@JsonProperty("city_fias_id")
	private UUID cityFiasId;
	@JsonProperty("city_kladr_id")
	private String cityKladrId;
	@JsonProperty("city_with_type")
	private String cityWithType;
	@JsonProperty("city_type")
	private String cityType;
	@JsonProperty("city_type_full")
	private String cityTypeFull;
	private String city;
	@JsonProperty("city_area")
	private String cityArea;

	@JsonProperty("city_district_fias_id")
	private UUID cityDistrictFiasId;
	@JsonProperty("city_district_kladr_id")
	private String cityDistrictKladrId;
	@JsonProperty("city_district_with_type")
	private String cityDistrictWithType;
	@JsonProperty("city_district_type")
	private String cityDistrictType;
	@JsonProperty("city_district_type_full")
	private String cityDistrictTypeFull;
	@JsonProperty("city_district")
	private String cityDistrict;

	@JsonProperty("settlement_fias_id")
	private UUID settlementFiasId;
	@JsonProperty("settlement_kladr_id")
	private String settlementKladrId;
	@JsonProperty("settlement_with_type")
	private String settlementWithType;
	@JsonProperty("settlement_type")
	private String settlementType;
	@JsonProperty("settlement_type_full")
	private String settlementTypeFull;
	private String settlement;

	@JsonProperty("street_fias_id")
	private UUID streetFiasId;
	@JsonProperty("street_kladr_id")
	private String streetKladrId;
	@JsonProperty("street_with_type")
	private String streetWithType;
	@JsonProperty("street_type")
	private String streetType;
	@JsonProperty("street_type_full")
	private String streetTypeFull;
	private String street;

	@JsonProperty("house_fias_id")
	private UUID houseFiasId;
	@JsonProperty("house_kladr_id")
	private String houseKladrId;
	@JsonProperty("house_type")
	private String houseType;
	@JsonProperty("house_type_full")
	private String houseTypeFull;
	private String house;

	@JsonProperty("block_type")
	private String blockType;
	@JsonProperty("block_type_full")
	private String blockTypeFull;
	private String block;

	@JsonProperty("flat_type")
	private String flatType;
	@JsonProperty("flat_type_full")
	private String flatTypeFull;
	private String flat;

	@JsonProperty("flat_area")
	private BigDecimal flatArea;
	@JsonProperty("square_meter_price")
	private BigDecimal squareMeterPrice;
	@JsonProperty("flat_price")
	private BigDecimal flatPrice;

	@JsonProperty("postal_box")
	private String postalBox;

	@JsonProperty("fias_id")
	private UUID fiasId;
	@JsonProperty("fias_code")
	private String fiasCode;
	@JsonProperty("fias_level")
	private FiasLevel fiasLevel;
	@JsonProperty("fias_actuality_state")
	private FiasActuality fiasActualityState;
	@JsonProperty("kladr_id")
	private String kladrId;

	@JsonProperty("capital_marker")
	private CapitalMarker capitalMarker;
	private String okato;
	private String oktmo;
	@JsonProperty("tax_office")
	private String taxOffice;
	@JsonProperty("tax_office_legal")
	private String taxOfficeLegal;
	private String timezone;

	@JsonProperty("geo_lat")
	private Double geoLat;
	@JsonProperty("geo_lon")
	private Double geoLon;
	@JsonProperty("beltway_hit")
	private BeltwayHit beltwayHit;
	@JsonProperty("beltway_distance")
	private Float beltwayDistance;

	@JsonProperty("qc_geo")
	private QcGeo qcGeo;
	@JsonProperty("qc_complete")
	private QcAddressComplete qcComplete;
	@JsonProperty("qc_house")
	private QcHouse qcHouse;
	@JsonProperty(required = true)
	private QcAddress qc;
	@JsonProperty("unparsed_parts")
	private String unparsedParts;
	private MetroStation[] metro;


	/**
	 * Metro stations nearest to the address.
	 */
	@Value
	@JsonIgnoreProperties(ignoreUnknown = true)
	public static class MetroStation {
		private final float distance;
		@Nullable private final String line;
		@Nullable private final String name;

		@JsonCreator
		private MetroStation(@JsonProperty("distance") final float distance,
		                     @JsonProperty("line") @Nullable final String line,
		                     @JsonProperty("name") @Nullable final String name) {
			this.distance = distance;
			this.line = line;
			this.name = name;
		}
	}

	// This class is not instantiable
	private Address() {	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy