/*
 * Copyright (C) 2024 UBPorts Foundation
 *
 * WARNING: This is a generated file. Do not modify directly.
 * Any changes made to this file will be overwritten.
 * 
 * Generated on: 2024-07-26
 * Generated by: TELEports tlparser.py
 * 
 * For any modifications, please edit the source templates and regenerate this file.
 */

#ifndef QTDCHATADMINISTRATORRIGHTS_H
#define QTDCHATADMINISTRATORRIGHTS_H

#include <QObject>
#include <QList>
#include "common/qabstracttdobject.h"

    class QTdChatAdministratorRights : public QTdObject {
    Q_OBJECT
    Q_PROPERTY(bool canManageChat READ canManageChat WRITE setCanManageChat NOTIFY dataChanged)
    Q_PROPERTY(bool canChangeInfo READ canChangeInfo WRITE setCanChangeInfo NOTIFY dataChanged)
    Q_PROPERTY(bool canPostMessages READ canPostMessages WRITE setCanPostMessages NOTIFY dataChanged)
    Q_PROPERTY(bool canEditMessages READ canEditMessages WRITE setCanEditMessages NOTIFY dataChanged)
    Q_PROPERTY(bool canDeleteMessages READ canDeleteMessages WRITE setCanDeleteMessages NOTIFY dataChanged)
    Q_PROPERTY(bool canInviteUsers READ canInviteUsers WRITE setCanInviteUsers NOTIFY dataChanged)
    Q_PROPERTY(bool canRestrictMembers READ canRestrictMembers WRITE setCanRestrictMembers NOTIFY dataChanged)
    Q_PROPERTY(bool canPinMessages READ canPinMessages WRITE setCanPinMessages NOTIFY dataChanged)
    Q_PROPERTY(bool canManageTopics READ canManageTopics WRITE setCanManageTopics NOTIFY dataChanged)
    Q_PROPERTY(bool canPromoteMembers READ canPromoteMembers WRITE setCanPromoteMembers NOTIFY dataChanged)
    Q_PROPERTY(bool canManageVideoChats READ canManageVideoChats WRITE setCanManageVideoChats NOTIFY dataChanged)
    Q_PROPERTY(bool isAnonymous READ isAnonymous WRITE setIsAnonymous NOTIFY dataChanged)

public:
    explicit QTdChatAdministratorRights(QObject *parent = nullptr);
    explicit QTdChatAdministratorRights(QObject *parent, bool canManageChat_, bool canChangeInfo_, bool canPostMessages_, bool canEditMessages_, bool canDeleteMessages_, bool canInviteUsers_, bool canRestrictMembers_, bool canPinMessages_, bool canManageTopics_, bool canPromoteMembers_, bool canManageVideoChats_, bool isAnonymous_);

    bool canManageChat() const;
    void setCanManageChat(bool value);
    bool canChangeInfo() const;
    void setCanChangeInfo(bool value);
    bool canPostMessages() const;
    void setCanPostMessages(bool value);
    bool canEditMessages() const;
    void setCanEditMessages(bool value);
    bool canDeleteMessages() const;
    void setCanDeleteMessages(bool value);
    bool canInviteUsers() const;
    void setCanInviteUsers(bool value);
    bool canRestrictMembers() const;
    void setCanRestrictMembers(bool value);
    bool canPinMessages() const;
    void setCanPinMessages(bool value);
    bool canManageTopics() const;
    void setCanManageTopics(bool value);
    bool canPromoteMembers() const;
    void setCanPromoteMembers(bool value);
    bool canManageVideoChats() const;
    void setCanManageVideoChats(bool value);
    bool isAnonymous() const;
    void setIsAnonymous(bool value);

    void unmarshalJson(const QJsonObject &json) override;
    QJsonObject marshalJson() override;

private:
    Q_DISABLE_COPY(QTdChatAdministratorRights)
    bool m_canManageChat;
    bool m_canChangeInfo;
    bool m_canPostMessages;
    bool m_canEditMessages;
    bool m_canDeleteMessages;
    bool m_canInviteUsers;
    bool m_canRestrictMembers;
    bool m_canPinMessages;
    bool m_canManageTopics;
    bool m_canPromoteMembers;
    bool m_canManageVideoChats;
    bool m_isAnonymous;

signals:
    void dataChanged();

};

#endif // QTDCHATADMINISTRATORRIGHTS_H

    