Spaces:
Running
Running
| import { db } from '@/backend/services/firebase'; | |
| export const AdminService = { | |
| async updateSettings(settings) { | |
| await db.ref('system/settings').update(settings); | |
| return { success: true }; | |
| }, | |
| async addUser(userData, referrerCode) { | |
| const membershipId = userData.Active_Session_ID; | |
| const userPayload = { | |
| ...userData, | |
| Login_Key: membershipId, | |
| Active_Session_ID: membershipId, | |
| Referrer: referrerCode || "NONE", | |
| Status: 'ACTIVE', | |
| Usage: {}, | |
| Last_Usage_Date: new Date().toISOString().split('T')[0] | |
| }; | |
| await db.ref(`users/${Date.now()}`).set(userPayload); | |
| return { success: true }; | |
| }, | |
| async reactivateUser(nodeKey, userClass, credits) { | |
| const today = new Date(); | |
| const expDate = new Date(today.getTime() + 30 * 86400000).toISOString().split('T')[0]; | |
| const updates = { | |
| Class: userClass, | |
| Credits: credits, | |
| Expired_Date: expDate, | |
| Status: 'ACTIVE' | |
| }; | |
| await db.ref(`users/${nodeKey}`).update(updates); | |
| return { success: true }; | |
| }, | |
| async updateUserClass(nodeKey, userClass, credits) { | |
| const updates = { | |
| Class: userClass, | |
| Credits: credits | |
| }; | |
| await db.ref(`users/${nodeKey}`).update(updates); | |
| return { success: true }; | |
| }, | |
| async topUpCredits(sessionId, amount) { | |
| const snapshot = await db.ref('users').orderByChild('Active_Session_ID').equalTo(sessionId).once('value'); | |
| if (!snapshot.exists()) throw new Error("User not found"); | |
| const userKey = Object.keys(snapshot.val())[0]; | |
| const currentCredits = snapshot.val()[userKey].Credits || 0; | |
| await db.ref(`users/${userKey}`).update({ Credits: currentCredits + amount }); | |
| return { success: true }; | |
| }, | |
| async deleteUser(nodeKey) { | |
| await db.ref(`users/${nodeKey}`).remove(); | |
| return { success: true }; | |
| } | |
| }; | |