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 };
    }
};