/* Report.c generated by valac 0.56.19, the Vala compiler
 * generated from Report.vala, do not modify */

#include <glib-object.h>
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <glib/gi18n-lib.h>
#include <adwaita.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TUBA_TYPE_WIDGETIZABLE (tuba_widgetizable_get_type ())
#define TUBA_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizable))
#define TUBA_IS_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_WIDGETIZABLE))
#define TUBA_WIDGETIZABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizableIface))

typedef struct _TubaWidgetizable TubaWidgetizable;
typedef struct _TubaWidgetizableIface TubaWidgetizableIface;

#define TUBA_TYPE_ENTITY (tuba_entity_get_type ())
#define TUBA_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ENTITY, TubaEntity))
#define TUBA_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ENTITY, TubaEntityClass))
#define TUBA_IS_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ENTITY))
#define TUBA_IS_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ENTITY))
#define TUBA_ENTITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ENTITY, TubaEntityClass))

typedef struct _TubaEntity TubaEntity;
typedef struct _TubaEntityClass TubaEntityClass;

#define TUBA_API_TYPE_ACCOUNT (tuba_api_account_get_type ())
#define TUBA_API_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccount))
#define TUBA_API_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))
#define TUBA_API_IS_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))

typedef struct _TubaAPIAccount TubaAPIAccount;
typedef struct _TubaAPIAccountClass TubaAPIAccountClass;

#define TUBA_TYPE_INSTANCE_ACCOUNT (tuba_instance_account_get_type ())
#define TUBA_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccount))
#define TUBA_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))
#define TUBA_IS_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_IS_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_INSTANCE_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))

typedef struct _TubaInstanceAccount TubaInstanceAccount;
typedef struct _TubaInstanceAccountClass TubaInstanceAccountClass;
typedef struct _TubaEntityPrivate TubaEntityPrivate;

#define TUBA_TYPE_BASIC_WIDGETIZABLE (tuba_basic_widgetizable_get_type ())
#define TUBA_BASIC_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_BASIC_WIDGETIZABLE, TubaBasicWidgetizable))
#define TUBA_IS_BASIC_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_BASIC_WIDGETIZABLE))
#define TUBA_BASIC_WIDGETIZABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_TYPE_BASIC_WIDGETIZABLE, TubaBasicWidgetizableIface))

typedef struct _TubaBasicWidgetizable TubaBasicWidgetizable;
typedef struct _TubaBasicWidgetizableIface TubaBasicWidgetizableIface;

#define TUBA_API_ADMIN_TYPE_REPORT (tuba_api_admin_report_get_type ())
#define TUBA_API_ADMIN_REPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_ADMIN_TYPE_REPORT, TubaAPIAdminReport))
#define TUBA_API_ADMIN_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_ADMIN_TYPE_REPORT, TubaAPIAdminReportClass))
#define TUBA_API_ADMIN_IS_REPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_ADMIN_TYPE_REPORT))
#define TUBA_API_ADMIN_IS_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_ADMIN_TYPE_REPORT))
#define TUBA_API_ADMIN_REPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_ADMIN_TYPE_REPORT, TubaAPIAdminReportClass))

typedef struct _TubaAPIAdminReport TubaAPIAdminReport;
typedef struct _TubaAPIAdminReportClass TubaAPIAdminReportClass;
typedef struct _TubaAPIAdminReportPrivate TubaAPIAdminReportPrivate;

#define TUBA_API_ADMIN_TYPE_ACCOUNT (tuba_api_admin_account_get_type ())
#define TUBA_API_ADMIN_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_ADMIN_TYPE_ACCOUNT, TubaAPIAdminAccount))
#define TUBA_API_ADMIN_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_ADMIN_TYPE_ACCOUNT, TubaAPIAdminAccountClass))
#define TUBA_API_ADMIN_IS_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_ADMIN_TYPE_ACCOUNT))
#define TUBA_API_ADMIN_IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_ADMIN_TYPE_ACCOUNT))
#define TUBA_API_ADMIN_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_ADMIN_TYPE_ACCOUNT, TubaAPIAdminAccountClass))

typedef struct _TubaAPIAdminAccount TubaAPIAdminAccount;
typedef struct _TubaAPIAdminAccountClass TubaAPIAdminAccountClass;

#define TUBA_API_TYPE_STATUS (tuba_api_status_get_type ())
#define TUBA_API_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_STATUS, TubaAPIStatus))
#define TUBA_API_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_STATUS, TubaAPIStatusClass))
#define TUBA_API_IS_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_STATUS))
#define TUBA_API_IS_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_STATUS))
#define TUBA_API_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_STATUS, TubaAPIStatusClass))

typedef struct _TubaAPIStatus TubaAPIStatus;
typedef struct _TubaAPIStatusClass TubaAPIStatusClass;

#define TUBA_API_INSTANCE_TYPE_RULE (tuba_api_instance_rule_get_type ())
#define TUBA_API_INSTANCE_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_INSTANCE_TYPE_RULE, TubaAPIInstanceRule))
#define TUBA_API_INSTANCE_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_INSTANCE_TYPE_RULE, TubaAPIInstanceRuleClass))
#define TUBA_API_INSTANCE_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_INSTANCE_TYPE_RULE))
#define TUBA_API_INSTANCE_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_INSTANCE_TYPE_RULE))
#define TUBA_API_INSTANCE_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_INSTANCE_TYPE_RULE, TubaAPIInstanceRuleClass))

