ippc-model 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cites_model/__init__.py +10 -0
- cites_model/ippc_activity.py +45 -0
- cites_model/ippc_common.py +362 -0
- cites_model/ippc_container.py +60 -0
- cites_model/ippc_document.py +55 -0
- cites_model/ippc_equipment.py +129 -0
- cites_model/ippc_expert.py +40 -0
- ippc_model-1.0.0.dist-info/METADATA +24 -0
- ippc_model-1.0.0.dist-info/RECORD +12 -0
- ippc_model-1.0.0.dist-info/WHEEL +5 -0
- ippc_model-1.0.0.dist-info/licenses/LICENSE +661 -0
- ippc_model-1.0.0.dist-info/top_level.txt +1 -0
cites_model/__init__.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Optional, List
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
from sysnet_pyutils.models.general import MetadataTypeBase, MetadataType, LogItemType, ListTypeBase
|
|
7
|
+
|
|
8
|
+
from ippc_model.ippc_common import ActivityStatusEnum
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# Činnost (kategorie) IPPC [Kategorie zařízení. Příloha č. 1 zákona č. 76/2002 Sb.]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ActivityTypeBase(BaseModel):
|
|
15
|
+
category: Optional[str] = Field(default=None, description='Kategorie zařízení (Equipment_Class)')
|
|
16
|
+
code: Optional[str] = Field(default=None, description='Číslo (Equipment_Categories)')
|
|
17
|
+
value_cz: Optional[str] = Field(default=None, description='Popis (Equipment_Categories_Text)')
|
|
18
|
+
value_en: Optional[str] = Field(default=None, description='Popis - Reporting EK (Equipment_Categories_Text_EK)')
|
|
19
|
+
hidden: Optional[bool] = Field(default=False, description='Skrýt kategorii v pohledech (Equipment_Class_Hide)')
|
|
20
|
+
comment: Optional[str] = Field(default=None, description='Poznámka (Comment)')
|
|
21
|
+
metadata: Optional[MetadataTypeBase] = Field(default=None, description='Metadata dokumentu')
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ActivityType(ActivityTypeBase):
|
|
25
|
+
status: Optional[ActivityStatusEnum] = Field(default=ActivityStatusEnum.AC_NEW, description='Stav položky činnosti')
|
|
26
|
+
metadata: Optional[MetadataType] = Field(default=None, description='')
|
|
27
|
+
history: Optional[list[LogItemType]] = Field(default=None, description='Historie dokumentu')
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ActivityListType(ListTypeBase):
|
|
31
|
+
hits: Optional[int] = Field(default=0, description='Hits')
|
|
32
|
+
entries: Optional[List[ActivityType]] = Field(default=None, description='')
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ActivityViewItemType(BaseModel):
|
|
36
|
+
hidden: Optional[bool] = Field(default=False, description='Skrýt kategorii v pohledech (Equipment_Class_Hide)')
|
|
37
|
+
category: Optional[str] = Field(default=None, description='Kategorie zařízení (Equipment_Class)')
|
|
38
|
+
code: Optional[str] = Field(default=None, description='Číslo (Equipment_Categories)')
|
|
39
|
+
value_cz: Optional[str] = Field(default=None, description='Popis (Equipment_Categories_Text)')
|
|
40
|
+
value_en: Optional[str] = Field(default=None, description='Popis - Reporting EK (Equipment_Categories_Text_EK)')
|
|
41
|
+
count_container: Optional[int] = Field(default=0, description='Počet IP')
|
|
42
|
+
count_equipment: Optional[int] = Field(default=0, description='Počet zařízení')
|
|
43
|
+
count_expert: Optional[int] = Field(default=0, description='Počet OZO')
|
|
44
|
+
|
|
45
|
+
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from datetime import datetime
|
|
3
|
+
from enum import Enum
|
|
4
|
+
from typing import Optional, List, Union
|
|
5
|
+
from uuid import UUID
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, Field
|
|
8
|
+
from sysnet_pyutils.data_utils import get_dict_value_list, get_dict_value
|
|
9
|
+
from sysnet_pyutils.models.general import LinkedType, WorkflowType, RegionalValueType
|
|
10
|
+
from sysnet_pyutils.utils import is_valid_uuid
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class IppcDocCodeEnum(Enum):
|
|
14
|
+
REQUEST = 'request'
|
|
15
|
+
SUMMARIZE = 'summarize'
|
|
16
|
+
STATEMENT = 'statement'
|
|
17
|
+
STATEMENT_CENIA = 'statement-cenia'
|
|
18
|
+
DECISION = 'decision'
|
|
19
|
+
APPEAL = 'appeal'
|
|
20
|
+
APPDEC = 'appdec'
|
|
21
|
+
RE_DECISION = 're-decision'
|
|
22
|
+
MINORCHANGE = 'minorchange'
|
|
23
|
+
CANCELED = 'canceled'
|
|
24
|
+
CHANGE = 'change'
|
|
25
|
+
ADDITIONAL = 'additional'
|
|
26
|
+
TERMINATED = 'terminated'
|
|
27
|
+
EXCEPTIONS = 'exceptions'
|
|
28
|
+
APPEAL_RESULT = 'appeal-result'
|
|
29
|
+
INTERRUPTED = 'interrupted'
|
|
30
|
+
RESUMED = 'resumed'
|
|
31
|
+
VALIDATE = 'validate'
|
|
32
|
+
EXEMPTION = 'exemption'
|
|
33
|
+
CLOSED = 'closed'
|
|
34
|
+
|
|
35
|
+
REPORT_CONDITIONS = 'report-conditions'
|
|
36
|
+
REPORT_REVIEW = 'report-review'
|
|
37
|
+
REPORT_CHECK = 'report-check'
|
|
38
|
+
REPORT_CHECK_SUPPLEMENT = 'report-check-supplement'
|
|
39
|
+
XCHG_COMPANY = 'xchg-company'
|
|
40
|
+
MERGED = 'merged'
|
|
41
|
+
|
|
42
|
+
@classmethod
|
|
43
|
+
def has_value(cls, value):
|
|
44
|
+
return value in cls._value2member_map_
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
DOC_CREATES_CONTAINER = [IppcDocCodeEnum.REQUEST, IppcDocCodeEnum.CHANGE, IppcDocCodeEnum.EXCEPTIONS]
|
|
48
|
+
|
|
49
|
+
CONTAINER_TITLES = {
|
|
50
|
+
IppcDocCodeEnum.REQUEST: 'Integrované povolení',
|
|
51
|
+
IppcDocCodeEnum.CHANGE: 'Změna integrovaného povolení',
|
|
52
|
+
IppcDocCodeEnum.EXCEPTIONS: 'Výjimky',
|
|
53
|
+
|
|
54
|
+
IppcDocCodeEnum.REPORT_CONDITIONS: 'Dokumentace k zařízení',
|
|
55
|
+
IppcDocCodeEnum.REPORT_REVIEW: 'Dokumentace k zařízení',
|
|
56
|
+
IppcDocCodeEnum.REPORT_CHECK: 'Dokumentace k zařízení',
|
|
57
|
+
IppcDocCodeEnum.REPORT_CHECK_SUPPLEMENT: 'Dokumentace k zařízení',
|
|
58
|
+
IppcDocCodeEnum.XCHG_COMPANY: 'Dokumentace k zařízení'
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
DOC_PROCEEDING = [
|
|
62
|
+
IppcDocCodeEnum.REQUEST, IppcDocCodeEnum.SUMMARIZE, IppcDocCodeEnum.STATEMENT, IppcDocCodeEnum.STATEMENT_CENIA,
|
|
63
|
+
IppcDocCodeEnum.DECISION, IppcDocCodeEnum.APPEAL, IppcDocCodeEnum.APPDEC, IppcDocCodeEnum.RE_DECISION,
|
|
64
|
+
IppcDocCodeEnum.MINORCHANGE, IppcDocCodeEnum.VALIDATE, IppcDocCodeEnum.CANCELED,
|
|
65
|
+
IppcDocCodeEnum.CHANGE,
|
|
66
|
+
IppcDocCodeEnum.INTERRUPTED, IppcDocCodeEnum.RESUMED, IppcDocCodeEnum.ADDITIONAL, IppcDocCodeEnum.TERMINATED,
|
|
67
|
+
IppcDocCodeEnum.EXEMPTION, IppcDocCodeEnum.EXCEPTIONS, IppcDocCodeEnum.APPEAL_RESULT, IppcDocCodeEnum.CLOSED,
|
|
68
|
+
IppcDocCodeEnum.MERGED]
|
|
69
|
+
|
|
70
|
+
DOC_DOCUMENTATION = [
|
|
71
|
+
IppcDocCodeEnum.REPORT_CONDITIONS, IppcDocCodeEnum.REPORT_REVIEW,
|
|
72
|
+
IppcDocCodeEnum.REPORT_CHECK, IppcDocCodeEnum.REPORT_CHECK_SUPPLEMENT,
|
|
73
|
+
IppcDocCodeEnum.XCHG_COMPANY]
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class IppcAdditionalTypeEnum(Enum):
|
|
77
|
+
DOKUMENT = 'dokument'
|
|
78
|
+
KORESPONDENCE = 'korespondence'
|
|
79
|
+
ZPRAVA = 'zpráva'
|
|
80
|
+
ZAPIS = 'zápis'
|
|
81
|
+
NAVRH = 'návrh'
|
|
82
|
+
ROZHODNUTI = 'rozhodnutí'
|
|
83
|
+
JINA_INFORMACE = 'jiná informace'
|
|
84
|
+
|
|
85
|
+
@classmethod
|
|
86
|
+
def has_value(cls, value):
|
|
87
|
+
return value in cls._value2member_map_
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class ReviewTypeEnum(Enum):
|
|
91
|
+
# 'Typ přezkumu (Plánovaná kontrola|P, Neplánovaná kontrola|U)'
|
|
92
|
+
PLANNED = 'P'
|
|
93
|
+
UNPLANNED = 'U'
|
|
94
|
+
|
|
95
|
+
class DataObjectsEnum(Enum):
|
|
96
|
+
ACTIVITY = 'activity'
|
|
97
|
+
EQUIPMENT = 'equipment'
|
|
98
|
+
EXPERT = 'expert'
|
|
99
|
+
|
|
100
|
+
class DataFormatEnum(Enum):
|
|
101
|
+
CSV = 'csv'
|
|
102
|
+
DDA = 'dda'
|
|
103
|
+
|
|
104
|
+
class IppcStatusEnum(Enum):
|
|
105
|
+
STATUS_0 = '0 - Neautorizováno'
|
|
106
|
+
STATUS_1 = '1 - Publikováno'
|
|
107
|
+
STATUS_2 = '2 - Stručné shrnutí publikováno'
|
|
108
|
+
STATUS_3 = '3 - Stručné shrnutí staženo'
|
|
109
|
+
STATUS_4 = '4 - Vyjádření OZO publikováno'
|
|
110
|
+
STATUS_5 = '5 - Vyjádření OZO staženo'
|
|
111
|
+
STATUS_6 = '6 - Rozhodnuto'
|
|
112
|
+
STATUS_7 = '7 - Uloženo'
|
|
113
|
+
STATUS_8 = '8 - Rozhodnuto (vyjádření nestaženo)'
|
|
114
|
+
STATUS_9 = '9 - Řízení zastaveno'
|
|
115
|
+
STATUS_A = 'A - Dokumentace uložena'
|
|
116
|
+
STATUS_B = 'B - Odvolání'
|
|
117
|
+
STATUS_D = 'D - IP zrušeno'
|
|
118
|
+
STATUS_M = 'M - Řízení sloučeno'
|
|
119
|
+
STATUS_P = 'P - Řízení přerušeno'
|
|
120
|
+
STATUS_Z = 'Z - Provoz ukončen'
|
|
121
|
+
STATUS_Z1 = 'Z1 - Vyňato z režimu'
|
|
122
|
+
STATUS_X = 'X - Bez stavu'
|
|
123
|
+
|
|
124
|
+
@classmethod
|
|
125
|
+
def has_value(cls, value):
|
|
126
|
+
return value in cls._value2member_map_
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class PermittingType(BaseModel):
|
|
130
|
+
date_initiated: Optional[datetime] = Field(
|
|
131
|
+
default=None,
|
|
132
|
+
description='Datum zahájení řízení',
|
|
133
|
+
examples=['2024-05-04T00:00:00Z'])
|
|
134
|
+
date_expired: Optional[datetime] = Field(
|
|
135
|
+
default=None,
|
|
136
|
+
description='Datum stažení dokumentu',
|
|
137
|
+
examples=['2024-05-04T00:00:00Z'])
|
|
138
|
+
date_legal: Optional[datetime] = Field(
|
|
139
|
+
default=None,
|
|
140
|
+
description='Datum nabytí právní moci (date_legal, date_legalized)',
|
|
141
|
+
examples=['2024-05-04T00:00:00Z'])
|
|
142
|
+
date_executed: Optional[datetime] = Field(
|
|
143
|
+
default=None,
|
|
144
|
+
description='Datum provedení změny (date_change). Sem patří data typu date_decided, date_merged, ...',
|
|
145
|
+
examples=['2024-05-04T00:00:00Z'])
|
|
146
|
+
date_decided: Optional[datetime] = Field(
|
|
147
|
+
default=None,
|
|
148
|
+
description='Datum zastavení řízení - zapisovat do date_executed',
|
|
149
|
+
examples=['2024-05-04T00:00:00Z'])
|
|
150
|
+
date_exempted: Optional[datetime] = Field(
|
|
151
|
+
default=None,
|
|
152
|
+
description='Datum vynětí z režimu - zapisovat do date_executed',
|
|
153
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
154
|
+
)
|
|
155
|
+
date_exception: Optional[datetime] = Field(
|
|
156
|
+
default=None,
|
|
157
|
+
description='Datum zadání výjimek - zapisovat do date_executed',
|
|
158
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
159
|
+
)
|
|
160
|
+
date_appealed: Optional[datetime] = Field(
|
|
161
|
+
default=None,
|
|
162
|
+
description='Datum odvolání - zapisovat do date_executed',
|
|
163
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
164
|
+
)
|
|
165
|
+
date_interrupted: Optional[datetime] = Field(
|
|
166
|
+
default=None,
|
|
167
|
+
description='Datum přerušení řízení - zapisovat do date_executed',
|
|
168
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
169
|
+
)
|
|
170
|
+
date_resumed: Optional[datetime] = Field(
|
|
171
|
+
default=None,
|
|
172
|
+
description='Datum obnovení řízení - zapisovat do date_executed',
|
|
173
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
174
|
+
)
|
|
175
|
+
date_appeal_result: Optional[datetime] = Field(
|
|
176
|
+
default=None,
|
|
177
|
+
description='Právní moc odvolání - zapisovat do date_legal',
|
|
178
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
179
|
+
)
|
|
180
|
+
date_closed: Optional[datetime] = Field(
|
|
181
|
+
default=None,
|
|
182
|
+
description='Datum ukončení provozu zařízení',
|
|
183
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
184
|
+
)
|
|
185
|
+
published: Optional[bool] = Field(default=False, description='Dokument publikován (publikuje se autorizací, stahuje uplynutím času' )
|
|
186
|
+
source: Optional[str] = Field(default=None, description='Originál žádosti k nahlédnutí')
|
|
187
|
+
bat_id: Optional[str] = Field(default=None, description='Identifikace BAT')
|
|
188
|
+
processor: Optional[str] = Field(default=None, description='Zpracovatel žádosti')
|
|
189
|
+
unabridged: Optional[bool] = Field(default=False, description='Plné znění')
|
|
190
|
+
eia: Optional[bool] = Field(default=False, description='Posouzení podle zákona o posuzování vlivů na životní prostředí')
|
|
191
|
+
eia_id: Optional[str] = Field(default=None, description='Identifikace záměru v informačním systému EIA')
|
|
192
|
+
permitted: Optional[bool] = Field(default=None, description='Integrované povolení uděleno/neuděleno')
|
|
193
|
+
status_resumed: Optional[IppcStatusEnum] = Field(default=None, description='Stav obnovení')
|
|
194
|
+
|
|
195
|
+
class PermittingItemType(PermittingType):
|
|
196
|
+
documents: Optional[List[LinkedType]] = Field(default=None, description='Seznam dokumentů řízení')
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
class InspectionType(BaseModel):
|
|
200
|
+
date_check_start: Optional[datetime] = Field(
|
|
201
|
+
default=None,
|
|
202
|
+
description='Termín přezkumu nebo kontroly - zahájení',
|
|
203
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
204
|
+
)
|
|
205
|
+
date_check_end: Optional[datetime] = Field(
|
|
206
|
+
default=None,
|
|
207
|
+
description='Termín přezkumu nebo kontroly - ukončení',
|
|
208
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
209
|
+
)
|
|
210
|
+
check_type: Optional[ReviewTypeEnum] = Field(
|
|
211
|
+
default=None,
|
|
212
|
+
description='Typ přezkumu (Plánovaná kontrola, Neplánovaná kontrola)')
|
|
213
|
+
check_office: Optional[str] = Field(
|
|
214
|
+
default=None,
|
|
215
|
+
description='Identifikace kontrolní instituce [identOfficeCheck] (ČIŽP, KHS)',
|
|
216
|
+
)
|
|
217
|
+
finished: Optional[bool] = Field(default=None, description='Zpráva o kontrole (isFinished)')
|
|
218
|
+
check_subject: Optional[str] = Field(default=None, description='Rozsah kontroly a kontrolní období')
|
|
219
|
+
|
|
220
|
+
class InspectionItemType(InspectionType):
|
|
221
|
+
document: Optional[LinkedType] = Field(default=None, description='Propojený dokument')
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
class ReportType(BaseModel):
|
|
225
|
+
date_published: Optional[datetime] = Field(
|
|
226
|
+
default=None, description='Datum podání zprávy', examples=['2024-05-04T00:00:00Z']
|
|
227
|
+
)
|
|
228
|
+
date_period_start: Optional[datetime] = Field(
|
|
229
|
+
default=None,
|
|
230
|
+
description='Období, za které je zpráva podávána (period_start)- zahájení',
|
|
231
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
232
|
+
)
|
|
233
|
+
date_period_end: Optional[datetime] = Field(
|
|
234
|
+
default=None,
|
|
235
|
+
description='Období, za které je zpráva podávána (period_end) - ukončení',
|
|
236
|
+
examples=['2024-05-04T00:00:00Z'],
|
|
237
|
+
)
|
|
238
|
+
complied: Optional[bool] = Field(default=None, description='Podmínky jsou plněny (isComplied)', examples=[True])
|
|
239
|
+
|
|
240
|
+
class ReportItemType(ReportType):
|
|
241
|
+
document: Optional[LinkedType] = Field(default=None, description='Propojený dokument')
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
class ValidationType(BaseModel):
|
|
245
|
+
delivered: Optional[bool] = Field(default=None, description='Dokument doručen MŽP', examples=[False])
|
|
246
|
+
date_delivered: Optional[datetime] = Field(default=None, description='Datum doručení na MŽP')
|
|
247
|
+
id_no: Optional[str] = Field(default=None, description='Čj. MŘP')
|
|
248
|
+
archive_file: Optional[str] = Field(default=None, description='Archivační box', examples=['IPPC/EH/21/01/JCK'])
|
|
249
|
+
comment: Optional[str] = Field(default=None, description='Poznámka')
|
|
250
|
+
|
|
251
|
+
class ValidationItemType(ValidationType):
|
|
252
|
+
document: Optional[LinkedType] = Field(default=None, description='Provázaný dokument')
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
class ChangeOperator(BaseModel):
|
|
256
|
+
date_changed: Optional[datetime] = Field(default=None, description='Datum změny (Date_Changed)')
|
|
257
|
+
date_changed_legal: Optional[datetime] = Field(default=None,
|
|
258
|
+
description='Datum účinnosti změny (Date_Operation_Changed)')
|
|
259
|
+
operator_from: Optional[LinkedType] = Field(default=None, description='Původní provozovatel')
|
|
260
|
+
operator_to: Optional[LinkedType] = Field(default=None, description='Následný provozovatel')
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
class MergeEquipment(BaseModel):
|
|
264
|
+
date_merged: Optional[datetime] = Field(
|
|
265
|
+
default=None,
|
|
266
|
+
description='Datum sloučení IP - zapisovat do date_executed',
|
|
267
|
+
examples=['2024-05-04T00:00:00Z'])
|
|
268
|
+
date_merged_legal: Optional[datetime] = Field(
|
|
269
|
+
default=None,
|
|
270
|
+
description='Datum právní moci sloučení IP - zapisovat do date_legal',
|
|
271
|
+
examples=['2024-05-04T00:00:00Z'])
|
|
272
|
+
equipment_source: Optional[LinkedType] = Field(default=None, description='Zdrojové zařízení (PID_Appliance)')
|
|
273
|
+
equipment_target: Optional[LinkedType] = Field(default=None, description='Cílové zařízení (PID_Appliance_Merged)')
|
|
274
|
+
equipment_merged: Optional[LinkedType] = Field(default=None, description='Sloučené zařízení (PID_Appliance_Merged)')
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
class IppcContainerEnum(Enum):
|
|
278
|
+
PROCEEDING = 'proceeding' # Řízení
|
|
279
|
+
DOCUMENTATION = 'documentation' # Dokumentace
|
|
280
|
+
OTHER = 'other' # Jiný
|
|
281
|
+
|
|
282
|
+
@classmethod
|
|
283
|
+
def has_value(cls, value):
|
|
284
|
+
return value in cls._value2member_map_
|
|
285
|
+
|
|
286
|
+
class ActivityStatusEnum(Enum):
|
|
287
|
+
AC_NEW = '0 - nová'
|
|
288
|
+
AC_ACTIVE = '1 - aktivní'
|
|
289
|
+
AC_EXCLUDED = '9 - vyřazená'
|
|
290
|
+
|
|
291
|
+
@classmethod
|
|
292
|
+
def has_value(cls, value):
|
|
293
|
+
return value in cls._value2member_map_
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
class EquipmentStatusEnum(Enum):
|
|
297
|
+
EQ_NEW = '0 - nové'
|
|
298
|
+
EQ_AUTHORIZED = '1 - autorizováno'
|
|
299
|
+
EQ_ACTIVE = '2 - aktivní'
|
|
300
|
+
EQ_MERGED = 'M - sloučené'
|
|
301
|
+
EQ_CLOSED = 'Z - Provoz ukončen'
|
|
302
|
+
EQ_EXCLUDED = 'Z1 - Vyňato z režimu'
|
|
303
|
+
|
|
304
|
+
@classmethod
|
|
305
|
+
def has_value(cls, value):
|
|
306
|
+
return value in cls._value2member_map_
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
PROCEEDING_TRANSITION = {
|
|
310
|
+
IppcDocCodeEnum.REQUEST: {'node_name': 'Autorizace žádosti o IP', 'status_to': IppcStatusEnum.STATUS_1.value},
|
|
311
|
+
IppcDocCodeEnum.SUMMARIZE: {'node_name': 'Autorizace stručného shrnutí', 'status_to': IppcStatusEnum.STATUS_2.value},
|
|
312
|
+
IppcDocCodeEnum.STATEMENT: {'node_name': 'Autorizace vyjádření OZO', 'status_to': IppcStatusEnum.STATUS_4.value},
|
|
313
|
+
IppcDocCodeEnum.STATEMENT_CENIA: {'node_name': 'Autorizace vyjádření CENIA', 'status_to': IppcStatusEnum.STATUS_4.value},
|
|
314
|
+
IppcDocCodeEnum.DECISION: {'node_name': None, 'status_to': None},
|
|
315
|
+
IppcDocCodeEnum.APPEAL: {'node_name': None, 'status_to': None},
|
|
316
|
+
IppcDocCodeEnum.APPDEC: {'node_name': None, 'status_to': None},
|
|
317
|
+
IppcDocCodeEnum.RE_DECISION: {'node_name': None, 'status_to': None},
|
|
318
|
+
IppcDocCodeEnum.MINORCHANGE: {'node_name': None, 'status_to': None},
|
|
319
|
+
IppcDocCodeEnum.VALIDATE: {'node_name': None, 'status_to': None},
|
|
320
|
+
IppcDocCodeEnum.CANCELED: {'node_name': None, 'status_to': None},
|
|
321
|
+
IppcDocCodeEnum.CHANGE: {'node_name': 'Autorizace podstatné změny IP', 'status_to': IppcStatusEnum.STATUS_1.value},
|
|
322
|
+
IppcDocCodeEnum.INTERRUPTED: {'node_name': None, 'status_to': None},
|
|
323
|
+
IppcDocCodeEnum.RESUMED: {'node_name': None, 'status_to': None},
|
|
324
|
+
IppcDocCodeEnum.ADDITIONAL: {'node_name': None, 'status_to': None},
|
|
325
|
+
IppcDocCodeEnum.TERMINATED: {'node_name': None, 'status_to': None},
|
|
326
|
+
IppcDocCodeEnum.EXEMPTION: {'node_name': None, 'status_to': None},
|
|
327
|
+
IppcDocCodeEnum.EXCEPTIONS: {'node_name': 'Autorizace výjimek z IP', 'status_to': IppcStatusEnum.STATUS_1.value},
|
|
328
|
+
IppcDocCodeEnum.APPEAL_RESULT: {'node_name': None, 'status_to': None},
|
|
329
|
+
IppcDocCodeEnum.CLOSED: {'node_name': None, 'status_to': None},
|
|
330
|
+
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
class IppcWorkflowType(WorkflowType):
|
|
335
|
+
status_from: Optional[IppcStatusEnum] = Field(default=None, description='Předchozí stav')
|
|
336
|
+
status_to: Optional[IppcStatusEnum] = Field(default=None, description='Následný stav')
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
def get_dict_value_regional(data: dict, item_name: str) -> Union[List[RegionalValueType], None]:
|
|
340
|
+
v = get_dict_value_list(data=data, item_name=item_name)
|
|
341
|
+
if not bool(v):
|
|
342
|
+
return None
|
|
343
|
+
out = []
|
|
344
|
+
for item in v:
|
|
345
|
+
x = RegionalValueType(value=item)
|
|
346
|
+
out.append(x)
|
|
347
|
+
return out
|
|
348
|
+
|
|
349
|
+
def get_dict_value_uuid(data: dict, item_name: str) -> Union[str, None]:
|
|
350
|
+
v = get_dict_value(data=data, item_name=item_name)
|
|
351
|
+
if not bool(v):
|
|
352
|
+
return None
|
|
353
|
+
if is_valid_uuid(v):
|
|
354
|
+
return str(UUID(v))
|
|
355
|
+
return None
|
|
356
|
+
|
|
357
|
+
def get_dict_value_rtf(data: dict, item_name: str) -> Union[str, None]:
|
|
358
|
+
v = get_dict_value(data=data, item_name=item_name)
|
|
359
|
+
if not bool(v):
|
|
360
|
+
return None
|
|
361
|
+
out = json.dumps(v)
|
|
362
|
+
return out
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Optional, List
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
from sysnet_pyutils.models.general import LinkedType, ListTypeBase, LogItemType
|
|
7
|
+
|
|
8
|
+
from ippc_model.ippc_common import (
|
|
9
|
+
IppcContainerEnum, IppcStatusEnum, PermittingItemType, InspectionItemType,
|
|
10
|
+
ReportItemType, ValidationItemType, ChangeOperator, MergeEquipment, IppcWorkflowType)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ContainerTypeSuperBase(BaseModel):
|
|
14
|
+
# Kontejner dokumentů IPPC (jedno řízení) [základ]
|
|
15
|
+
name: Optional[str] = Field(
|
|
16
|
+
default=None, description="Název kontejneru", examples=['Výroba obuvnických podešví (PUR-PLASTICS s.r.o.)'])
|
|
17
|
+
content_type: Optional[IppcContainerEnum] = Field(
|
|
18
|
+
default=IppcContainerEnum.PROCEEDING, description='Typ obsahu kontejneru (řízení/dokumentace/jiný)')
|
|
19
|
+
international: Optional[bool] = Field(default=False, description='Mezinárodní mechanismus')
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ContainerTypeBase(ContainerTypeSuperBase):
|
|
23
|
+
# Kontejner dokumentů IPPC (jedno řízení) [zápis dat]
|
|
24
|
+
equipment: Optional[LinkedType] = Field(default=None, description='Zařízení (identifikátor/název)')
|
|
25
|
+
operator: Optional[LinkedType] = Field(default=None, description='Provozovatel (identifikátor/název)')
|
|
26
|
+
has_attachments: Optional[bool] = Field(default=False, description='Kontejner má/nemá přílohy')
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class ContainerTypeListItem(ContainerTypeBase):
|
|
30
|
+
# Kontejner dokumentů IPPC lehký (jedno řízení)
|
|
31
|
+
identifier: Optional[str] = Field(default=None, description="UUID kontejneru (model 46)")
|
|
32
|
+
locked: Optional[bool] = Field(default=False, description='Zámek kontejneru')
|
|
33
|
+
status: Optional[IppcStatusEnum] = Field(default=None, description='Stav řízení v kontejneru (model 47)')
|
|
34
|
+
status_saved: Optional[IppcStatusEnum] = Field(default=None, description='Předchozí stav řízení v kontejneru')
|
|
35
|
+
activity_main: Optional[str] = Field(default=None, description='Hlavní činnost')
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class ContainerTypeLight(ContainerTypeListItem):
|
|
39
|
+
# Kontejner dokumentů IPPC lehký (jedno řízení)
|
|
40
|
+
activity_other: Optional[list[str]] = Field(default=None, description='Ostatní činnosti')
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class ContainerListType(ListTypeBase):
|
|
44
|
+
hits: Optional[int] = Field(default=0, description='Hits')
|
|
45
|
+
entries: Optional[List[ContainerTypeListItem]] = Field(default=None, description='')
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class ContainerType(ContainerTypeLight):
|
|
49
|
+
# Kontejner dokumentů IPPC plný (jedno řízení)
|
|
50
|
+
permitting: Optional[PermittingItemType] = Field(default=None, description='Povolovací řízení')
|
|
51
|
+
inspection: Optional[List[InspectionItemType]] = Field(default=None, description='Informace o kontrole')
|
|
52
|
+
report: Optional[List[ReportItemType]] = Field(default=None, description='Zpráva o plnění')
|
|
53
|
+
validation: Optional[List[ValidationItemType]] = Field(default=None, description='Informace o validaci')
|
|
54
|
+
operator_change: Optional[List[ChangeOperator]] = Field(default=None, description='Informace o změně provozovatele')
|
|
55
|
+
equipment_merge: Optional[List[MergeEquipment]] = Field(default=None, description='Informace o sloučení zařízení')
|
|
56
|
+
expert: Optional[LinkedType] = Field(default=None, description='Odborně způsobilá osoba')
|
|
57
|
+
workflow: Optional[list[IppcWorkflowType]] = Field(default=None, description='Záznam životního cyklu')
|
|
58
|
+
history: Optional[list[LogItemType]] = Field(default=None, description='Historie životního cyklu kontejneru')
|
|
59
|
+
|
|
60
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Optional, List
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
from sysnet_pyutils.models.general import LinkedType, MetadataTypeBase, MetadataType, LogItemType, \
|
|
7
|
+
MetadataTypeEntry, ListTypeBase
|
|
8
|
+
|
|
9
|
+
from ippc_model.ippc_common import (
|
|
10
|
+
IppcDocCodeEnum, IppcAdditionalTypeEnum, PermittingType, InspectionType, ReportType, ValidationType, ChangeOperator, MergeEquipment)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class DocumentTypeBase(BaseModel):
|
|
14
|
+
doc_code: Optional[IppcDocCodeEnum] = Field(default=None, description='Kód dokumentu')
|
|
15
|
+
additional_type: Optional[IppcAdditionalTypeEnum] = Field(default=None, description='Typ dodatečné informace, pokud je doc_code==additional')
|
|
16
|
+
title: Optional[str] = Field(default=None, description='Úplný název dokumentu', examples=['Integrované povolení'])
|
|
17
|
+
subject: Optional[str] = Field(default=None, description='Stručný název dokumentu', examples=['Integrované povolení'])
|
|
18
|
+
version_ozo: Optional[str] = Field(default='1', description='Verze OZO???')
|
|
19
|
+
annotation: Optional[str] = Field(default=None, description='Anotace (Většinou annotation RTF!!!)')
|
|
20
|
+
content: Optional[str] = Field(default=None, description='Plný obsah (Většinou Body RTF!!!)')
|
|
21
|
+
permitting: Optional[PermittingType] = Field(default=None, description='Povolovací řízení')
|
|
22
|
+
inspection: Optional[InspectionType] = Field(default=None, description='Informace o kontrole')
|
|
23
|
+
report: Optional[ReportType] = Field(default=None, description='Zpráva o plnění')
|
|
24
|
+
validation: Optional[ValidationType] = Field(default=None, description='Informace o validaci')
|
|
25
|
+
operator_change: Optional[ChangeOperator] = Field(default=None, description='Informace o změně provozovatele')
|
|
26
|
+
equipment_merge: Optional[MergeEquipment] = Field(default=None, description='Informace o sloučení zařízení')
|
|
27
|
+
expert: Optional[LinkedType] = Field(default=None, description='Odborně způsobilá osoba')
|
|
28
|
+
additional: Optional[List[LinkedType]] = Field(default=None, description='Další propojené dokumenty')
|
|
29
|
+
has_attachments: Optional[bool] = Field(default=False, description='Kontejner má/nemá přílohy')
|
|
30
|
+
metadata: Optional[MetadataTypeBase] = Field(default=None, description='Metadata dokumentu')
|
|
31
|
+
linked_list: Optional[List[LinkedType]] = Field(default=None, description='Propojené dokumenty')
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class DocumentType(DocumentTypeBase):
|
|
35
|
+
operator: Optional[LinkedType] = Field(default=None, description='Aktuální provozovatel')
|
|
36
|
+
equipment: Optional[LinkedType] = Field(default=None, description='Aktuální zařízení')
|
|
37
|
+
activity_main: Optional[str] = Field(default=None, description='Hlavní činnost')
|
|
38
|
+
activity_other: Optional[list[str]] = Field(default=None, description='Ostatní činnosti')
|
|
39
|
+
metadata: Optional[MetadataType] = Field(default=None, description='Metadata dokumentu')
|
|
40
|
+
history: Optional[list[LogItemType]] = Field(default=None, description='Historie dokumentu')
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class DocumentEntryType(BaseModel):
|
|
44
|
+
doc_code: Optional[IppcDocCodeEnum] = Field(default=None, alias='data-code', description='Kód dokumentu')
|
|
45
|
+
additional_type: Optional[IppcAdditionalTypeEnum] = Field(default=None, description='Typ dodatečné informace, pokud je doc_code==additional')
|
|
46
|
+
title: Optional[str] = Field(default=None, description='Úplný název dokumentu', examples=['Integrované povolení'])
|
|
47
|
+
subject: Optional[str] = Field(default=None, description='Stručný název dokumentu', examples=['Integrované povolení'])
|
|
48
|
+
metadata: Optional[MetadataTypeEntry] = Field(default=None, description='Metadata dokumentu')
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class DocumentListType(ListTypeBase):
|
|
52
|
+
hits: Optional[int] = Field(default=0, description='Hits')
|
|
53
|
+
entries: Optional[List[DocumentEntryType]] = Field(default=None, description='Seznam dokumentů')
|
|
54
|
+
|
|
55
|
+
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from datetime import datetime, date
|
|
4
|
+
from typing import Optional, List
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, Field, EmailStr
|
|
7
|
+
from sysnet_pyutils.models.general import (
|
|
8
|
+
RegionalValueType, GeoPointType, CodeValueType, LocationType, MetadataTypeBase, LinkedType,
|
|
9
|
+
MetadataType, LogItemType, TimeLimitedType, ListTypeBase)
|
|
10
|
+
|
|
11
|
+
from ippc_model.ippc_common import EquipmentStatusEnum
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class EquipmentOtherInfo(BaseModel):
|
|
15
|
+
# Další relevantní informace k zařízení
|
|
16
|
+
eprtr: Optional[list[RegionalValueType]] = Field(default=None, description="E-PRTR")
|
|
17
|
+
irz: Optional[list[RegionalValueType]] = Field(default=None, description='Seznam navázaných provozoven IRZ')
|
|
18
|
+
chmu_source: Optional[list[RegionalValueType]] = Field(default=None, description='ČHMÚ - zdroje znečišťování')
|
|
19
|
+
chmu_incinerator: Optional[list[RegionalValueType]] = Field(default=None, description='ČHMÚ - spalovny')
|
|
20
|
+
rlcp: Optional[list[RegionalValueType]] = Field(default=None, description='Reporting LCP')
|
|
21
|
+
isoh: Optional[list[RegionalValueType]] = Field(default=None, description='ISOH')
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class EquipmentReportingBase(BaseModel):
|
|
25
|
+
# Údaje pro reporting do EK (jen zadávané)
|
|
26
|
+
inspire_id: Optional[str] = Field(default=None, description='Inspire ID')
|
|
27
|
+
bat_conclusion_value: Optional[str] = Field(default=None, description='BAT Conclusion Value')
|
|
28
|
+
other_relevant_chapters: Optional[str] = Field(default=None, description='Other Relevant Chapters')
|
|
29
|
+
baseline_report_value: Optional[str] = Field(default=None, description='Baseline Report Value')
|
|
30
|
+
permit_reconsidered: Optional[str] = Field(default=None, description='Permit Reconsidered')
|
|
31
|
+
permit_updated: Optional[datetime] = Field(default=None, description='Permit Updated')
|
|
32
|
+
remarks: Optional[str] = Field(default=None, description='Remarks')
|
|
33
|
+
production_facility_local_id: Optional[str] = Field(default=None, description='Production Facility Local ID')
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class EquipmentReporting(EquipmentReportingBase):
|
|
37
|
+
# Údaje pro reporting do EK (vypočítávané)
|
|
38
|
+
thematic_id: Optional[str] = Field(default=None, description='Thematic ID (výpočet =PID)')
|
|
39
|
+
point_geometry: Optional[GeoPointType] = Field(default=None, description='Point geometry (výpočet se z lokality)')
|
|
40
|
+
condition_of_facility_value: Optional[str] = Field(default=None, description='Condition of facility value (výpočet)')
|
|
41
|
+
title: Optional[str] = Field(default=None, description='Title (výpočet z title)')
|
|
42
|
+
competent_authority_permits: Optional[str] = Field(default=None, description='Competent authority permits (výpočet)')
|
|
43
|
+
competent_authority_inspections: Optional[list[str]] = Field(default=None, description='Competent authority inspections (výpočet)')
|
|
44
|
+
ied_annex_i_activity_value_main: Optional[str] = Field(default=None, description='IED annex i activity value (main activity) (výpočet)')
|
|
45
|
+
ied_annex_i_activity_value_other: Optional[list[str]] = Field(default=None, description='IED annex i activity value (other activity) (výpočet)')
|
|
46
|
+
permit_granted: Optional[bool] = Field(default=None, description='Permit granted (výpočet)')
|
|
47
|
+
bat_derogation_indicator: Optional[bool] = Field(default=None, description='BAT Derogation Indicator (výpočet)')
|
|
48
|
+
site_visit_number: Optional[List[str]] = Field(default=None, description='Site Visit Number (výpočet)')
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class EquipmentMigration(BaseModel):
|
|
52
|
+
date_merged: Optional[date] = Field(default=None, description='Date_Merged')
|
|
53
|
+
date_data_valid: Optional[date] = Field(default=None, description='PLATNOST_DAT')
|
|
54
|
+
pid_merged: Optional[str] = Field(default=None, description='PID_Appliance_Merged')
|
|
55
|
+
pid_authority: Optional[str] = Field(default=None, description='PID_AUTHORITY')
|
|
56
|
+
pid_import: Optional[str] = Field(default=None, description='PID_Import')
|
|
57
|
+
pid_state: Optional[str] = Field(default=None, description='PID_STATE')
|
|
58
|
+
from_user: Optional[str] = Field(default=None, description='From')
|
|
59
|
+
from_user_mail: Optional[EmailStr] = Field(default=None, description='From_userEmail')
|
|
60
|
+
from_user_id: Optional[str] = Field(default=None, description='From_userEmail')
|
|
61
|
+
from_user_name: Optional[str] = Field(default=None, description='From_userName')
|
|
62
|
+
from_person_name: Optional[str] = Field(default=None, description='From_orgName')
|
|
63
|
+
from_person_uuid: Optional[str] = Field(default=None, description='From_orgUUID')
|
|
64
|
+
is_authorized: Optional[bool] = Field(default=False, description='Authorized')
|
|
65
|
+
is_closed: Optional[bool] = Field(default=False, description='isClosed')
|
|
66
|
+
is_compiled: Optional[bool] = Field(default=False, description='isComplied')
|
|
67
|
+
is_eia: Optional[bool] = Field(default=False, description='isEIA')
|
|
68
|
+
is_exempted: Optional[bool] = Field(default=False, description='isExempted')
|
|
69
|
+
is_finished: Optional[bool] = Field(default=False, description='isFinished')
|
|
70
|
+
is_merged: Optional[bool] = Field(default=False, description='isMerged')
|
|
71
|
+
is_updated: Optional[bool] = Field(default=False, description='isUpdated')
|
|
72
|
+
is_verified: Optional[bool] = Field(default=False, description='isVerified')
|
|
73
|
+
rec_no: Optional[int] = Field(default=None, description='REC_NO')
|
|
74
|
+
remarks: Optional[str] = Field(default=None, description='remarks')
|
|
75
|
+
shape: Optional[str] = Field(default=None, description='SHAPE')
|
|
76
|
+
history_status: Optional[List[str]] = Field(default=None, description='StatusHistory')
|
|
77
|
+
history_admin: Optional[List[str]] = Field(default=None, description='AdminLog')
|
|
78
|
+
history_logs: Optional[List[str]] = Field(default=None, description='Log')
|
|
79
|
+
history_events: Optional[List[str]] = Field(default=None, description='LogEvents')
|
|
80
|
+
|
|
81
|
+
@property
|
|
82
|
+
def status(self) -> EquipmentStatusEnum:
|
|
83
|
+
out = EquipmentStatusEnum.EQ_NEW
|
|
84
|
+
if self.is_authorized:
|
|
85
|
+
out = EquipmentStatusEnum.EQ_ACTIVE
|
|
86
|
+
if self.is_merged:
|
|
87
|
+
out = EquipmentStatusEnum.EQ_MERGED
|
|
88
|
+
if self.is_closed:
|
|
89
|
+
out = EquipmentStatusEnum.EQ_CLOSED
|
|
90
|
+
if self.is_exempted:
|
|
91
|
+
out = EquipmentStatusEnum.EQ_EXCLUDED
|
|
92
|
+
return out
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class EquipmentTypeBase(BaseModel):
|
|
96
|
+
title: Optional[str] = Field(
|
|
97
|
+
default=None,
|
|
98
|
+
description='Úplný název zařízení',
|
|
99
|
+
examples=['Výroba gumových obuvnických podešví'])
|
|
100
|
+
name: Optional[str] = Field(default=None, description='Stručný název zařízení', examples=['Výroba obuvnických podešví'])
|
|
101
|
+
operator: Optional[LinkedType] = Field(default=None, description='Aktuální provozovatel')
|
|
102
|
+
location: Optional[LocationType] = Field(default=None, description='Umístění zařízení')
|
|
103
|
+
activity_main: Optional[str] = Field(default=None, description='Hlavní činnost')
|
|
104
|
+
activity_other: Optional[List[str]] = Field(default=None, description='Ostatní činnosti')
|
|
105
|
+
international: Optional[bool] = Field(default=False, description='Mezinárodní mechanismus')
|
|
106
|
+
office_check: Optional[list[CodeValueType]] = Field(default=None, description='Kontrolní orgán')
|
|
107
|
+
waste_water_disposal: Optional[str] = Field(default=None, description='Vypouštění odpadních vod')
|
|
108
|
+
other: Optional[EquipmentOtherInfo] = Field(default=None, description='Další relevantní informace k zařízení ')
|
|
109
|
+
reporting: Optional[EquipmentReportingBase] = Field(default=None, description='Reporting pro EK - zadávané hodnoty')
|
|
110
|
+
metadata: Optional[MetadataTypeBase] = Field(default=None, description='Metadata dokumentu')
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class EquipmentType(EquipmentTypeBase):
|
|
114
|
+
reporting: Optional[EquipmentReporting] = Field(default=None, description='Reporting pro EK - všechny hodnoty')
|
|
115
|
+
merged: Optional[bool] = Field(default=False, description='Zařízení bylo sloučeno se jiným zařízením')
|
|
116
|
+
equipment_merged: Optional[LinkedType] = Field(default=None, description='Sloučené zařízení (PID_Appliance_Merged)')
|
|
117
|
+
authorized: Optional[bool] = Field(default=False, description='Dokument byl autorizován')
|
|
118
|
+
status: Optional[EquipmentStatusEnum] = Field(default=None, description='Stav zařízení')
|
|
119
|
+
metadata: Optional[MetadataType] = Field(default=None, description='Metadata dokumentu')
|
|
120
|
+
history: Optional[list[LogItemType]] = Field(default=None, description='Historie životního cyklu dokumentu')
|
|
121
|
+
operator_history: Optional[list[TimeLimitedType]] = Field(default=None, description='Historie provozovatelů')
|
|
122
|
+
migration: Optional[EquipmentMigration] = Field(default=None, description='Neurčená migrovaná data')
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class EquipmentListType(ListTypeBase):
|
|
126
|
+
hits: Optional[int] = Field(default=0, description='Hits')
|
|
127
|
+
entries: Optional[List[EquipmentType]] = Field(default=None, description='')
|
|
128
|
+
|
|
129
|
+
|