COOPENOMICS  v1
Кооперативная Экономика
table_marketplace_requests.hpp
См. документацию.
1#pragma once
2
3#include <eosio/asset.hpp>
4#include <eosio/crypto.hpp>
5#include <eosio/eosio.hpp>
6#include <string>
7#include <vector>
8
9#include "../consts.hpp"
10#include "../core/document.hpp"
11#include "../core/utils.hpp"
12#include "document_core.hpp"
13
14namespace Marketplace {
15
16using namespace eosio;
17
18struct [[eosio::table, eosio::contract(MARKETPLACE)]] request {
19 uint64_t id;
20 checksum256 hash;
22 name type;
23 name status;
25 name braname;
28
31
32 asset unit_cost;
33 asset base_cost;
36
37 uint64_t units;
38 std::string meta;
39
42
43 std::vector<Document::named_document> documents;
44
48
49 time_point_sec warranty_delay_until;
50 time_point_sec deadline_for_receipt;
51
52 bool is_warranty_return = false;
54
55 time_point_sec created_at;
56 time_point_sec accepted_at;
57 time_point_sec supplied_at;
58 time_point_sec delivered_at;
59 time_point_sec received_at;
60 time_point_sec completed_at;
61 time_point_sec declined_at;
62 time_point_sec disputed_at;
63 time_point_sec canceled_at;
64
65 uint64_t primary_key() const { return id; }
66 uint64_t by_coop() const { return coopname.value; }
67 uint64_t by_status() const { return status.value; }
68 uint64_t by_type() const { return type.value; }
69 checksum256 by_hash() const { return hash; }
70 uint64_t by_username() const { return username.value; }
71
72 uint64_t by_created() const { return created_at.sec_since_epoch(); }
73 uint64_t by_completed() const { return completed_at.sec_since_epoch(); }
74 uint64_t by_declined() const { return declined_at.sec_since_epoch(); }
75 uint64_t by_canceled() const { return canceled_at.sec_since_epoch(); }
76 uint64_t by_warranty_id() const { return warranty_return_id; }
77
78 name get_money_contributor() const {
79 return is_warranty_return ? product_contributor : money_contributor;
80 }
81
83 return is_warranty_return ? money_contributor : product_contributor;
84 }
85
86 name get_payer() const { return get_money_contributor(); }
87
88 name get_supplier() const { return get_product_contributor(); }
89
90 name get_product_backer() const { return money_contributor; }
91
92 name get_defective_supplier() const { return product_contributor; }
93};
94
95typedef eosio::multi_index<
96 "requests"_n, request,
97 eosio::indexed_by<"bycoop"_n, eosio::const_mem_fun<request, uint64_t, &request::by_coop>>,
98 eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun<request, uint64_t, &request::by_status>>,
99 eosio::indexed_by<"bytype"_n, eosio::const_mem_fun<request, uint64_t, &request::by_type>>,
100 eosio::indexed_by<"byhash"_n, eosio::const_mem_fun<request, checksum256, &request::by_hash>>,
101 eosio::indexed_by<"byusername"_n, eosio::const_mem_fun<request, uint64_t, &request::by_username>>,
102 eosio::indexed_by<"bycreated"_n, eosio::const_mem_fun<request, uint64_t, &request::by_created>>,
103 eosio::indexed_by<"bycompleted"_n, eosio::const_mem_fun<request, uint64_t, &request::by_completed>>,
104 eosio::indexed_by<"bydeclined"_n, eosio::const_mem_fun<request, uint64_t, &request::by_declined>>,
105 eosio::indexed_by<"bycanceled"_n, eosio::const_mem_fun<request, uint64_t, &request::by_canceled>>,
106 eosio::indexed_by<"bywarrantyid"_n, eosio::const_mem_fun<request, uint64_t, &request::by_warranty_id>>>
108
109} // namespace Marketplace
contract
Definition: eosio.msig_tests.cpp:977
Definition: marketplace.hpp:17
eosio::multi_index< "requests"_n, request, eosio::indexed_by<"bycoop"_n, eosio::const_mem_fun< request, uint64_t, &request::by_coop > >, eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun< request, uint64_t, &request::by_status > >, eosio::indexed_by<"bytype"_n, eosio::const_mem_fun< request, uint64_t, &request::by_type > >, eosio::indexed_by<"byhash"_n, eosio::const_mem_fun< request, checksum256, &request::by_hash > >, eosio::indexed_by<"byusername"_n, eosio::const_mem_fun< request, uint64_t, &request::by_username > >, eosio::indexed_by<"bycreated"_n, eosio::const_mem_fun< request, uint64_t, &request::by_created > >, eosio::indexed_by<"bycompleted"_n, eosio::const_mem_fun< request, uint64_t, &request::by_completed > >, eosio::indexed_by<"bydeclined"_n, eosio::const_mem_fun< request, uint64_t, &request::by_declined > >, eosio::indexed_by<"bycanceled"_n, eosio::const_mem_fun< request, uint64_t, &request::by_canceled > >, eosio::indexed_by<"bywarrantyid"_n, eosio::const_mem_fun< request, uint64_t, &request::by_warranty_id > > > requests_index
Definition: table_marketplace_requests.hpp:107
Definition: eosio.msig.hpp:34
Definition: table_marketplace_requests.hpp:18
name status
Definition: table_marketplace_requests.hpp:23
uint64_t id
Definition: table_marketplace_requests.hpp:19
checksum256 by_hash() const
Definition: table_marketplace_requests.hpp:69
time_point_sec deadline_for_receipt
Definition: table_marketplace_requests.hpp:50
uint64_t units
Definition: table_marketplace_requests.hpp:37
name get_payer() const
Definition: table_marketplace_requests.hpp:86
time_point_sec created_at
Definition: table_marketplace_requests.hpp:55
uint64_t by_type() const
Definition: table_marketplace_requests.hpp:68
time_point_sec disputed_at
Definition: table_marketplace_requests.hpp:62
uint64_t product_lifecycle_secs
Definition: table_marketplace_requests.hpp:45
name braname
Definition: table_marketplace_requests.hpp:25
time_point_sec delivered_at
Definition: table_marketplace_requests.hpp:58
time_point_sec received_at
Definition: table_marketplace_requests.hpp:59
uint64_t by_created() const
Definition: table_marketplace_requests.hpp:72
time_point_sec completed_at
Definition: table_marketplace_requests.hpp:60
time_point_sec declined_at
Definition: table_marketplace_requests.hpp:61
asset unit_cost
Definition: table_marketplace_requests.hpp:32
name receiver_braname
Definition: table_marketplace_requests.hpp:29
name money_contributor
Definition: table_marketplace_requests.hpp:40
uint64_t by_canceled() const
Definition: table_marketplace_requests.hpp:75
asset base_cost
Definition: table_marketplace_requests.hpp:33
name get_product_contributor() const
Definition: table_marketplace_requests.hpp:82
checksum256 hash
Definition: table_marketplace_requests.hpp:20
uint64_t by_status() const
Definition: table_marketplace_requests.hpp:67
name coopname
Definition: table_marketplace_requests.hpp:21
uint64_t by_completed() const
Definition: table_marketplace_requests.hpp:73
asset cancellation_fee_amount
Definition: table_marketplace_requests.hpp:47
std::string meta
Definition: table_marketplace_requests.hpp:38
uint64_t warranty_period_secs
Definition: table_marketplace_requests.hpp:46
name warehouse
Definition: table_marketplace_requests.hpp:26
uint64_t warranty_return_id
Definition: table_marketplace_requests.hpp:53
name get_supplier() const
Definition: table_marketplace_requests.hpp:88
name product_contributor
Definition: table_marketplace_requests.hpp:41
uint64_t by_warranty_id() const
Definition: table_marketplace_requests.hpp:76
name type
Definition: table_marketplace_requests.hpp:22
time_point_sec accepted_at
Definition: table_marketplace_requests.hpp:56
name get_product_backer() const
Definition: table_marketplace_requests.hpp:90
std::vector< Document::named_document > documents
Definition: table_marketplace_requests.hpp:43
uint64_t by_declined() const
Definition: table_marketplace_requests.hpp:74
name get_money_contributor() const
Definition: table_marketplace_requests.hpp:78
asset membership_fee_amount
Definition: table_marketplace_requests.hpp:34
time_point_sec canceled_at
Definition: table_marketplace_requests.hpp:63
name token_contract
Definition: table_marketplace_requests.hpp:27
asset total_cost
Definition: table_marketplace_requests.hpp:35
name get_defective_supplier() const
Definition: table_marketplace_requests.hpp:92
time_point_sec warranty_delay_until
Definition: table_marketplace_requests.hpp:49
uint64_t primary_key() const
Definition: table_marketplace_requests.hpp:65
uint64_t by_coop() const
Definition: table_marketplace_requests.hpp:66
time_point_sec supplied_at
Definition: table_marketplace_requests.hpp:57
name username
Definition: table_marketplace_requests.hpp:24
name supplier_braname
Definition: table_marketplace_requests.hpp:30
uint64_t by_username() const
Definition: table_marketplace_requests.hpp:70