typedef struct _TubaAPIInstanceRule TubaAPIInstanceRule;
typedef struct _TubaAPIInstanceRuleClass TubaAPIInstanceRuleClass;
enum  {
	TUBA_API_ADMIN_REPORT_0_PROPERTY,
	TUBA_API_ADMIN_REPORT_ID_PROPERTY,
	TUBA_API_ADMIN_REPORT_CATEGORY_PROPERTY,
	TUBA_API_ADMIN_REPORT_ACTION_TAKEN_PROPERTY,
	TUBA_API_ADMIN_REPORT_ACTION_TAKEN_AT_PROPERTY,
	TUBA_API_ADMIN_REPORT_COMMENT_PROPERTY,
	TUBA_API_ADMIN_REPORT_FORWARDED_PROPERTY,
	TUBA_API_ADMIN_REPORT_CREATED_AT_PROPERTY,
	TUBA_API_ADMIN_REPORT_UPDATED_AT_PROPERTY,
	TUBA_API_ADMIN_REPORT_ACCOUNT_PROPERTY,
	TUBA_API_ADMIN_REPORT_TARGET_ACCOUNT_PROPERTY,
	TUBA_API_ADMIN_REPORT_ASSIGNED_ACCOUNT_PROPERTY,
	TUBA_API_ADMIN_REPORT_ACTION_TAKEN_BY_ACCOUNT_PROPERTY,
	TUBA_API_ADMIN_REPORT_STATUSES_PROPERTY,
	TUBA_API_ADMIN_REPORT_RULES_PROPERTY,
	TUBA_API_ADMIN_REPORT_NUM_PROPERTIES
};
static GParamSpec* tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_NUM_PROPERTIES];
typedef enum  {
	TUBA_API_ADMIN_REPORT_CATEGORY_SPAM,
	TUBA_API_ADMIN_REPORT_CATEGORY_VIOLATION,
	TUBA_API_ADMIN_REPORT_CATEGORY_LEGAL,
	TUBA_API_ADMIN_REPORT_CATEGORY_OTHER
} TubaAPIAdminReportCategory;

#define TUBA_API_ADMIN_REPORT_TYPE_CATEGORY (tuba_api_admin_report_category_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define TUBA_WIDGETS_ADMIN_TYPE_REPORT (tuba_widgets_admin_report_get_type ())
#define TUBA_WIDGETS_ADMIN_REPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_ADMIN_TYPE_REPORT, TubaWidgetsAdminReport))
#define TUBA_WIDGETS_ADMIN_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_ADMIN_TYPE_REPORT, TubaWidgetsAdminReportClass))
#define TUBA_WIDGETS_ADMIN_IS_REPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_ADMIN_TYPE_REPORT))
#define TUBA_WIDGETS_ADMIN_IS_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_ADMIN_TYPE_REPORT))
#define TUBA_WIDGETS_ADMIN_REPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_ADMIN_TYPE_REPORT, TubaWidgetsAdminReportClass))

typedef struct _TubaWidgetsAdminReport TubaWidgetsAdminReport;
typedef struct _TubaWidgetsAdminReportClass TubaWidgetsAdminReportClass;

struct _TubaWidgetizableIface {
	GTypeInterface parent_iface;
	GtkWidget* (*to_widget) (TubaWidgetizable* self);
	void (*open) (TubaWidgetizable* self);
	void (*resolve_open) (TubaWidgetizable* self, TubaInstanceAccount* account);
};

struct _TubaEntity {
	GObject parent_instance;
	TubaEntityPrivate * priv;
};

struct _TubaEntityClass {
	GObjectClass parent_class;
	gboolean (*is_local) (TubaEntity* self, TubaInstanceAccount* account);
	GType (*deserialize_array_type) (TubaEntity* self, const gchar* prop);
};

struct _TubaBasicWidgetizableIface {
	GTypeInterface parent_iface;
	GtkWidget* (*to_widget) (TubaBasicWidgetizable* self);
};

struct _TubaAPIAdminReport {
	TubaEntity parent_instance;
	TubaAPIAdminReportPrivate * priv;
};

struct _TubaAPIAdminReportClass {
	TubaEntityClass parent_class;
};

struct _TubaAPIAdminReportPrivate {
	gchar* _id;
	gchar* _category;
	gboolean _action_taken;
	gchar* _action_taken_at;
	gchar* _comment;
	gboolean _forwarded;
	gchar* _created_at;
	gchar* _updated_at;
	TubaAPIAdminAccount* _account;
	TubaAPIAdminAccount* _target_account;
	TubaAPIAdminAccount* _assigned_account;
	TubaAPIAdminAccount* _action_taken_by_account;
	GeeArrayList* _statuses;
	GeeArrayList* _rules;
};

static gint TubaAPIAdminReport_private_offset;
static gpointer tuba_api_admin_report_parent_class = NULL;
static TubaBasicWidgetizableIface * tuba_api_admin_report_tuba_basic_widgetizable_parent_iface = NULL;

