Horizon
Loading...
Searching...
No Matches
bom_export_settings.hpp
1#pragma once
2#include "common/lut.hpp"
3#include "util/uuid.hpp"
4#include "nlohmann/json_fwd.hpp"
5#include "bom.hpp"
6#include "util/uuid_ptr.hpp"
7#include <vector>
8
9namespace horizon {
10using json = nlohmann::json;
11
13public:
14 BOMExportSettings(const json &, class IPool &pool);
16 json serialize() const;
17
18 enum class Format { CSV };
19 Format format = Format::CSV;
20 std::map<UUID, UUID> orderable_MPNs; // part->orderable MPN
21 std::map<UUID, std::shared_ptr<const class Part>> concrete_parts; // part->part
22 void update_refs(class IPool &pool);
23
25 public:
26 CSVSettings(const json &j);
28
29 std::vector<BOMColumn> columns;
30 BOMColumn sort_column = BOMColumn::REFDES;
31 enum class Order { ASC, DESC };
32 Order order = Order::ASC;
33
34 bool custom_column_names = false;
35 std::map<BOMColumn, std::string> column_names;
36 const std::string &get_column_name(BOMColumn col) const;
37
38 json serialize() const;
39 };
40
41 CSVSettings csv_settings;
42
43 std::string output_filename;
44
45 bool include_nopopulate = true;
46};
47} // namespace horizon
Definition bom_export_settings.hpp:24
Definition bom_export_settings.hpp:12
Definition ipool.hpp:15
a class to store JSON values
Definition json.hpp:177
basic_json<> json
default JSON class
Definition json_fwd.hpp:62