24 struct MapDetail :
public std::enable_shared_from_this<MapDetail>
29 using Ptr = std::shared_ptr<MapDetail>;
33 std::u16string description;
34 std::optional<UserDetail> uploader;
35 std::optional<MapDetailMetadata> metadata;
36 std::optional<MapStats> stats;
37 std::u16string uploaded;
38 bool automapper =
false;
40 bool qualified =
false;
41 std::vector<MapVersion::Ptr> versions;
45 std::u16string PartialHash;
65 CP_SDK_JSON_OPERATORS_INLINE({
66 CP_SDK_JSON_SERIALIZE_STRING(
id);
67 CP_SDK_JSON_SERIALIZE_STRING(name);
68 CP_SDK_JSON_SERIALIZE_STRING(description);
69 CP_SDK_JSON_SERIALIZE_OBJECT(uploader);
70 CP_SDK_JSON_SERIALIZE_OBJECT(metadata);
71 CP_SDK_JSON_SERIALIZE_OBJECT(stats);
72 CP_SDK_JSON_SERIALIZE_STRING(uploaded);
73 CP_SDK_JSON_SERIALIZE_BOOL(automapper);
74 CP_SDK_JSON_SERIALIZE_BOOL(ranked);
75 CP_SDK_JSON_SERIALIZE_BOOL(qualified);
76 CP_SDK_JSON_SERIALIZE_OBJECT_ARRAY(versions);
79 CP_SDK_JSON_UNSERIALIZE_STRING(
id);
80 CP_SDK_JSON_UNSERIALIZE_STRING(name);
81 CP_SDK_JSON_UNSERIALIZE_STRING(description);
82 CP_SDK_JSON_UNSERIALIZE_OBJECT(uploader);
83 CP_SDK_JSON_UNSERIALIZE_OBJECT(metadata);
84 CP_SDK_JSON_UNSERIALIZE_OBJECT(stats);
85 CP_SDK_JSON_UNSERIALIZE_STRING(uploaded);
86 CP_SDK_JSON_UNSERIALIZE_BOOL(automapper);
87 CP_SDK_JSON_UNSERIALIZE_BOOL(ranked);
88 CP_SDK_JSON_UNSERIALIZE_BOOL(qualified);
89 CP_SDK_JSON_UNSERIALIZE_OBJECT_ARRAY(versions);