/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2025 Spacebar and Spacebar Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
export interface GuildProfileResponse {
id: string;
name: string;
icon_hash: string | null;
member_count: number;
online_count: number;
description: string;
brand_color_primary: string;
banner_hash: string | null;
game_application_ids: string[];
game_activity: {[id: string]: GameActivity};
tag: string | null;
badge: GuildBadgeType;
badge_color_primary: string;
badge_color_secondary: string;
badge_hash: string;
traits: GuildTrait[];
features: string[];
visibility: GuildVisibilityLevel;
custom_banner_hash: string | null;
premium_subscription_count: number;
premium_tier: number;
}
export interface GameActivity {
activity_level: number;
activity_score: number;
}
export interface GuildTrait {
emoji_id: string | null;
emoji_name: string | null;
emoji_animated: boolean;
label: string;
position: number;
}
// TODO: move
export enum GuildVisibilityLevel {
PUBLIC = 1,
RESTRICTED = 2,
PUBLIC_WITH_RECRUITMENT = 3
}
export enum GuildBadgeType {
SWORD = 0,
WATER_DROP = 1,
SKULL = 2,
TOADSTOOL = 3,
MOON = 4,
LIGHTNING = 5,
LEAF = 6,
HEART = 7,
FIRE = 8,
COMPASS = 9,
CROSSHAIRS = 10,
FLOWER = 11,
FORCE = 12,
GEM = 13,
LAVA = 14,
PSYCHIC = 15,
SMOKE = 16,
SNOW = 17,
SOUND = 18,
SUN = 19,
WIND = 20,
BUNNY = 21,
DOG = 22,
FROG = 23,
GOAT = 24,
CAT = 25,
DIAMOND = 26,
CROWN = 27,
TROPHY = 28,
MONEY_BAG = 29,
DOLLAR_SIGN = 30,
}