import { promises as fs } from 'fs' import path from 'path' // Handle both dev and production paths const getDataPath = (filename) => { const cwd = process.cwd() // In production (.output/server), working dir is .output if (cwd.endsWith('.output')) { return path.join(cwd, '../server/data', filename) } // In development, working dir is project root return path.join(cwd, 'server/data', filename) } const MEMBERS_FILE = getDataPath('members.json') const USERS_FILE = getDataPath('users.json') // Read manual members from file export async function readMembers() { try { const data = await fs.readFile(MEMBERS_FILE, 'utf-8') return JSON.parse(data) } catch (error) { if (error.code === 'ENOENT') { return [] } console.error('Fehler beim Lesen der Mitgliederdaten:', error) return [] } } // Write manual members to file export async function writeMembers(members) { try { await fs.writeFile(MEMBERS_FILE, JSON.stringify(members, null, 2), 'utf-8') return true } catch (error) { console.error('Fehler beim Schreiben der Mitgliederdaten:', error) return false } } // Read registered users from file export async function readUsers() { try { const data = await fs.readFile(USERS_FILE, 'utf-8') return JSON.parse(data) } catch (error) { if (error.code === 'ENOENT') { return [] } console.error('Fehler beim Lesen der Benutzerdaten:', error) return [] } } // Get member by ID export async function getMemberById(id) { const members = await readMembers() return members.find(m => m.id === id) } // Add or update manual member export async function saveMember(memberData) { const members = await readMembers() if (memberData.id) { // Update existing const index = members.findIndex(m => m.id === memberData.id) if (index !== -1) { members[index] = { ...members[index], ...memberData } } else { throw new Error('Mitglied nicht gefunden') } } else { // Add new const newMember = { id: `m${Date.now()}`, ...memberData } members.push(newMember) } await writeMembers(members) return true } // Delete manual member export async function deleteMember(id) { const members = await readMembers() const filtered = members.filter(m => m.id !== id) await writeMembers(filtered) return true }