/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "scheme.h" #include #include #include #include namespace Export { namespace Data { using Utf8String = QByteArray; Utf8String ParseString(const MTPstring &data); template inline auto NumberToString(Type value) -> std::enable_if_t, Utf8String> { const auto result = std::to_string(value); return QByteArray(result.data(), int(result.size())); } struct PersonalInfo { Utf8String firstName; Utf8String lastName; Utf8String phoneNumber; Utf8String username; Utf8String bio; }; PersonalInfo ParsePersonalInfo(const MTPUserFull &data); struct UserpicsInfo { int count = 0; }; struct File { QString relativePath; }; struct Userpic { uint64 id = 0; QDateTime date; File image; }; struct UserpicsSlice { std::vector list; }; UserpicsSlice ParseUserpicsSlice(const MTPVector &data); struct Contact { Utf8String firstName; Utf8String lastName; Utf8String phoneNumber; }; struct ContactsList { std::vector list; }; struct Session { Utf8String platform; Utf8String deviceModel; Utf8String systemVersion; Utf8String applicationName; Utf8String applicationVersion; QDateTime created; QDateTime lastActive; Utf8String ip; Utf8String country; Utf8String region; }; struct SessionsList { std::vector list; }; struct ChatsInfo { int count = 0; }; struct ChatInfo { enum class Type { Personal, Group, Channel, }; Type type = Type::Personal; QString name; }; struct Message { int id = 0; }; struct MessagesSlice { std::vector list; }; Utf8String FormatPhoneNumber(const Utf8String &phoneNumber); } // namespace Data } // namespace Export