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
55 bool is_warranty_return = false;
57
58 time_point_sec created_at;
59 time_point_sec accepted_at;
60 time_point_sec supplied_at;
61 time_point_sec delivered_at;
62 time_point_sec received_at;
63 time_point_sec completed_at;
64 time_point_sec declined_at;
65 time_point_sec disputed_at;
66 time_point_sec canceled_at;
67
68 uint64_t primary_key() const { return id; }
69 uint64_t by_coop() const { return coopname.value; }
70 uint64_t by_status() const { return status.value; }
71 uint64_t by_type() const { return type.value; }
72 checksum256 by_hash() const { return hash; }
73 uint64_t by_username() const { return username.value; }
74
75 uint64_t by_created() const { return created_at.sec_since_epoch(); }
76 uint64_t by_completed() const { return completed_at.sec_since_epoch(); }
77 uint64_t by_declined() const { return declined_at.sec_since_epoch(); }
78 uint64_t by_canceled() const { return canceled_at.sec_since_epoch(); }
79 uint64_t by_warranty_id() const { return warranty_return_id; }
80
81 name get_money_contributor() const {
82 return is_warranty_return ? product_contributor : money_contributor;
83 }
84
86 return is_warranty_return ? money_contributor : product_contributor;
87 }
88
89 name get_payer() const { return get_money_contributor(); }
90
91 name get_supplier() const { return get_product_contributor(); }
92
93 name get_product_backer() const { return money_contributor; }
94
95 name get_defective_supplier() const { return product_contributor; }
96};
97
98typedef eosio::multi_index<
99 "requests"_n, request,
100 eosio::indexed_by<"bycoop"_n, eosio::const_mem_fun<request, uint64_t, &request::by_coop>>,
101 eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun<request, uint64_t, &request::by_status>>,
102 eosio::indexed_by<"bytype"_n, eosio::const_mem_fun<request, uint64_t, &request::by_type>>,
103 eosio::indexed_by<"byhash"_n, eosio::const_mem_fun<request, checksum256, &request::by_hash>>,
104 eosio::indexed_by<"byusername"_n, eosio::const_mem_fun<request, uint64_t, &request::by_username>>,
105 eosio::indexed_by<"bycreated"_n, eosio::const_mem_fun<request, uint64_t, &request::by_created>>,
106 eosio::indexed_by<"bycompleted"_n, eosio::const_mem_fun<request, uint64_t, &request::by_completed>>,
107 eosio::indexed_by<"bydeclined"_n, eosio::const_mem_fun<request, uint64_t, &request::by_declined>>,
108 eosio::indexed_by<"bycanceled"_n, eosio::const_mem_fun<request, uint64_t, &request::by_canceled>>,
109 eosio::indexed_by<"bywarrantyid"_n, eosio::const_mem_fun<request, uint64_t, &request::by_warranty_id>>>
111
112} // 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:110
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:72
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:89
time_point_sec created_at
Definition: table_marketplace_requests.hpp:58
uint64_t by_type() const
Definition: table_marketplace_requests.hpp:71
time_point_sec disputed_at
Definition: table_marketplace_requests.hpp:65
uint64_t product_lifecycle_secs
Definition: table_marketplace_requests.hpp:45
name braname
Definition: table_marketplace_requests.hpp:25
name delivery_type
Definition: table_marketplace_requests.hpp:52
time_point_sec delivered_at
Definition: table_marketplace_requests.hpp:61
time_point_sec received_at
Definition: table_marketplace_requests.hpp:62
uint64_t by_created() const
Definition: table_marketplace_requests.hpp:75
time_point_sec completed_at
Definition: table_marketplace_requests.hpp:63
time_point_sec declined_at
Definition: table_marketplace_requests.hpp:64
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:78
asset base_cost
Definition: table_marketplace_requests.hpp:33
name contribution_type
Definition: table_marketplace_requests.hpp:53
name get_product_contributor() const
Definition: table_marketplace_requests.hpp:85
checksum256 hash
Definition: table_marketplace_requests.hpp:20
uint64_t by_status() const
Definition: table_marketplace_requests.hpp:70
name coopname
Definition: table_marketplace_requests.hpp:21
uint64_t by_completed() const
Definition: table_marketplace_requests.hpp:76
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:56
name get_supplier() const
Definition: table_marketplace_requests.hpp:91
name product_contributor
Definition: table_marketplace_requests.hpp:41
uint64_t by_warranty_id() const
Definition: table_marketplace_requests.hpp:79
name type
Definition: table_marketplace_requests.hpp:22
time_point_sec accepted_at
Definition: table_marketplace_requests.hpp:59
name get_product_backer() const
Definition: table_marketplace_requests.hpp:93
std::vector< Document::named_document > documents
Definition: table_marketplace_requests.hpp:43
uint64_t by_declined() const
Definition: table_marketplace_requests.hpp:77
name get_money_contributor() const
Definition: table_marketplace_requests.hpp:81
asset membership_fee_amount
Definition: table_marketplace_requests.hpp:34
time_point_sec canceled_at
Definition: table_marketplace_requests.hpp:66
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:95
time_point_sec warranty_delay_until
Definition: table_marketplace_requests.hpp:49
uint64_t primary_key() const
Definition: table_marketplace_requests.hpp:68
uint64_t by_coop() const
Definition: table_marketplace_requests.hpp:69
time_point_sec supplied_at
Definition: table_marketplace_requests.hpp:60
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:73