/*
 * Copyright (C) 2026 Fluxer Contributors
 *
 * This file is part of Fluxer.
 *
 * Fluxer 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.
 *
 * Fluxer 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 Fluxer. If not, see <https://www.gnu.org/licenses/>.
 */

export const AdminACLs = {
	WILDCARD: '*',
	ACL_SET_USER: 'acl:set:user',
	ADMIN_API_KEY_MANAGE: 'admin_api_key:manage',
	ARCHIVE_TRIGGER_GUILD: 'archive:trigger:guild',
	ARCHIVE_TRIGGER_USER: 'archive:trigger:user',
	ARCHIVE_VIEW_ALL: 'archive:view_all',
	ASSET_PURGE: 'asset:purge',
	AUDIT_LOG_VIEW: 'audit_log:view',
	AUTHENTICATE: 'admin:authenticate',
	BAN_EMAIL_ADD: 'ban:email:add',
	BAN_EMAIL_CHECK: 'ban:email:check',
	BAN_EMAIL_REMOVE: 'ban:email:remove',
	BAN_IP_ADD: 'ban:ip:add',
	BAN_IP_CHECK: 'ban:ip:check',
	BAN_IP_REMOVE: 'ban:ip:remove',
	BAN_PHONE_ADD: 'ban:phone:add',
	BAN_PHONE_CHECK: 'ban:phone:check',
	BAN_PHONE_REMOVE: 'ban:phone:remove',
	BULK_ADD_GUILD_MEMBERS: 'bulk:add:guild_members',
	BULK_DELETE_USERS: 'bulk:delete:users',
	BULK_UPDATE_GUILD_FEATURES: 'bulk:update:guild_features',
	BULK_UPDATE_USER_FLAGS: 'bulk:update:user_flags',
	CSAM_SUBMIT_NCMEC: 'csam:submit_ncmec',
	DISCOVERY_REMOVE: 'discovery:remove',
	DISCOVERY_REVIEW: 'discovery:review',
	GATEWAY_MEMORY_STATS: 'gateway:memory_stats',
	GATEWAY_RELOAD_ALL: 'gateway:reload_all',
	GIFT_CODES_GENERATE: 'gift_codes:generate',
	GUILD_BAN_MEMBER: 'guild:ban_member',
	GUILD_DELETE: 'guild:delete',
	GUILD_FORCE_ADD_MEMBER: 'guild:force_add_member',
	GUILD_KICK_MEMBER: 'guild:kick_member',
	GUILD_LIST_MEMBERS: 'guild:list:members',
	GUILD_LOOKUP: 'guild:lookup',
	GUILD_RELOAD: 'guild:reload',
	GUILD_SHUTDOWN: 'guild:shutdown',
	GUILD_TRANSFER_OWNERSHIP: 'guild:transfer_ownership',
	GUILD_UPDATE_BANNER: 'guild:update:banner',
	GUILD_UPDATE_FEATURES: 'guild:update:features',
	GUILD_UPDATE_ICON: 'guild:update:icon',
	GUILD_UPDATE_NAME: 'guild:update:name',
	GUILD_UPDATE_SETTINGS: 'guild:update:settings',
	GUILD_UPDATE_SPLASH: 'guild:update:splash',
	GUILD_UPDATE_VANITY: 'guild:update:vanity',
	INSTANCE_CONFIG_UPDATE: 'instance:config:update',
	INSTANCE_CONFIG_VIEW: 'instance:config:view',
	INSTANCE_LIMIT_CONFIG_UPDATE: 'instance:limit_config:update',
	INSTANCE_LIMIT_CONFIG_VIEW: 'instance:limit_config:view',
	INSTANCE_SNOWFLAKE_RESERVATION_MANAGE: 'instance:snowflake_reservation:manage',
	INSTANCE_SNOWFLAKE_RESERVATION_VIEW: 'instance:snowflake_reservation:view',
	MESSAGE_DELETE_ALL: 'message:delete_all',
	MESSAGE_DELETE: 'message:delete',
	MESSAGE_LOOKUP: 'message:lookup',
	MESSAGE_SHRED: 'message:shred',
	METRICS_VIEW: 'metrics:view',
	REPORT_RESOLVE: 'report:resolve',
	REPORT_VIEW: 'report:view',
	SYSTEM_DM_SEND: 'system_dm:send',
	USER_CANCEL_BULK_MESSAGE_DELETION: 'user:cancel:bulk_message_deletion',
	USER_DELETE: 'user:delete',
	USER_DISABLE_SUSPICIOUS: 'user:disable:suspicious',
	USER_LIST_DM_CHANNELS: 'user:list:dm_channels',
	USER_LIST_GUILDS: 'user:list:guilds',
	USER_LIST_SESSIONS: 'user:list:sessions',
	USER_LOOKUP: 'user:lookup',
	USER_TEMP_BAN: 'user:temp_ban',
	USER_TERMINATE_SESSIONS: 'user:terminate_sessions',
	USER_UPDATE_AVATAR: 'user:update:avatar',
	USER_UPDATE_BANNER: 'user:update:banner',
	USER_UPDATE_BOT_STATUS: 'user:update:bot_status',
	USER_UPDATE_DOB: 'user:update:dob',
	USER_UPDATE_EMAIL: 'user:update:email',
	USER_UPDATE_FLAGS: 'user:update:flags',
	USER_UPDATE_MFA: 'user:update:mfa',
	USER_UPDATE_PHONE: 'user:update:phone',
	USER_UPDATE_PROFILE: 'user:update:profile',
	USER_UPDATE_SUSPICIOUS_ACTIVITY: 'user:update:suspicious_activity',
	USER_UPDATE_TRAITS: 'user:update:traits',
	USER_UPDATE_USERNAME: 'user:update:username',
	VISIONARY_SLOT_EXPAND: 'visionary_slot:expand',
	VISIONARY_SLOT_RESERVE: 'visionary_slot:reserve',
	VISIONARY_SLOT_SWAP: 'visionary_slot:swap',
	VISIONARY_SLOT_SHRINK: 'visionary_slot:shrink',
	VISIONARY_SLOT_VIEW: 'visionary_slot:view',
	VOICE_REGION_CREATE: 'voice:region:create',
	VOICE_REGION_DELETE: 'voice:region:delete',
	VOICE_REGION_LIST: 'voice:region:list',
	VOICE_REGION_UPDATE: 'voice:region:update',
	VOICE_SERVER_CREATE: 'voice:server:create',
	VOICE_SERVER_DELETE: 'voice:server:delete',
	VOICE_SERVER_LIST: 'voice:server:list',
	VOICE_SERVER_UPDATE: 'voice:server:update',
} as const;