VALA_EXTERN GType tuba_entity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaEntity, g_object_unref)
VALA_EXTERN GType tuba_api_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccount, g_object_unref)
VALA_EXTERN GType tuba_instance_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaInstanceAccount, g_object_unref)
VALA_EXTERN GType tuba_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetizable, g_object_unref)
VALA_EXTERN GType tuba_basic_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaBasicWidgetizable, g_object_unref)
VALA_EXTERN GType tuba_api_admin_report_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAdminReport, g_object_unref)
VALA_EXTERN GType tuba_api_admin_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAdminAccount, g_object_unref)
VALA_EXTERN GType tuba_api_status_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIStatus, g_object_unref)
VALA_EXTERN GType tuba_api_instance_rule_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIInstanceRule, g_object_unref)
VALA_EXTERN GType tuba_entity_deserialize_array_type (TubaEntity* self,
                                          const gchar* prop);
VALA_EXTERN GType tuba_api_admin_report_category_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaAPIAdminReportCategory tuba_api_admin_report_category_from_string (const gchar* cat);
VALA_EXTERN gchar* tuba_api_admin_report_category_to_string (TubaAPIAdminReportCategory self);
VALA_EXTERN gchar* tuba_api_admin_report_category_to_api_string (TubaAPIAdminReportCategory self);
static GType tuba_api_admin_report_real_deserialize_array_type (TubaEntity* base,
                                                         const gchar* prop);
static GtkWidget* tuba_api_admin_report_real_to_widget (TubaBasicWidgetizable* base);
VALA_EXTERN TubaWidgetsAdminReport* tuba_widgets_admin_report_new (TubaAPIAdminReport* report);
VALA_EXTERN TubaWidgetsAdminReport* tuba_widgets_admin_report_construct (GType object_type,
                                                             TubaAPIAdminReport* report);
VALA_EXTERN GType tuba_widgets_admin_report_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsAdminReport, g_object_unref)
VALA_EXTERN TubaAPIAdminReport* tuba_api_admin_report_from (JsonNode* node,
                                                GError** error);
VALA_EXTERN TubaEntity* tuba_entity_from_json (GType type,
                                   JsonNode* node,
                                   GError** error);
VALA_EXTERN gchar* tuba_api_admin_report_to_string (TubaAPIAdminReport* self,
                                        const gchar* created_at);
VALA_EXTERN const gchar* tuba_api_admin_report_get_comment (TubaAPIAdminReport* self);
VALA_EXTERN const gchar* tuba_api_admin_report_get_category (TubaAPIAdminReport* self);
VALA_EXTERN gchar* tuba_utils_date_time_format_full (const gchar* iso8601);
VALA_EXTERN TubaAPIAdminReport* tuba_api_admin_report_new (void);
VALA_EXTERN TubaAPIAdminReport* tuba_api_admin_report_construct (GType object_type);
VALA_EXTERN TubaEntity* tuba_entity_new (void);
VALA_EXTERN TubaEntity* tuba_entity_construct (GType object_type);
VALA_EXTERN const gchar* tuba_api_admin_report_get_id (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_id (TubaAPIAdminReport* self,
                                   const gchar* value);
VALA_EXTERN void tuba_api_admin_report_set_category (TubaAPIAdminReport* self,
                                         const gchar* value);
VALA_EXTERN gboolean tuba_api_admin_report_get_action_taken (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_action_taken (TubaAPIAdminReport* self,
                                             gboolean value);
VALA_EXTERN const gchar* tuba_api_admin_report_get_action_taken_at (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_action_taken_at (TubaAPIAdminReport* self,
                                                const gchar* value);
VALA_EXTERN void tuba_api_admin_report_set_comment (TubaAPIAdminReport* self,
                                        const gchar* value);
VALA_EXTERN gboolean tuba_api_admin_report_get_forwarded (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_forwarded (TubaAPIAdminReport* self,
                                          gboolean value);
VALA_EXTERN const gchar* tuba_api_admin_report_get_created_at (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_created_at (TubaAPIAdminReport* self,
                                           const gchar* value);
VALA_EXTERN const gchar* tuba_api_admin_report_get_updated_at (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_updated_at (TubaAPIAdminReport* self,
                                           const gchar* value);
VALA_EXTERN TubaAPIAdminAccount* tuba_api_admin_report_get_account (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_account (TubaAPIAdminReport* self,
                                        TubaAPIAdminAccount* value);
VALA_EXTERN TubaAPIAdminAccount* tuba_api_admin_report_get_target_account (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_target_account (TubaAPIAdminReport* self,
                                               TubaAPIAdminAccount* value);
VALA_EXTERN TubaAPIAdminAccount* tuba_api_admin_report_get_assigned_account (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_assigned_account (TubaAPIAdminReport* self,
                                                 TubaAPIAdminAccount* value);
VALA_EXTERN TubaAPIAdminAccount* tuba_api_admin_report_get_action_taken_by_account (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_action_taken_by_account (TubaAPIAdminReport* self,
                                                        TubaAPIAdminAccount* value);
VALA_EXTERN GeeArrayList* tuba_api_admin_report_get_statuses (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_statuses (TubaAPIAdminReport* self,
                                         GeeArrayList* value);
VALA_EXTERN GeeArrayList* tuba_api_admin_report_get_rules (TubaAPIAdminReport* self);
VALA_EXTERN void tuba_api_admin_report_set_rules (TubaAPIAdminReport* self,
                                      GeeArrayList* value);
VALA_EXTERN GtkWidget* tuba_basic_widgetizable_to_widget (TubaBasicWidgetizable* self);
static void tuba_api_admin_report_finalize (GObject * obj);
static GType tuba_api_admin_report_get_type_once (void);
static void _vala_tuba_api_admin_report_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec);
static void _vala_tuba_api_admin_report_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec);

static inline gpointer
tuba_api_admin_report_get_instance_private (TubaAPIAdminReport* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPIAdminReport_private_offset);
}

TubaAPIAdminReportCategory
tuba_api_admin_report_category_from_string (const gchar* cat)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_label2 = 0;
	TubaAPIAdminReportCategory result;
	g_return_val_if_fail (cat != NULL, 0);
	_tmp0_ = g_utf8_strdown (cat, (gssize) -1);
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	g_free (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("spam")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_ADMIN_REPORT_CATEGORY_SPAM;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("violation")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_ADMIN_REPORT_CATEGORY_VIOLATION;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("legal")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_ADMIN_REPORT_CATEGORY_LEGAL;
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				result = TUBA_API_ADMIN_REPORT_CATEGORY_OTHER;
				return result;
			}
		}
	}
}

gchar*
tuba_api_admin_report_category_to_string (TubaAPIAdminReportCategory self)
{
	gchar* result;
	switch (self) {
		case TUBA_API_ADMIN_REPORT_CATEGORY_SPAM:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup (_ ("Spam"));
			result = _tmp0_;
			return result;
		}
		case TUBA_API_ADMIN_REPORT_CATEGORY_VIOLATION:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup (_ ("Rule Violation"));
			result = _tmp1_;
			return result;
		}
		case TUBA_API_ADMIN_REPORT_CATEGORY_LEGAL:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup (_ ("Legal"));
			result = _tmp2_;
			return result;
		}
		default:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup (_ ("Other"));
			result = _tmp3_;
			return result;
		}
	}
}

gchar*
tuba_api_admin_report_category_to_api_string (TubaAPIAdminReportCategory self)
{
	gchar* result;
	switch (self) {
		case TUBA_API_ADMIN_REPORT_CATEGORY_SPAM:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("spam");
			result = _tmp0_;
			return result;
		}
		case TUBA_API_ADMIN_REPORT_CATEGORY_VIOLATION:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("violation");
			result = _tmp1_;
			return result;
		}
		case TUBA_API_ADMIN_REPORT_CATEGORY_LEGAL:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("legal");
			result = _tmp2_;
			return result;
		}
		default:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup ("other");
			result = _tmp3_;
			return result;
		}
	}
}

 G_GNUC_NO_INLINE static GType
