COOPENOMICS  v1
Кооперативная Экономика
Пространство имен Capital::RoleRequests

Пространства имен

namespace  Direction
 Направление: пайщик просит сам (REQUEST) или мастер инвайтит кандидата (INVITE).
 
namespace  RequestType
 Тип заявки: «дай мне роль/допуск L2» или «обнови мне approved-ставку».
 
namespace  Role
 Допустимые роли заявки на L2-допуск. Контрибьюторы и инвесторы — L1, через role_requests не идут.
 
namespace  Status
 Статусы заявки на роль / обновление approved-ставки.
 

Классы

struct  role_request
 Очередь заявок на L2-допуск/инвайт и на обновление approved-ставки. Подробнее...
 

Определения типов

typedef eosio::multi_index< "rolerequests"_n, role_request, indexed_by<"byhash"_n, const_mem_fun< role_request, checksum256, &role_request::by_request_hash > >, indexed_by<"byprojuser"_n, const_mem_fun< role_request, uint128_t, &role_request::by_project_user > > > role_requests_index
 

Функции

std::optional< role_request > get_role_request (eosio::name coopname, const checksum256 &request_hash)
 
role_request get_role_request_or_fail (eosio::name coopname, const checksum256 &request_hash)
 
void create (eosio::name coopname, const checksum256 &request_hash, const checksum256 &project_hash, eosio::name username, eosio::name master, eosio::name role, const eosio::asset &rate_per_hour, uint64_t hours_per_day, eosio::name direction, eosio::name request_type, const std::string &description)
 
void validate_role_or_fail (eosio::name role)
 Проверяет, что role входит в допустимый набор Role::{CREATOR, AUTHOR, MASTER}. Контрибьюторы и инвесторы — это L1-роли и через role_requests не идут. Не применяется к заявкам RequestType::RATE_UPDATE (там role = Role::NONE). Подробнее...
 
void apply_role_to_project (eosio::name coopname, const checksum256 &project_hash, eosio::name username, eosio::name role)
 Применяет заявленную роль к проекту через inline action: Role::AUTHOR → addauthor, Role::MASTER → setmaster, Role::CREATOR → no-op (creator фиксируется фактически при первом createcmmt). Подробнее...
 
void approve (eosio::name coopname, uint64_t request_id, const eosio::asset &approved_rate, uint64_t approved_hours)
 
void decline (eosio::name coopname, uint64_t request_id, const std::string &reason)
 

Типы

◆ role_requests_index

typedef eosio::multi_index< "rolerequests"_n, role_request, indexed_by<"byhash"_n, const_mem_fun<role_request, checksum256, &role_request::by_request_hash> >, indexed_by<"byprojuser"_n, const_mem_fun<role_request, uint128_t, &role_request::by_project_user> >> Capital::RoleRequests::role_requests_index

Функции

◆ apply_role_to_project()

void Capital::RoleRequests::apply_role_to_project ( eosio::name  coopname,
const checksum256 &  project_hash,
eosio::name  username,
eosio::name  role 
)
inline

Применяет заявленную роль к проекту через inline action: Role::AUTHOR → addauthor, Role::MASTER → setmaster, Role::CREATOR → no-op (creator фиксируется фактически при первом createcmmt).

Вызывается из approverole/acceptinvite после фиксации решения, чтобы заявленная при подаче роль немедленно отражалась в реестре участников. Inline action идёт под permission coopname — председатель/backend подписывает.

◆ approve()

void Capital::RoleRequests::approve ( eosio::name  coopname,
uint64_t  request_id,
const eosio::asset &  approved_rate,
uint64_t  approved_hours 
)
inline

◆ create()

void Capital::RoleRequests::create ( eosio::name  coopname,
const checksum256 &  request_hash,
const checksum256 &  project_hash,
eosio::name  username,
eosio::name  master,
eosio::name  role,
const eosio::asset &  rate_per_hour,
uint64_t  hours_per_day,
eosio::name  direction,
eosio::name  request_type,
const std::string &  description 
)
inline

◆ decline()

void Capital::RoleRequests::decline ( eosio::name  coopname,
uint64_t  request_id,
const std::string &  reason 
)
inline

◆ get_role_request()

std::optional< role_request > Capital::RoleRequests::get_role_request ( eosio::name  coopname,
const checksum256 &  request_hash 
)
inline

◆ get_role_request_or_fail()

role_request Capital::RoleRequests::get_role_request_or_fail ( eosio::name  coopname,
const checksum256 &  request_hash 
)
inline

◆ validate_role_or_fail()

void Capital::RoleRequests::validate_role_or_fail ( eosio::name  role)
inline

Проверяет, что role входит в допустимый набор Role::{CREATOR, AUTHOR, MASTER}. Контрибьюторы и инвесторы — это L1-роли и через role_requests не идут. Не применяется к заявкам RequestType::RATE_UPDATE (там role = Role::NONE).