1. До базової моделі base.LandProps додати нові поля типу boolean:
- hasEncumbrances
- hasJointOwnership
- hasUtilitiesAvailability
Дані поля НЕ обовʼязкові для заповнення при публікації процедури.
1.1. Якщо користувач при публікації Процедури вказав
- hasEncumbrances == false і додатково передає заповнене поле encumbrances необхідно повернути валідаційну помилку "no encumbrances are indicated (hasEncumbrances = false)"
- hasJointOwnership == false і додатково передає заповнене поле jointOwnership необхідно повернути валідаційну помилку "no jointOwnership are indicated (hasJointOwnership = false)"
- hasUtilitiesAvailability == false і додатково передає заповнене поле utilitiesAvailability необхідно повернути валідаційну помилку "no utilitiesAvailability are indicated (hasUtilitiesAvailability = false)"
**Бізнесово:** якщо користувач при публікації Процедури вказує, що немає "Обтяжень" та/або немає "Співвласників" та/або немає "Інженерних мереж", то не даємо заповнити відповідні поля, що може вказувати, що такі параметри насправді є.
1.2. Якщо користувач при публікації Процедури вказав:
- hasEncumbrances == true, то обовʼязково має бути заповнено існуюче поле encumbrances (воно має тип string). Необхідно повернути валідаційну помилку "_при значенні true має бути заповнено поле encumbrances_"
- hasJointOwnership == true, то обовʼязково має бути заповнено існуюче поле jointOwnership (воно має тип string)
- hasUtilitiesAvailability == true, то обовʼязково має бути заповнено існуюче поле utilitiesAvailability (воно має тип string)
1.3.1 Якщо користувач при публікації Процедури передав тільки заповнені існуючі encumbrances та/або jointOwnership та/або utilitiesAvailability і не передав їх відповідники: hasEncumbrances, hasJointOwnership, hasUtilitiesAvailability - необхідно повернути валідаційну помилку _"no "true" value for hasEncumbrances/hasJointOwnership/hasUtilitiesAvailability"_ і не дозволити опублікувати Процедуру без цих полів.
1.3.2. Якщо користувач при публікації Процедури НЕ передав ні has* ні encumbrances/jointOwnership/utilitiesAvailability (або передав пусті значення) - при створенні обʼєкта Процедури необхідно автоматично заповнити відповідні поля hasEncumbrances/hasJointOwnership/hasUtilitiesAvailability значенням false.
**На прикладі:** При створенні процедури користувач передав:
1. hasEncumbrances = true + заповнене поле encumbrances
2. hasJointOwnership = false
3. НЕ передав hasUtilitiesAvailability і не передав utilitiesAvailability, то має створитися Процедура з
hasEncumbrances: true
encumbrances: _text_
hasJointOwnership: false
hasUtilitiesAvailability: false
1.4.1. Необхідно внести зміни в існуючу логіку заповнення поля encumbrances:
- для нових Процедур не дозволяти обирати значення "noEncumbrances" зі словника [encumbrances](https://procedure-sandbox.prozorro.sale/api/dictionaries/encumbrances)
Необхідно повертати валідаційну помилку "invalid value" для поля encumbrances
**Бізнесово:** якщо користувач хоче опублікувати Процедуру у якій "немає Обтяжень", то треба передавати hasEncumbrances == false і не передавати взагалі поле encumbrances
1.4.2. Логіка заповнення полів jointOwnership, utilitiesAvailability залишається без змін: в деяких процедурах це довільне поле, а в деяких це значення зі словника. Тут змін не вносимо: користувач може обрати будь-яке значення зі словника (якщо його передбачено) або заповнити довільним текстом. Зберігається умова із п.1.1. (якщо has* == false, то полів jointOwnership, utilitiesAvailability НЕ очікуємо. Їх немає бути)
2. МІГРАЦІЯ:
2.1. Міграція поля encumbrances
- Якщо існуюче поле encumbrances НЕ заповнено в обʼєкті Процедури (відсутнє), то hasEncumbrances == false + encumbrances НЕ додаємо (його не було і не має зʼявитися)
- Якщо існуюче поле encumbrances заповнено в обʼєкті значеннями:
-- noEncumbrances
-- "-"
-- Відсутні
-- Ні
-- Немає
-- Не зареєстровані
(не враховувати регістр літер - може бути написано "відсутні", "ні" тощо)
то, hasEncumbrances == false, поле encumbrances прибираємо із публічного API response. Краще дотриуватись однієї логіки: якщо hasEncumbrances == false, то encumbrances має бути відсутнім.
- Якщо існуюче поле encumbrances заповнено будь-якими іншими значеннями, окрім перерахованих вище, то hasEncumbrances == true, поле encumbrances залишаємо у тому вигляді, яким воно є без змін.
2. Необхідно змінити для існуючих і додати для нових параметрів
LegalNames для параметрів:
```
"hasEncumbrances": {
"uk_UA": "Присутні обтяження",
"en_US": "Encumbrances are present"
},
"hasJointOwnership": {
"uk_UA": "Наявні співвласники",
"en_US": "Co-owners available"
},
"hasUtilitiesAvailability": {
"uk_UA": "Інженерні мережі наявні",
"en_US": "Utilities are available"
},
"encumbrances": {
"uk_UA": "Інформація про наявні обтяження",
"en_US": "Encumbrances information"
},
"jointOwnership": {
"uk_UA": "Інформація про співвласників",
"en_US": "JointOwnership information"
},
"utilitiesAvailability": {
"uk_UA": "Інформація про інженерні мережі",
"en_US": "Utilities information"
},
```
P.S.: Для процедур BRE/BRD поле utilitiesAvailability є обовʼязковим для заповнення. Відповідно, повʼязане поле hasUtilitiesAvailability має бути true. Залишається на відповідальність Майданчика
4.
- bankRuptcy
1.1.
- якщо продається щось із Land (землі), то поле utilitiesAvailability (Наявність на земельній ділянці комунікацій) є обовʼязковим для заповнення.
- якщо продається щось із JPC (майновий комплекс), то там присутня Land (земля) також. Але поле utilitiesAvailability вже НЕ обовʼязкове для заповнення.
1.2. - якщо продається щось із Land, то поле specialLandPurpose (Цільове призначення земельної ділянки) наявне і є обовʼязковим для заповнення.
- якщо продається щось із JPC, то там присутній Land також. Але поле specialLandPurpose відсутнє взагалі.
5.
поле landIntendedUse (Поточне використання земельної ділянки)
Напрям | Наявність | Коментар | Обовʼязковість |
---|---|---|---|
BSE/BSD/BSW | Так | є в Land і є в JPC | Ні, Ні |
GFE/GFD | Так | є в Land і є в JPC | Ні, Ні |
LLE/LLD/LLP | Так | присутній в JPC (Land відстуній взагалі, як тип item) | Ні |
LRE | Ні | потенційно має бути | - |
LSE/LSP | Ні | потенційно має бути | - |
RCE/RCD | Ні | і не потрібно | - |
SUE/SUD | Ні | і не потрібно | - |
AAE | Ні | і не потрібно | - |
ALE | Так | присутній в JPC (Land відстуній взагалі, як тип item) | Ні |
CSE/CSD/CSI | Так | є в Land і є в JPC | Ні |
BRE/BRD/BRW | Так | є в Land і є в JPC | Ні |
RLE/RLD | Так | присутній в JPC (Land відстуній взагалі, як тип item) | Ні |
CLE/CLD | Так | присутній в JPC (Land відстуній взагалі, як тип item) | Ні |
SSW | Ні | присутній в JPC, + тут є Land і там немає | Ні |
NLE/NLD | Так | є в Land і є в JPC | Ні |
SPE/SPD | Так | є в Land і є в JPC | Ні |
LPE | Так | є в Land і є в JPC | Ні |
LAE/LAP/LAW | Ні | потенційно має бути | - |
APE/APD | Так | є в Land і є в JPC | Ні |