tuba_api_admin_report_category_get_type_once (void)
{
	static const GEnumValue values[] = {{TUBA_API_ADMIN_REPORT_CATEGORY_SPAM, "TUBA_API_ADMIN_REPORT_CATEGORY_SPAM", "spam"}, {TUBA_API_ADMIN_REPORT_CATEGORY_VIOLATION, "TUBA_API_ADMIN_REPORT_CATEGORY_VIOLATION", "violation"}, {TUBA_API_ADMIN_REPORT_CATEGORY_LEGAL, "TUBA_API_ADMIN_REPORT_CATEGORY_LEGAL", "legal"}, {TUBA_API_ADMIN_REPORT_CATEGORY_OTHER, "TUBA_API_ADMIN_REPORT_CATEGORY_OTHER", "other"}, {0, NULL, NULL}};
	GType tuba_api_admin_report_category_type_id;
	tuba_api_admin_report_category_type_id = g_enum_register_static ("TubaAPIAdminReportCategory", values);
	return tuba_api_admin_report_category_type_id;
}

GType
tuba_api_admin_report_category_get_type (void)
{
	static GType tuba_api_admin_report_category_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_admin_report_category_type_id__once)) {
		GType tuba_api_admin_report_category_type_id;
		tuba_api_admin_report_category_type_id = tuba_api_admin_report_category_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_admin_report_category_type_id__once, tuba_api_admin_report_category_type_id);
	}
	return tuba_api_admin_report_category_type_id__once;
}

static GType
tuba_api_admin_report_real_deserialize_array_type (TubaEntity* base,
                                                   const gchar* prop)
{
	TubaAPIAdminReport * self;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	GType result;
	self = (TubaAPIAdminReport*) base;
	g_return_val_if_fail (prop != NULL, G_TYPE_INVALID);
	_tmp0_ = prop;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("statuses")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_TYPE_STATUS;
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("rules")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_INSTANCE_TYPE_RULE;
				return result;
			}
		}
	}
	result = TUBA_ENTITY_CLASS (tuba_api_admin_report_parent_class)->deserialize_array_type (G_TYPE_CHECK_INSTANCE_CAST (self, TUBA_TYPE_ENTITY, TubaEntity), prop);
	return result;
}

