summaryrefslogtreecommitdiff
path: root/src/discord/invite.hpp
blob: c4c2cf3cbf92a0cd3f8c9c9690a8f0e803f57092 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once
#include "json.hpp"
#include "guild.hpp"
#include <string>

enum class ETargetUserType {
    STREAM = 1
};

class InviteChannelData {
public:
    InviteChannelData() = default;
    InviteChannelData(const ChannelData &c);

    Snowflake ID;
    ChannelType Type;
    std::optional<std::string> Name;
    std::optional<std::vector<std::string>> RecipientUsernames;
    // std::optional<??> Icon;

    friend void from_json(const nlohmann::json &j, InviteChannelData &m);
};

class InviteData {
public:
    std::string Code;
    std::optional<GuildData> Guild;
    std::optional<InviteChannelData> Channel;
    std::optional<UserData> Inviter;
    std::optional<UserData> TargetUser;
    std::optional<ETargetUserType> TargetUserType;
    std::optional<int> PresenceCount;
    std::optional<int> MemberCount;
    std::optional<int> Uses;
    std::optional<int> MaxUses;
    std::optional<int> MaxAge;
    std::optional<bool> IsTemporary;
    std::optional<std::string> CreatedAt;

    friend void from_json(const nlohmann::json &j, InviteData &m);
};