import { ADMIN_PUBKEYS } from '@/lib/admins'; import { SKATESPOTS_COORDINATOR } from '@/lib/coordinator'; import type { CordnRoom } from './room'; /** * The app-wide community / feedback room. * * The gid is a stable literal, so the share link never changes when the bot key * is rotated. The bot creates the room once and becomes the always-on approver; * admins can still approve manually if the bot is down. */ /** Public key of the always-on community bot (private key lives on the VPS). */ export const COMMUNITY_BOT_PUBKEY = 'f9788a7dc43a2b227fd8a0d4ad8752b6f2a9dcd4bce48365acb21675ed1015f0'; export const COMMUNITY_ROOM: CordnRoom = { // The bot is the room creator/owner; admins can approve as a fallback. pubkey: COMMUNITY_BOT_PUBKEY, identifier: 'community', gid: 'skatespots:community', name: 'SkateSpots Community', admins: [...ADMIN_PUBKEYS, COMMUNITY_BOT_PUBKEY], coordinator: { url: SKATESPOTS_COORDINATOR.relays[0], pubkey: SKATESPOTS_COORDINATOR.pubkey, }, }; /** App/browser share link; the QR points here, not at `localhost`. */ export const COMMUNITY_INVITE_PATH = '/community';