static GtkWidget*
tuba_api_admin_report_real_to_widget (TubaBasicWidgetizable* base)
{
	TubaAPIAdminReport * self;
	TubaWidgetsAdminReport* _tmp0_;
	GtkWidget* result;
	self = (TubaAPIAdminReport*) base;
	_tmp0_ = tuba_widgets_admin_report_new (self);
	g_object_ref_sink (_tmp0_);
	result = (GtkWidget*) _tmp0_;
	return result;
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

TubaAPIAdminReport*
tuba_api_admin_report_from (JsonNode* node,
                            GError** error)
{
	TubaEntity* _tmp0_ = NULL;
	TubaEntity* _tmp1_;
	TubaAPIAdminReport* _tmp2_;
	GError* _inner_error0_ = NULL;
	TubaAPIAdminReport* result;
	g_return_val_if_fail (node != NULL, NULL);
	_tmp1_ = tuba_entity_from_json (TUBA_API_ADMIN_TYPE_REPORT, node, &_inner_error0_);
	_tmp0_ = _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp2_ = _g_object_ref0 (TUBA_API_ADMIN_IS_REPORT (_tmp0_) ? ((TubaAPIAdminReport*) _tmp0_) : NULL);
	result = _tmp2_;
	_g_object_unref0 (_tmp0_);
	return result;
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}

gchar*
tuba_api_admin_report_to_string (TubaAPIAdminReport* self,
                                 const gchar* created_at)
{
	gchar* _tmp0_ = NULL;
	const gchar* _tmp1_;
	gchar* t_comment = NULL;
	gchar* _tmp6_;
	gchar* t_reason = NULL;
	const gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_ = NULL;
	gchar* msg = NULL;
	gchar* _tmp17_;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp1_ = self->priv->_comment;
	if (g_strcmp0 (_tmp1_, "") == 0) {
		const gchar* _tmp2_;
		gchar* _tmp3_;
		_tmp2_ = self->priv->_comment;
		_tmp3_ = g_strdup (_tmp2_);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp3_;
	} else {
		const gchar* _tmp4_;
		gchar* _tmp5_;
		_tmp4_ = self->priv->_comment;
		_tmp5_ = g_strdup_printf ("\n%s: <b>%s</b>", _ ("With the comment"), _tmp4_);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp5_;
	}
	_tmp6_ = _tmp0_;
	_tmp0_ = NULL;
	t_comment = _tmp6_;
	_tmp7_ = self->priv->_category;
	_tmp8_ = tuba_api_admin_report_category_to_string (tuba_api_admin_report_category_from_string (_tmp7_));
	_tmp9_ = _tmp8_;
	_tmp10_ = g_strdup_printf ("%s: <b>%s</b>", _ ("Reason"), _tmp9_);
	_tmp11_ = _tmp10_;
	_g_free0 (_tmp9_);
	t_reason = _tmp11_;
	if (created_at == NULL) {
		gchar* _tmp13_;
		_tmp13_ = g_strdup_printf ("%s\n", _ ("You've received a report"));
		_g_free0 (_tmp12_);
		_tmp12_ = _tmp13_;
	} else {
		gchar* _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		_tmp14_ = tuba_utils_date_time_format_full (created_at);
		_tmp15_ = _tmp14_;
		_tmp16_ = g_strdup_printf ("%s: <b>%s</b>\n", _ ("You've received a report on"), _tmp15_);
		_g_free0 (_tmp12_);
		_tmp12_ = _tmp16_;
		_g_free0 (_tmp15_);
	}
	_tmp17_ = _tmp12_;
	_tmp12_ = NULL;
	msg = _tmp17_;
	_tmp18_ = string_to_string (msg);
	_tmp19_ = t_reason;
	_tmp20_ = string_to_string (_tmp19_);
	_tmp21_ = t_comment;
	_tmp22_ = string_to_string (_tmp21_);
	_tmp23_ = g_strconcat (_tmp18_, _tmp20_, _tmp22_, NULL);
	result = _tmp23_;
	_g_free0 (msg);
	_g_free0 (_tmp12_);
	_g_free0 (t_reason);
	_g_free0 (t_comment);
	_g_free0 (_tmp0_);
	return result;
}

TubaAPIAdminReport*
tuba_api_admin_report_construct (GType object_type)
{
	TubaAPIAdminReport * self = NULL;
	self = (TubaAPIAdminReport*) tuba_entity_construct (object_type);
	return self;
}

TubaAPIAdminReport*
tuba_api_admin_report_new (void)
{
	return tuba_api_admin_report_construct (TUBA_API_ADMIN_TYPE_REPORT);
}

const gchar*
tuba_api_admin_report_get_id (TubaAPIAdminReport* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_id;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_id (TubaAPIAdminReport* self,
                              const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_id);
		self->priv->_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ID_PROPERTY]);
	}
}

const gchar*
tuba_api_admin_report_get_category (TubaAPIAdminReport* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_category;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_category (TubaAPIAdminReport* self,
                                    const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_category (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_category);
		self->priv->_category = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_CATEGORY_PROPERTY]);
	}
}

gboolean
tuba_api_admin_report_get_action_taken (TubaAPIAdminReport* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_action_taken;
	return result;
}

void
tuba_api_admin_report_set_action_taken (TubaAPIAdminReport* self,
                                        gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_action_taken (self);
	if (old_value != value) {
		self->priv->_action_taken = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACTION_TAKEN_PROPERTY]);
	}
}

const gchar*
tuba_api_admin_report_get_action_taken_at (TubaAPIAdminReport* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_action_taken_at;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_action_taken_at (TubaAPIAdminReport* self,
                                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_action_taken_at (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_action_taken_at);
		self->priv->_action_taken_at = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACTION_TAKEN_AT_PROPERTY]);
	}
}

