Spaces:
Running
Running
File size: 2,086 Bytes
ea81969 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
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 };
}
};
|