...
Бізнес назва - Процес реалізації санкційного активу
Посилання
Вимоги до Майданчиків (напишу до кінця тижня і віддам)
Глоссарій
| Термін | Пояснення |
|---|---|
| Ланцюжок | це master-об’єкт в ЦБД на сервісі Jobber, який представляє бізнес-процес реалізації одного санкційного активу через послідовність автоматично створюваних аукціонних процедур. Ланцюжок створюється Організатором як первинний об’єкт процесу реалізації активу та містить:
Ланцюжок є технічною сутністю, яка використовується для автоматизації перевиставлення активу відповідно до нормативних вимог. |
Master-об’єкт | це основна сутність, яка:
У цьому ТЗ master-об’єктом є SAC. |
| Автоматично створена процедура | це процедура, створена ЦБД без участі Організатора на основі правил Ланцюжка. |
| Попередня процедура | це процедура, на основі якої була створена наступна процедура в Ланцюжку. В розрізі данного ТЗ "Попередня процедура" може бути лише процедурою цього самого одного ланцюжка і вона не може бути створена раніше до ланцюжка. |
| Стартова ціна | це початкова ціна продажу активу для конкретної процедури. Особливості:
Розрахунок і округлення виконуються автоматично ЦБД. |
| Гарантійний внесок | це сума коштів, яку учасник повинен сплатити для участі в аукціоні. Розмір:
Гарантійний внесок:
|
| Реєстраційний внесок | це плата за реєстрацію заяви на участь в аукціоні. Цей внесок:
|
...
- При створенні ланцюжка НЕМАЄ повʼязаного обʼєкта типу "Обʼєкт реєстру". "Ланцюжок" - перший обʼєкт, який створюється на ЦБД в процесі реалізації Санкційного майна
- При створенні ланцюжка Організатор має вказати:
- Дату аукціону для першої процедури
- Період експозиції (tenderPeriod) для другої і третьої процедури в ланцюжку (присутні валідації, які детально описані нижче)
- При створенні ланцюжка Організатор має вказати:
- Стартову ціну реалізації для першого аукціону, а для другого і третього ЦБД розрахує автоматично згідно описаних нижче правил
- розмір Гарантійного внеску для першого аукціону, а для другого і третього ЦБД розрахує автоматично згідно описаних нижче правил
- Мінімальний крок для першого аукціону, а для другого і третього ЦБД розрахує як 1% від стартової ціни відповідного аукціону
- В ланцюжку зберігаються ідентифікатори Процедур, які були автоматично створені цим ланцюжком (в producedEntities)
- Лацюжок складається максимум з трьох процедур, де кожна наступна процедура створюється автоматично за умови, що попередня процедура "неуспішна"
- Якщо будь-яка процедура в Ланцюжку успішна - ланцюжок не продовжується.
Обʼєкт SanctionedAuctionChain
...
| field name | required for publishing | type | readOnly | x-legalNameUa | x-legalNameEn | comment | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| periods | + | base.PeriodSpec | false | Інформація про періоди аукціонів | Periods info |
При публікації "ланцюжка", ЦБД очікує, що в extraSpecs обовʼязково буде передано обʼєкт для кожної процедури. Тобто, всього три обʼєкта в extraSpecs, бо процедур в ланцюжку три. Валідації На рівні ЦБД необхідно встановити валідації для pipelineMethod: sanctionedAuctionChain:
Приклад для value.amount < 250 000 000 (двісті п'ятдесят мільйонів):
| ||||||||||||||||||||||||||||||||||
| dutchStep | + | base.DutchStep | false | Крок голландського раунду | Dutch step | Поля dutchStepPercent та dutchStepValue автогенеруються на рівні ЦБД, без можливості внесення змін Організатором
|
_specs
1. Коли тільки створено ланцюжок (status: pending), відповідь на запит має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури:
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус кожної Процедури - scheduled;
- sellingMethod:
- Перша Процедура - sanctionedAsset-english
- Друга Процедура - sanctionedAsset-english
- Третя Процедура - sanctionedAsset-dutch
- Стартова ціна Об'єкта (value):
- Перша Процедура - initialProps.value
- Друга Процедура - 50% від initialProps.value
- Третя Процедура - 50% від initialProps.value
- Крок аукціону (minimalStep):
- Для Першої Процедури - значення, що вказав Організатор при створенні в initialProps.minimalStep
- Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
- Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
- Дата проведення аукціону (periods.periodName:auctionPeriod:startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі extraSpecs.periods:"auctionPeriod".startDate при створенні ланцюжка
- Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
- Період між аукціонами (periods.periodName:"tenderPeriod".duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ланцюжка у extraSpecs.periods.periodName:"tenderPeriod".duration
- Розмір гарантійного внеску (guarantee):
- Для Першої Процедури значення, що Організатор вніс у initialProps.guarantee
- Для Другої і Третьої Процедури по формулі: initialProps.guarantee == розраховується по формулі, залежить від Стартової ціни. Формули ТУТ
2. Коли створено Першу Процедуру (status: active), відповідь має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус Процедури (status):
- Перша Процедура - active
- Друга і Третя Процедура - scheduled
- sellingMethod (sellingMethod):
- Перша Процедура - sanctionedAsset-english
- Друга Процедура - sanctionedAsset-english
- Третя Процедура - sanctionedAsset-dutch
- Стартова ціна Об'єкта (value):
- Перша Процедура - initialProps.value
- Друга Процедура - 50% від initialProps.value
- Третя Процедура - 50% від initialProps.value
- Крок аукціону (minimalStep):
- Для Першої Процедури - значення, що вказав Організатор при створенні ланцюжка у initialProps.minimalStep
- Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
- Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
- Дата проведення аукціону (periods.periodName:"auctionPeriod":startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ланцюжка
- Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
- Період між аукціонами (periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ланцюжку у tenderPeriodDuration
- Розмір гарантійного внеску (guarantee):
- Для Першої Процедури значення, що Організатор вніс у initialProps.guarantee
- Для Другої і Третьої Процедури initialProps.guarantee розраховується по формулі, залежить від Стартової ціни. Формули ТУТ
- auctionID створеної Першої Процедури (relatedEntities)
- Для першої Процедури вказано
- Для другої і третьої - ні
3. Коли створено Другу Процедуру (status: active), відповідь має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус Процедури (status):
- Перша Процедура - unsuccessful
- Друга Процедура - active
- Третя Процедура - scheduled
- sellingMethod (sellingMethod):
- Перша Процедура - sanctionedAsset-english
- Друга Процедура - sanctionedAsset-english
- Третя Процедура - sanctionedAsset-dutch
- Стартова ціна Об'єкта (value):
- Перша Процедура - initialProps.value
- Друга Процедура - 50% від initialProps.value АБО якщо Організатор відредагував в Першій процедурі "Стартову ціну", то необхідно змінити значення на 50% від Стартової ціни Першої процедури (до розробки: це можливо без довгої розробки?)
- Третя Процедура - 50% від initialProps.value
- Крок аукціону (minimalStep):
- Для Першої Процедури - значення, що вказав Організатор при створенні ланцюжка у initialProps.minimalStep
- Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури
- Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури
- Дата проведення аукціону (periods.periodName:"auctionPeriod":startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ланцюжка
- Для Другої і Третьої Процедури поле виводити не потрібно.
- Період між аукціонами (periods.periodName:"tenderPeriod".duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ланцюжка у tenderPeriod.duration
- Розмір гарантійного внеску (guarantee):
- Для Першої Процедури значення, що Організатор вніс у initialProps.guarantee
- Для Другої Процедури initialProps.guarantee розраховується по формулі, залежить від Стартової ціни. Формули ТУТ (Варто в розрахунок брати Стартову ціну Другої створеної процедури)
- Для Третьої Процедури initialProps.guarantee розраховується по формулі, залежить від Стартової ціни. Формули ТУТ
- auctionID створеної Першої Процедури (relatedEntities)
- Для першої і другої Процедури вказано
- Для третьої - ні
4. Коли створено Третю Процедуру (status: active), відповідь має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус Процедури (status):
- Перша Процедура - unsuccessful
- Друга Процедура - unsuccessful
- Третя Процедура - active
- sellingMethod (sellingMethod):
- Перша Процедура - sanctionedAsset-english
- Друга Процедура - sanctionedAsset-english
- Третя Процедура - sanctionedAsset-dutch
- Стартова ціна Об'єкта (value):
- Перша Процедура - initialProps.value
- Друга Процедура - 50% від initialProps.value АБО якщо Організатор відредагував в Першій процедурі "Стартову ціну", то необхідно змінити значення на 50% від Стартової ціни Першої процедури (до розробки: це можливо без довгої розробки?)
- Третя Процедура - 50% від initialProps.value АБО якщо Організатор відредагував в Другій процедурі "Стартову ціну", то необхідно змінити значення на 50% від Стартової ціни Другої процедури (до розробки: це можливо без довгої розробки?)
- Крок аукціону (minimalStep):
- Для Першої Процедури - значення, що вказав Організатор при створенні у initialProps.minimalStep
- Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
- Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
- Дата проведення аукціону (periods.periodName:"auctionPeriod":startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ланцюжка
- Для Другої і Третьої Процедури поле виводити не потрібно.
- Період між аукціонами (periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ланцюжка у tenderPeriod.duration
- Розмір гарантійного внеску (guarantee):
- Для Першої Процедури значення, що Організатор вніс у initialProps.guarantee
- Для Другої Процедури initialProps.guarantee розраховується по формулі, залежить від Стартової ціни. Формули ТУТ (Варто в розрахунок брати Стартову ціну Другої створеної процедури)
- Для Третьої Процедури initialProps.guarantee розраховується по формулі, залежить від Стартової ціни. Формули ТУТ (Варто в розрахунок брати Стартову ціну Третьої створеної процедури)
- auctionID Першої Процедури, auctionID Другої Процедури і auctionID створеної Третьої Процедури
Приклад:
| Code Block |
|---|
"_specs": {
"pipeline": {
"stages": [
{
"producedEntities": [
{
"type": "procedure",
"_id": "69945eec410e8611f93bb132",
"objectId": "SAE001-UA-20260320-17748",
"url": "/api/procedures/69945eec410e8611f93bb132"
}
],
"status": "unsuccessful",
"name": "sa-english-first",
"calculatedData": {
"value": {
"currency": "UAH",
"amount": 100000,
"valueAddedTaxIncluded": true
},
"guarantee": {
"currency": "UAH",
"amount": 10000
},
"registrationFee": {
"currency": "UAH",
"amount": 800
},
"tenderAttempts": 1,
"auctionPeriod": {
"startDate": "2026-03-20T14:30:31.326000+02:00"
},
"sellingMethod": "sanctionedAsset-english",
"minimalStep": {
"currency": "UAH",
"amount": 1200
}
}
},
{
"producedEntities": [
{
"type": "procedure",
"_id": "69945f5d410e8611f93bb134",
"objectId": "SAE001-UA-20260417-44432",
"url": "/api/procedures/69945f5d410e8611f93bb134"
}
],
"status": "active",
"name": "sa-english-second",
"calculatedData": {
"value": {
"currency": "UAH",
"amount": 50000,
"valueAddedTaxIncluded": true
},
"guarantee": {
"currency": "UAH",
"amount": 10000
},
"registrationFee": {
"currency": "UAH",
"amount": 800
},
"sellingMethod": "sanctionedAsset-english",
"tenderAttempts": 2,
"tenderPeriod": [
{
"unit": "с_day",
"quantity": 25
}
],
"minimalStep": {
"currency": "UAH",
"amount": 500
}
}
},
{
"producedEntities": [],
"status": "sheduled",
"name": "sa-dutch-first",
"calculatedData": {
"value": {
"currency": "UAH",
"amount": 50000,
"valueAddedTaxIncluded": true
},
"guarantee": {
"currency": "UAH",
"amount": 10000
},
"registrationFee": {
"currency": "UAH",
"amount": 800
},
"sellingMethod": "sanctionedAsset-dutch",
"tenderAttempts": 3,
"tenderPeriod": [
{
"unit": "c_day",
"quantity": 35
}
],
"minimalStep": {
"currency": "UAH",
"amount": 500
}
}
}
]
}
} |
...