const gchar*
tuba_api_admin_report_get_comment (TubaAPIAdminReport* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_comment;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_comment (TubaAPIAdminReport* self,
                                   const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_comment (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_comment);
		self->priv->_comment = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_COMMENT_PROPERTY]);
	}
}

gboolean
tuba_api_admin_report_get_forwarded (TubaAPIAdminReport* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_forwarded;
	return result;
}

void
tuba_api_admin_report_set_forwarded (TubaAPIAdminReport* self,
                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_forwarded (self);
	if (old_value != value) {
		self->priv->_forwarded = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_FORWARDED_PROPERTY]);
	}
}

const gchar*
tuba_api_admin_report_get_created_at (TubaAPIAdminReport* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_created_at;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_created_at (TubaAPIAdminReport* self,
                                      const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_created_at (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_created_at);
		self->priv->_created_at = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_CREATED_AT_PROPERTY]);
	}
}

const gchar*
tuba_api_admin_report_get_updated_at (TubaAPIAdminReport* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_updated_at;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_updated_at (TubaAPIAdminReport* self,
                                      const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_updated_at (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_updated_at);
		self->priv->_updated_at = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_UPDATED_AT_PROPERTY]);
	}
}

TubaAPIAdminAccount*
tuba_api_admin_report_get_account (TubaAPIAdminReport* self)
{
	TubaAPIAdminAccount* result;
	TubaAPIAdminAccount* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_account;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_account (TubaAPIAdminReport* self,
                                   TubaAPIAdminAccount* value)
{
	TubaAPIAdminAccount* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_account (self);
	if (old_value != value) {
		TubaAPIAdminAccount* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_account);
		self->priv->_account = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACCOUNT_PROPERTY]);
	}
}

TubaAPIAdminAccount*
tuba_api_admin_report_get_target_account (TubaAPIAdminReport* self)
{
	TubaAPIAdminAccount* result;
	TubaAPIAdminAccount* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_target_account;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_target_account (TubaAPIAdminReport* self,
                                          TubaAPIAdminAccount* value)
{
	TubaAPIAdminAccount* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_target_account (self);
	if (old_value != value) {
		TubaAPIAdminAccount* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_target_account);
		self->priv->_target_account = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_TARGET_ACCOUNT_PROPERTY]);
	}
}

TubaAPIAdminAccount*
tuba_api_admin_report_get_assigned_account (TubaAPIAdminReport* self)
{
	TubaAPIAdminAccount* result;
	TubaAPIAdminAccount* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_assigned_account;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_assigned_account (TubaAPIAdminReport* self,
                                            TubaAPIAdminAccount* value)
{
	TubaAPIAdminAccount* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_assigned_account (self);
	if (old_value != value) {
		TubaAPIAdminAccount* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_assigned_account);
		self->priv->_assigned_account = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ASSIGNED_ACCOUNT_PROPERTY]);
	}
}

TubaAPIAdminAccount*
tuba_api_admin_report_get_action_taken_by_account (TubaAPIAdminReport* self)
{
	TubaAPIAdminAccount* result;
	TubaAPIAdminAccount* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_action_taken_by_account;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_action_taken_by_account (TubaAPIAdminReport* self,
                                                   TubaAPIAdminAccount* value)
{
	TubaAPIAdminAccount* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_action_taken_by_account (self);
	if (old_value != value) {
		TubaAPIAdminAccount* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_action_taken_by_account);
		self->priv->_action_taken_by_account = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACTION_TAKEN_BY_ACCOUNT_PROPERTY]);
	}
}

GeeArrayList*
tuba_api_admin_report_get_statuses (TubaAPIAdminReport* self)
{
	GeeArrayList* result;
	GeeArrayList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_statuses;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_statuses (TubaAPIAdminReport* self,
                                    GeeArrayList* value)
{
	GeeArrayList* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_statuses (self);
	if (old_value != value) {
		GeeArrayList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_statuses);
		self->priv->_statuses = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_STATUSES_PROPERTY]);
	}
}

GeeArrayList*
tuba_api_admin_report_get_rules (TubaAPIAdminReport* self)
{
	GeeArrayList* result;
	GeeArrayList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_rules;
	result = _tmp0_;
	return result;
}

void
tuba_api_admin_report_set_rules (TubaAPIAdminReport* self,
                                 GeeArrayList* value)
{
	GeeArrayList* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_admin_report_get_rules (self);
	if (old_value != value) {
		GeeArrayList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_rules);
		self->priv->_rules = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_RULES_PROPERTY]);
	}
}

