/*
	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,
}

