import { Section, Text, Heading, Hr } from "@react-email/components"; import { EmailLayout } from "../../components/EmailLayout"; import { useBrandingConfig } from "../../hooks/useBrandingConfig"; import { formatDate } from "../../utils/emailHelpers"; interface UserSuspensionEmailProps { userId?: string; username?: string; email?: string; suspensionType?: "temporary" | "permanent" | "warning"; suspensionReason?: string; suspensionDuration?: number; // in days suspensionStartDate?: Date | string; suspensionEndDate?: Date | string; violationDetails?: string[]; administrator?: string; appealInformation?: string; } export const UserSuspensionEmail = ({ userId = "ACC-12345", username = "player123", email = "player@example.com", suspensionType = "temporary", suspensionReason = "Violation of terms of service - Suspicious betting patterns detected", suspensionDuration = 30, suspensionStartDate = new Date(), suspensionEndDate = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000), violationDetails = [ "Multiple accounts detected", "Violation of betting rules", "Suspicious activity patterns", ], administrator = "Security Team", appealInformation = "To appeal this decision, please contact support@example.com within 7 days.", }: UserSuspensionEmailProps) => { const config = useBrandingConfig(); const getSuspensionColor = (type: string) => { switch (type) { case "permanent": return "#dc3545"; // Red case "temporary": return "#ffc107"; // Yellow case "warning": return "#17a2b8"; // Blue default: return config.colors.primary; } }; const getSuspensionLabel = (type: string) => { switch (type) { case "permanent": return "Permanent Suspension"; case "temporary": return "Temporary Suspension"; case "warning": return "Account Warning"; default: return "Account Action"; } }; return (
{getSuspensionLabel(suspensionType)} User: {username} Account ID: {userId}

{/* User Information */}
👤 Account Information
Username: {username} Email: {email} Account ID: {userId}
{/* Suspension Details */}
⚠️ Suspension Details
Reason: {suspensionReason} {suspensionType === "temporary" && ( <> Suspension Period: Start Date: {formatDate(suspensionStartDate)} End Date: {formatDate(suspensionEndDate)} Duration: {suspensionDuration} days )} {suspensionType === "permanent" && ( This suspension is permanent. Your account access has been revoked indefinitely. )}
{/* Violation Details */} {violationDetails && violationDetails.length > 0 && (
📋 Violation Details
    {violationDetails.map((detail, index) => (
  • {detail}
  • ))}
)} {/* Appeal Information */} {appealInformation && (
📞 Appeal Process
{appealInformation}
)}
This is an automated notification from the {config.companyName} security system.
Processed by: {administrator}
Timestamp: {new Date().toLocaleString()}
); };