static void
tuba_api_admin_report_class_init (TubaAPIAdminReportClass * klass,
                                  gpointer klass_data)
{
	tuba_api_admin_report_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPIAdminReport_private_offset);
	((TubaEntityClass *) klass)->deserialize_array_type = (GType (*) (TubaEntity*, const gchar*)) tuba_api_admin_report_real_deserialize_array_type;
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_admin_report_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_admin_report_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_admin_report_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_ID_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_CATEGORY_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_CATEGORY_PROPERTY] = g_param_spec_string ("category", "category", "category", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_ACTION_TAKEN_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACTION_TAKEN_PROPERTY] = g_param_spec_boolean ("action-taken", "action-taken", "action-taken", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_ACTION_TAKEN_AT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACTION_TAKEN_AT_PROPERTY] = g_param_spec_string ("action-taken-at", "action-taken-at", "action-taken-at", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_COMMENT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_COMMENT_PROPERTY] = g_param_spec_string ("comment", "comment", "comment", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_FORWARDED_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_FORWARDED_PROPERTY] = g_param_spec_boolean ("forwarded", "forwarded", "forwarded", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_CREATED_AT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_CREATED_AT_PROPERTY] = g_param_spec_string ("created-at", "created-at", "created-at", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_UPDATED_AT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_UPDATED_AT_PROPERTY] = g_param_spec_string ("updated-at", "updated-at", "updated-at", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_ACCOUNT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACCOUNT_PROPERTY] = g_param_spec_object ("account", "account", "account", TUBA_API_ADMIN_TYPE_ACCOUNT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_TARGET_ACCOUNT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_TARGET_ACCOUNT_PROPERTY] = g_param_spec_object ("target-account", "target-account", "target-account", TUBA_API_ADMIN_TYPE_ACCOUNT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_ASSIGNED_ACCOUNT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ASSIGNED_ACCOUNT_PROPERTY] = g_param_spec_object ("assigned-account", "assigned-account", "assigned-account", TUBA_API_ADMIN_TYPE_ACCOUNT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_ACTION_TAKEN_BY_ACCOUNT_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_ACTION_TAKEN_BY_ACCOUNT_PROPERTY] = g_param_spec_object ("action-taken-by-account", "action-taken-by-account", "action-taken-by-account", TUBA_API_ADMIN_TYPE_ACCOUNT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_STATUSES_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_STATUSES_PROPERTY] = g_param_spec_object ("statuses", "statuses", "statuses", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_ADMIN_REPORT_RULES_PROPERTY, tuba_api_admin_report_properties[TUBA_API_ADMIN_REPORT_RULES_PROPERTY] = g_param_spec_object ("rules", "rules", "rules", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_admin_report_tuba_basic_widgetizable_interface_init (TubaBasicWidgetizableIface * iface,
                                                              gpointer iface_data)
{
	tuba_api_admin_report_tuba_basic_widgetizable_parent_iface = g_type_interface_peek_parent (iface);
	iface->to_widget = (GtkWidget* (*) (TubaBasicWidgetizable*)) tuba_api_admin_report_real_to_widget;
}

static void
tuba_api_admin_report_instance_init (TubaAPIAdminReport * self,
                                     gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	self->priv = tuba_api_admin_report_get_instance_private (self);
	_tmp0_ = g_strdup ("other");
	self->priv->_category = _tmp0_;
	self->priv->_action_taken_at = NULL;
	_tmp1_ = g_strdup ("");
	self->priv->_comment = _tmp1_;
	self->priv->_updated_at = NULL;
	self->priv->_assigned_account = NULL;
	self->priv->_action_taken_by_account = NULL;
	self->priv->_statuses = NULL;
	self->priv->_rules = NULL;
}

static void
tuba_api_admin_report_finalize (GObject * obj)
{
	TubaAPIAdminReport * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_ADMIN_TYPE_REPORT, TubaAPIAdminReport);
	_g_free0 (self->priv->_id);
	_g_free0 (self->priv->_category);
	_g_free0 (self->priv->_action_taken_at);
	_g_free0 (self->priv->_comment);
	_g_free0 (self->priv->_created_at);
	_g_free0 (self->priv->_updated_at);
	_g_object_unref0 (self->priv->_account);
	_g_object_unref0 (self->priv->_target_account);
	_g_object_unref0 (self->priv->_assigned_account);
	_g_object_unref0 (self->priv->_action_taken_by_account);
	_g_object_unref0 (self->priv->_statuses);
	_g_object_unref0 (self->priv->_rules);
	G_OBJECT_CLASS (tuba_api_admin_report_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_admin_report_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPIAdminReportClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_admin_report_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPIAdminReport), 0, (GInstanceInitFunc) tuba_api_admin_report_instance_init, NULL };
	static const GInterfaceInfo tuba_basic_widgetizable_info = { (GInterfaceInitFunc) tuba_api_admin_report_tuba_basic_widgetizable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType tuba_api_admin_report_type_id;
	tuba_api_admin_report_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPIAdminReport", &g_define_type_info, G_TYPE_FLAG_NONE);
	g_type_add_interface_static (tuba_api_admin_report_type_id, TUBA_TYPE_BASIC_WIDGETIZABLE, &tuba_basic_widgetizable_info);
	TubaAPIAdminReport_private_offset = g_type_add_instance_private (tuba_api_admin_report_type_id, sizeof (TubaAPIAdminReportPrivate));
	return tuba_api_admin_report_type_id;
}

GType
tuba_api_admin_report_get_type (void)
{
	static GType tuba_api_admin_report_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_admin_report_type_id__once)) {
		GType tuba_api_admin_report_type_id;
		tuba_api_admin_report_type_id = tuba_api_admin_report_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_admin_report_type_id__once, tuba_api_admin_report_type_id);
	}
	return tuba_api_admin_report_type_id__once;
}

