forked from dreddsa5dies/goCompany
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypes.go
299 lines (271 loc) · 9.57 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
// Package goCompany это Go (golang) пакет для использования ОГРН онлайн(https://ru.rus.company/) API
package goCompany
import (
"net/url"
"regexp"
)
var (
// блоки для проверки по регулярному выражению
regOgrnip, _ = regexp.Compile(`([0-9]){15}`)
regOgrn, _ = regexp.Compile(`([0-9]){13}`)
regInn, _ = regexp.Compile(`([0-9]){10,12}`)
v = url.Values{}
)
// CompanyInfo структура для базовой информации формата:
// {
// "id" : "7030",
// "name" : "АКЦИОНЕРНОЕ ОБЩЕСТВО "ИНСТИТУТ "СТРОЙПРОЕКТ"",
// "shortName" : "АО "ИНСТИТУТ "СТРОЙПРОЕКТ"",
// "ogrn" : "1027810258673",
// "ogrnDate" : "2002-11-12T00:00:00.000",
// "inn" : "7826688390",
// "kpp" : "781001001"
// }
type CompanyInfo struct {
ID int `json:"id"`
OGRN string `json:"ogrn"`
NAME string `json:"name"`
SHORTNAME string `json:"shortName"`
OGRNDATE string `json:"ogrnDate"`
INN string `json:"inn"`
KPP string `json:"kpp"`
CloseInfo `json:"closeInfo"`
URL string `json:"url"`
}
// Employees - структура данных об сотрудниках компании
type Employees struct {
ID int `json:"id"`
CompanyInfo `json:"company"`
PersonOwner `json:"person"`
Post `json:"post"`
PostName string `json:"postName"`
Phone string `json:"phone"`
}
// Post - структура для описания должности в компании
type Post struct {
ID int `json:"id"`
Name string `json:"name"`
Code string `json:"code"`
FullName string `json:"fullName"`
}
// Founders - структура данных об учредителях компании
type Founders struct {
ID int `json:"id"`
CompanyInfo `json:"company"`
PersonOwner `json:"personOwner"`
Price float64 `json:"price"`
OwnerRussia bool `json:"ownerRussia"`
}
// PersonOwner - данные о владельцах
type PersonOwner struct {
ID int `json:"id"`
FirstName string `json:"firstName"`
MiddleName string `json:"middleName"`
SurName string `json:"surName"`
INN string `json:"inn"`
URL string `json:"url"`
FullName string `json:"fullName"`
FullNameWithInn string `json:"fullNameWithInn"`
}
// Person - данные о человеке по идентификатору {id}
type Person struct {
ID int `json:"id"`
FirstName string `json:"firstName"`
MiddleName string `json:"middleName"`
SurName string `json:"surName"`
URL string `json:"url"`
FullName string `json:"fullName"`
FullNameWithInn string `json:"fullNameWithInn"`
}
// IDData структура данных из ЕГРЮЛ о компании с идентификатором {id}
// пример по ссылке https://ru.rus.company/интеграция/компании/7030/
type IDData struct {
ID int `json:"id"`
OGRN string `json:"ogrn"`
NAME string `json:"name"`
SHORTNAME string `json:"shortName"`
OGRNDATE string `json:"ogrnDate"`
INN string `json:"inn"`
KPP string `json:"kpp"`
URL string `json:"url"`
Okopf `json:"okopf"`
LastUpdateDate string `json:"lastUpdateDate"`
Email string `json:"email"`
AuthorizedCapital `json:"authorizedCapital"`
Address `json:"address"`
MainOkved1 MainOkved `json:"mainOkved1"`
Okved1 Okved `json:"okved1"`
MainOkved2 MainOkved `json:"mainOkved2"`
Okved2 Okved `json:"okved2"`
PfrRegistration `json:"pfrRegistration"`
FssRegistration `json:"fssRegistration"`
Fns `json:"fns"`
ArrAssignee []CoType `json:"assignee"`
ArrPredecessor []CoType `json:"predecessor"`
}
// Okopf - Общероссийский классификатор организационно-правовых форм
type Okopf struct {
ID int `json:"id"`
CODE string `json:"code"`
NAME string `json:"name"`
FULLNAME string `json:"fullname"`
Parent `json:"parent"`
}
// Parent - ID родителя
type Parent struct {
ID int `json:"id"`
}
// AuthorizedCapital - Уставной капитал
type AuthorizedCapital struct {
TypeCapital `json:"type"`
Value float64 `json:"value"`
}
// TypeCapital - Тип уставного капиталаы
type TypeCapital struct {
ID int `json:"id"`
NAME string `json:"name"`
}
// Address - Адрес
type Address struct {
Region Reg `json:"region"`
Street Reg `json:"street"`
House string `json:"house"`
Building string `json:"building"`
Flat string `json:"flat"`
PostalIndex string `json:"postalIndex"`
FullAddress string `json:"fullAddress"`
FullHouseAddress string `json:"fullHouseAddress"`
}
// Reg - Регион или Улица
type Reg struct {
ID int `json:"id"`
NAME string `json:"name"`
AOID string `json:"aoid"`
GUID string `json:"guid"`
PostalCode string `json:"postalCode"`
Level int `json:"level"`
OKATO string `json:"okato"`
RegionType RegType `json:"type"`
RegionCode string `json:"regionCode"`
AutoCode string `json:"autoCode"`
AreaCode string `json:"areaCode"`
CityCode string `json:"cityCode"`
CtarCode string `json:"ctarCode"`
PlaceCode string `json:"placeCode"`
StreetCode string `json:"streetCode"`
ExtrCode string `json:"extrCode"`
SextCode string `json:"sextCode"`
KladrCode string `json:"kladrCode"`
Live bool `json:"live"`
TypeName string `json:"typeName"`
TypeShortName string `json:"typeShortName"`
URL string `json:"url"`
CompanyCount int `json:"companyCount"`
FullName string `json:"fullName"`
}
// RegType - Тип региона или Улицы
type RegType struct {
ID int `json:"id"`
NAME string `json:"name"`
ShortName string `json:"shortName"`
Code string `json:"code"`
Level int `json:"level"`
}
// MainOkved - Основной вид деятельности
type MainOkved struct {
ID int `json:"id"`
NAME string `json:"name"`
Code string `json:"code"`
Parent `json:"parent"`
Description string `json:"description"`
CompanyCount int `json:"companyCount"`
URL string `json:"url"`
FullName string `json:"fullName"`
}
// Okved - сборник кодов, присвоенных видам деятельности компаний
type Okved []struct {
ID int `json:"id"`
NAME string `json:"name"`
Code string `json:"code"`
Parent `json:"parent"`
Description string `json:"description"`
URL string `json:"url"`
FullName string `json:"fullName"`
}
// PfrRegistration - регистрация в ПФР (Пенсионный фонд России)
type PfrRegistration struct {
RegistrationDate string `json:"registrationDate"`
Number string `json:"number"`
OrgData `json:"pfr"`
}
// FssRegistration - регистрация в Фонде социального страхования (ФСС)
type FssRegistration struct {
RegistrationDate string `json:"registrationDate"`
Number string `json:"number"`
OrgData `json:"fss"`
}
// OrgData - данные по ПФР или ФСС
type OrgData struct {
ID int `json:"id"`
NAME string `json:"name"`
Code string `json:"code"`
FullName string `json:"fullName"`
}
// Fns - ФНС (Федеральная налоговая служба)
type Fns struct {
ID int `json:"id"`
NAME string `json:"name"`
Code string `json:"code"`
AddressFns string `json:"address"`
FullName string `json:"fullName"`
}
// CoType - предшественник, правопреемник
type CoType struct {
ID int `json:"id"`
OGRN string `json:"ogrn"`
NAME string `json:"name"`
ShortName string `json:"shortName"`
OgrnDate string `json:"ogrnDate"`
INN string `json:"inn"`
KPP string `json:"kpp"`
CloseInfo `json:"closeInfo"`
URL string `json:"url"`
}
// CloseInfo - информация о закрытии
type CloseInfo struct {
Date string `json:"date"`
CloseReason `json:"closeReason"`
}
// CloseReason - причина закрытия
type CloseReason struct {
ID int `json:"id"`
}
// IEData структура данных о индивидуальном предпринимателе
// пример по ссылке https://ru.rus.company/интеграция/?человек=7528374
type IEData struct {
ID int `json:"id"`
PersonOwner `json:"person"`
LastUpdateDate string `json:"lastUpdateDate"`
MainOkved `json:"mainOkved1"`
Okved `json:"okved1"`
CloseInfo `json:"closeInfo"`
Ogrn string `json:"ogrn"`
OgrnDate string `json:"ogrnDate"`
Citizenship `json:"citizenship"`
Fns `json:"fns"`
TypeIE OrgData `json:"type"`
License []string `json:"license"`
}
// Citizenship - гражданин РФ
type Citizenship struct {
Russian bool `json:"russian"`
}
// Positions - данные о должностях по идентификатору {id}
type Positions struct {
ID int `json:"id"`
CompanyInfo `json:"company"`
PersonOwner `json:"person"`
Post `json:"post"`
PostName string `json:"postName"`
Phone string `json:"phone"`
}