import type { RoomPermissionDefinition } from '../models/access-control.model';

export const SYSTEM_ROLE_IDS = {
  everyone: 'system-everyone',
  moderator: 'system-moderator',
  admin: 'system-admin'
} as const;

export const ROOM_PERMISSION_DEFINITIONS: RoomPermissionDefinition[] = [
  {
    key: 'manageServer',
    label: 'Manage Server',
    description: 'Edit server settings such as name, privacy, and limits.'
  },
  {
    key: 'manageRoles',
    label: 'Manage Roles',
    description: 'Create, edit, reorder, and assign roles.'
  },
  {
    key: 'manageChannels',
    label: 'Manage Channels',
    description: 'Create, rename, delete, and reorder channels.'
  },
  {
    key: 'manageIcon',
    label: 'Manage Icon',
    description: 'Change the server icon for all members.'
  },
  {
    key: 'kickMembers',
    label: 'Kick Members',
    description: 'Remove members from the server without banning them.'
  },
  {
    key: 'banMembers',
    label: 'Ban Members',
    description: 'Ban members from the server.'
  },
  {
    key: 'manageBans',
    label: 'Manage Bans',
    description: 'Review and revoke existing bans.'
  },
  {
    key: 'deleteMessages',
    label: 'Delete Messages',
    description: 'Delete messages sent by other members.'
  },
  {
    key: 'joinVoice',
    label: 'Join Voice',
    description: 'Join voice channels.'
  },
  {
    key: 'shareScreen',
    label: 'Share Screen',
    description: 'Start screen sharing in voice channels.'
  },
  {
    key: 'uploadFiles',
    label: 'Upload Files',
    description: 'Upload attachments in chat.'
  }
];