static void
_vala_tuba_api_admin_report_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec)
{
	TubaAPIAdminReport * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_ADMIN_TYPE_REPORT, TubaAPIAdminReport);
	switch (property_id) {
		case TUBA_API_ADMIN_REPORT_ID_PROPERTY:
		g_value_set_string (value, tuba_api_admin_report_get_id (self));
		break;
		case TUBA_API_ADMIN_REPORT_CATEGORY_PROPERTY:
		g_value_set_string (value, tuba_api_admin_report_get_category (self));
		break;
		case TUBA_API_ADMIN_REPORT_ACTION_TAKEN_PROPERTY:
		g_value_set_boolean (value, tuba_api_admin_report_get_action_taken (self));
		break;
		case TUBA_API_ADMIN_REPORT_ACTION_TAKEN_AT_PROPERTY:
		g_value_set_string (value, tuba_api_admin_report_get_action_taken_at (self));
		break;
		case TUBA_API_ADMIN_REPORT_COMMENT_PROPERTY:
		g_value_set_string (value, tuba_api_admin_report_get_comment (self));
		break;
		case TUBA_API_ADMIN_REPORT_FORWARDED_PROPERTY:
		g_value_set_boolean (value, tuba_api_admin_report_get_forwarded (self));
		break;
		case TUBA_API_ADMIN_REPORT_CREATED_AT_PROPERTY:
		g_value_set_string (value, tuba_api_admin_report_get_created_at (self));
		break;
		case TUBA_API_ADMIN_REPORT_UPDATED_AT_PROPERTY:
		g_value_set_string (value, tuba_api_admin_report_get_updated_at (self));
		break;
		case TUBA_API_ADMIN_REPORT_ACCOUNT_PROPERTY:
		g_value_set_object (value, tuba_api_admin_report_get_account (self));
		break;
		case TUBA_API_ADMIN_REPORT_TARGET_ACCOUNT_PROPERTY:
		g_value_set_object (value, tuba_api_admin_report_get_target_account (self));
		break;
		case TUBA_API_ADMIN_REPORT_ASSIGNED_ACCOUNT_PROPERTY:
		g_value_set_object (value, tuba_api_admin_report_get_assigned_account (self));
		break;
		case TUBA_API_ADMIN_REPORT_ACTION_TAKEN_BY_ACCOUNT_PROPERTY:
		g_value_set_object (value, tuba_api_admin_report_get_action_taken_by_account (self));
		break;
		case TUBA_API_ADMIN_REPORT_STATUSES_PROPERTY:
		g_value_set_object (value, tuba_api_admin_report_get_statuses (self));
		break;
		case TUBA_API_ADMIN_REPORT_RULES_PROPERTY:
		g_value_set_object (value, tuba_api_admin_report_get_rules (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_admin_report_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec)
{
	TubaAPIAdminReport * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_ADMIN_TYPE_REPORT, TubaAPIAdminReport);
	switch (property_id) {
		case TUBA_API_ADMIN_REPORT_ID_PROPERTY:
		tuba_api_admin_report_set_id (self, g_value_get_string (value));
		break;
		case TUBA_API_ADMIN_REPORT_CATEGORY_PROPERTY:
		tuba_api_admin_report_set_category (self, g_value_get_string (value));
		break;
		case TUBA_API_ADMIN_REPORT_ACTION_TAKEN_PROPERTY:
		tuba_api_admin_report_set_action_taken (self, g_value_get_boolean (value));
		break;
		case TUBA_API_ADMIN_REPORT_ACTION_TAKEN_AT_PROPERTY:
		tuba_api_admin_report_set_action_taken_at (self, g_value_get_string (value));
		break;
		case TUBA_API_ADMIN_REPORT_COMMENT_PROPERTY:
		tuba_api_admin_report_set_comment (self, g_value_get_string (value));
		break;
		case TUBA_API_ADMIN_REPORT_FORWARDED_PROPERTY:
		tuba_api_admin_report_set_forwarded (self, g_value_get_boolean (value));
		break;
		case TUBA_API_ADMIN_REPORT_CREATED_AT_PROPERTY:
		tuba_api_admin_report_set_created_at (self, g_value_get_string (value));
		break;
		case TUBA_API_ADMIN_REPORT_UPDATED_AT_PROPERTY:
		tuba_api_admin_report_set_updated_at (self, g_value_get_string (value));
		break;
		case TUBA_API_ADMIN_REPORT_ACCOUNT_PROPERTY:
		tuba_api_admin_report_set_account (self, g_value_get_object (value));
		break;
		case TUBA_API_ADMIN_REPORT_TARGET_ACCOUNT_PROPERTY:
		tuba_api_admin_report_set_target_account (self, g_value_get_object (value));
		break;
		case TUBA_API_ADMIN_REPORT_ASSIGNED_ACCOUNT_PROPERTY:
		tuba_api_admin_report_set_assigned_account (self, g_value_get_object (value));
		break;
		case TUBA_API_ADMIN_REPORT_ACTION_TAKEN_BY_ACCOUNT_PROPERTY:
		tuba_api_admin_report_set_action_taken_by_account (self, g_value_get_object (value));
		break;
		case TUBA_API_ADMIN_REPORT_STATUSES_PROPERTY:
		tuba_api_admin_report_set_statuses (self, g_value_get_object (value));
		break;
		case TUBA_API_ADMIN_REPORT_RULES_PROPERTY:
		tuba_api_admin_report_set_rules (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

