+6
-54
src/utils/voteManager.ts
+6
-54
src/utils/voteManager.ts
···
76
76
[userId, serverId || null, VOTE_CREDITS],
77
77
);
78
78
79
-
const query = serverId
80
-
? `INSERT INTO message_credits (user_id, server_id, credits_remaining, last_reset)
81
-
VALUES ($1, $2, $3, NOW())
82
-
ON CONFLICT (user_id, server_id) WHERE server_id IS NOT NULL
83
-
DO UPDATE SET
84
-
credits_remaining = message_credits.credits_remaining + $3,
85
-
last_reset = NOW()
86
-
RETURNING credits_remaining`
87
-
: `INSERT INTO message_credits (user_id, credits_remaining, last_reset)
88
-
VALUES ($1, $3, NOW())
89
-
ON CONFLICT (user_id) WHERE server_id IS NULL
90
-
DO UPDATE SET
91
-
credits_remaining = message_credits.credits_remaining + $3,
92
-
last_reset = NOW()
93
-
RETURNING credits_remaining`;
94
-
95
-
await client.query(query, [userId, serverId, VOTE_CREDITS].filter(Boolean));
96
79
97
80
await client.query('COMMIT');
98
81
} catch (error) {
···
148
131
[userId, serverId || null, VOTE_CREDITS],
149
132
);
150
133
151
-
await client.query(
152
-
`INSERT INTO message_credits (user_id, credits_remaining, last_reset)
153
-
VALUES ($1, $2, NOW())
154
-
ON CONFLICT (user_id)
155
-
DO UPDATE SET
156
-
credits_remaining = message_credits.credits_remaining + EXCLUDED.credits_remaining,
157
-
last_reset = NOW()
158
-
RETURNING credits_remaining`,
159
-
[userId, VOTE_CREDITS],
160
-
);
161
-
162
-
console.log(`Added ${VOTE_CREDITS} credits to user ${userId} (global)`);
163
134
164
135
const clientBot = new Client({
165
136
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers],
···
178
149
const member = await fullGuild.members.fetch(userId).catch(() => null);
179
150
180
151
if (member) {
181
-
await client.query(
182
-
`INSERT INTO message_credits (user_id, server_id, credits_remaining, last_reset)
183
-
VALUES ($1, $2, $3, NOW())
184
-
ON CONFLICT (user_id, server_id)
185
-
DO UPDATE SET
186
-
credits_remaining = message_credits.credits_remaining + $3,
187
-
last_reset = NOW()
188
-
RETURNING credits_remaining`,
189
-
[userId, guild.id, VOTE_CREDITS],
190
-
);
191
152
console.log(
192
-
`Added ${VOTE_CREDITS} credits to user ${userId} in server ${guild.id}`,
153
+
`User ${userId} is member of server ${guild.id} - vote benefits apply`,
193
154
);
194
155
}
195
156
} catch (error) {
···
204
165
clientBot.destroy().catch(console.error);
205
166
}
206
167
207
-
await client.query(
208
-
`INSERT INTO ai_usage (user_id, usage_date, count)
209
-
VALUES ($1, CURRENT_DATE, 10)
210
-
ON CONFLICT (user_id, usage_date)
211
-
DO UPDATE SET
212
-
count = GREATEST(0, ai_usage.count) + 10
213
-
RETURNING count`,
214
-
[userId],
215
-
);
216
-
217
-
console.log(`Added 10 AI usage credits to user ${userId}`);
168
+
169
+
console.log(`User ${userId} voted - AI system will give +10 daily limit`);
218
170
219
171
try {
220
172
const clientBot = new Client({
···
234
186
.send(
235
187
`🎉 **Thank you for voting for Aethel!**\n` +
236
188
`\n` +
237
-
`You've received **+10 AI message credits** for today!\n` +
189
+
`You've received **+10 AI daily limit** for today!\n` +
238
190
`\n` +
239
191
`You can vote again <t:${nextVoteTime}:R>\n` +
240
192
`\n` +
···
252
204
253
205
return {
254
206
success: true,
255
-
creditsAwarded: serverId ? VOTE_CREDITS * 2 : VOTE_CREDITS,
207
+
creditsAwarded: 10,
256
208
nextVoteAvailable: voteStatus.nextVote,
257
209
};
258
210
} catch (error) {
···
291
243
292
244
export async function canUseAIFeature(
293
245
userId: string,
294
-
_serverId?: string, // Prefix with underscore to indicate intentionally unused
246
+
_serverId?: string,
295
247
): Promise<{ canUse: boolean; remainingCredits: number }> {
296
248
const client = await pool.connect();
297
249
try {