import { aethexNotificationService } from "./aethex-database-adapter"; export const notificationTriggers = { async achievementUnlocked( userId: string, achievementName: string, xpReward: number, ): Promise { try { await aethexNotificationService.createNotification( userId, "success", `🏆 Achievement Unlocked: ${achievementName}`, `You've earned ${xpReward} XP!`, ); } catch (error) { console.warn("Failed to create achievement notification:", error); } }, async teamCreated(userId: string, teamName: string): Promise { try { await aethexNotificationService.createNotification( userId, "success", `🎯 Team Created: ${teamName}`, `Your team "${teamName}" is ready to go!`, ); } catch (error) { console.warn("Failed to create team notification:", error); } }, async addedToTeam( userId: string, teamName: string, role: string, ): Promise { try { await aethexNotificationService.createNotification( userId, "info", `👥 Added to Team: ${teamName}`, `You've been added as a ${role} to the team.`, ); } catch (error) { console.warn("Failed to create team member notification:", error); } }, async projectCreated(userId: string, projectName: string): Promise { try { await aethexNotificationService.createNotification( userId, "success", `🚀 Project Created: ${projectName}`, "Your new project is ready to go!", ); } catch (error) { console.warn("Failed to create project notification:", error); } }, async addedToProject( userId: string, projectName: string, role: string, ): Promise { try { await aethexNotificationService.createNotification( userId, "info", `📌 Added to Project: ${projectName}`, `You've been added as a ${role} to the project.`, ); } catch (error) { console.warn("Failed to create project member notification:", error); } }, async projectCompleted(userId: string, projectName: string): Promise { try { await aethexNotificationService.createNotification( userId, "success", `✅ Project Completed: ${projectName}`, "Congratulations on finishing your project!", ); } catch (error) { console.warn("Failed to create project completion notification:", error); } }, async projectStarted(userId: string, projectName: string): Promise { try { await aethexNotificationService.createNotification( userId, "info", `⏱️ Project Started: ${projectName}`, "You've started working on this project.", ); } catch (error) { console.warn("Failed to create project start notification:", error); } }, async levelUp(userId: string, newLevel: number): Promise { try { await aethexNotificationService.createNotification( userId, "success", "⬆️ Level Up!", `You've reached level ${newLevel}! Keep it up!`, ); } catch (error) { console.warn("Failed to create level up notification:", error); } }, async onboardingComplete(userId: string): Promise { try { await aethexNotificationService.createNotification( userId, "success", "🎉 Welcome to AeThex!", "You've completed your profile setup. Let's get started!", ); } catch (error) { console.warn("Failed to create onboarding notification:", error); } }, async accountLinked(userId: string, provider: string): Promise { try { await aethexNotificationService.createNotification( userId, "success", `🔗 Account Linked: ${provider}`, `Your ${provider} account has been successfully linked.`, ); } catch (error) { console.warn("Failed to create account link notification:", error); } }, async emailVerified(userId: string): Promise { try { await aethexNotificationService.createNotification( userId, "success", "✉️ Email Verified", "Your email address has been verified successfully.", ); } catch (error) { console.warn("Failed to create email verification notification:", error); } }, async customNotification( userId: string, type: "success" | "info" | "warning" | "error", title: string, message: string, ): Promise { try { await aethexNotificationService.createNotification( userId, type, title, message, ); } catch (error) { console.warn("Failed to create custom notification:", error); } }, async taskAssigned( userId: string, taskTitle: string, assignerName: string, ): Promise { try { await aethexNotificationService.createNotification( userId, "info", "📋 Task assigned to you", `${assignerName} assigned you a task: "${taskTitle}"`, ); } catch (error) { console.warn("Failed to create task notification:", error); } }, async postLiked(userId: string, likerName: string): Promise { try { await aethexNotificationService.createNotification( userId, "info", "❤️ Your post was liked", `${likerName} liked your post.`, ); } catch (error) { console.warn("Failed to create like notification:", error); } }, async postCommented( userId: string, commenterName: string, preview: string, ): Promise { try { await aethexNotificationService.createNotification( userId, "info", "💬 New comment on your post", `${commenterName} commented: "${preview}"`, ); } catch (error) { console.warn("Failed to create comment notification:", error); } }, async applicationReceived( userId: string, creatorName: string, opportunityTitle: string, ): Promise { try { await aethexNotificationService.createNotification( userId, "info", `📋 New Application: ${opportunityTitle}`, `${creatorName} applied for your opportunity.`, ); } catch (error) { console.warn("Failed to create application notification:", error); } }, async applicationStatusChanged( userId: string, status: "accepted" | "rejected" | "reviewed", message?: string, ): Promise { const statusEmoji = status === "accepted" ? "✅" : status === "rejected" ? "❌" : "📝"; const statusMessage = status === "accepted" ? "accepted" : status === "rejected" ? "rejected" : "reviewed"; try { await aethexNotificationService.createNotification( userId, status === "accepted" ? "success" : status === "rejected" ? "error" : "info", `${statusEmoji} Application ${statusMessage}`, message || `Your application has been ${statusMessage}.`, ); } catch (error) { console.warn("Failed to create application status notification:", error); } }, async newDeviceLogin( userId: string, deviceName: string, location?: string, ): Promise { try { await aethexNotificationService.createNotification( userId, "warning", "🔐 New device login detected", `New login from ${deviceName}${location ? ` at ${location}` : ""}. If this wasn't you, please secure your account.`, ); } catch (error) { console.warn("Failed to create security notification:", error); } }, async moderationReportSubmitted( userId: string, reportType: string, ): Promise { try { await aethexNotificationService.createNotification( userId, "warning", "🚨 New moderation report", `A ${reportType} report has been submitted. Please review.`, ); } catch (error) { console.warn("Failed to create moderation notification:", error); } }, };