import { DrizzleClient } from "@/lib/DrizzleClient"; import { eq } from "drizzle-orm"; import { userService } from "@/modules/user/user.service"; import { generateStudentIdCard } from "@/graphics/studentID"; import fs from 'fs'; import path from 'path'; async function main() { console.log("Fetching first user from database..."); // Get the first user const user = await DrizzleClient.query.users.findFirst({ where: (users) => eq(users.id, BigInt(109998942841765888)) }); if (!user) { console.error("No users found in database. Please ensure the database is seeded or has at least one user."); process.exit(1); } console.log(`Found user: ${user.username} (${user.id})`); // Get user class const userClass = await userService.getUserClass(user.id.toString()); const className = userClass?.name || "Unknown"; console.log(`User Class: ${className}`); console.log(`User Balance: ${user.balance}`); console.log(`User XP: ${user.xp}`); console.log(`User Level: ${user.level}`); // Placeholder avatar (default discord avatar) const avatarUrl = "https://cdn.discordapp.com/embed/avatars/0.png"; console.log("Generating Student ID Card..."); try { const cardBuffer = await generateStudentIdCard({ username: user.username, avatarUrl: avatarUrl, id: user.id.toString(), level: user.level || 1, xp: user.xp || 0n, au: user.balance || 0n, className: 'D' }); const outputPath = path.join(process.cwd(), 'test-student-id.png'); fs.writeFileSync(outputPath, cardBuffer); console.log(`Student ID card generated successfully: ${outputPath}`); } catch (error) { console.error("Error generating student ID card:", error); } finally { // Exit cleanly process.exit(0); } } main().catch(console.error);