import { pb } from './pocketbase' import type { BlacklistEntry } from '@/types' export async function createBlacklistEntry(data: { group: string game?: string gameName: string reason: string description: string severity: string }): Promise { const user = pb.authStore.model if (!user) throw new Error('未登录') const payload: Record = { group: data.group, reporter: user.id, gameName: data.gameName, reason: data.reason, description: data.description, severity: data.severity, } if (data.game) payload.game = data.game const record = await pb.collection('game_blacklist').create(payload) return record as unknown as BlacklistEntry } export async function listBlacklist( groupId: string, options?: { reason?: string; severity?: string } ): Promise { let filter = `group="${groupId}"` if (options?.reason) filter += ` && reason="${options.reason}"` if (options?.severity) filter += ` && severity="${options.severity}"` const result = await pb.collection('game_blacklist').getFullList({ filter, sort: '-created', expand: 'reporter,game', $autoCancel: false, }) return result as unknown as BlacklistEntry[] } export async function deleteBlacklistEntry(entryId: string): Promise { await pb.collection('game_blacklist').delete(entryId) } export async function subscribeBlacklist( groupId: string, callback: (data: any) => void ): Promise<() => void> { return pb.collection('game_blacklist').subscribe('*', (data) => { if (data.record?.group === groupId) callback(data) }) }